diff options
Diffstat (limited to 'JavaScriptCore/runtime/Executable.h')
-rw-r--r-- | JavaScriptCore/runtime/Executable.h | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/JavaScriptCore/runtime/Executable.h b/JavaScriptCore/runtime/Executable.h index 3320fe1..516d6ce 100644 --- a/JavaScriptCore/runtime/Executable.h +++ b/JavaScriptCore/runtime/Executable.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Apple Inc. All rights reserved. + * Copyright (C) 2009, 2010 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -31,6 +31,7 @@ #include "Interpreter.h" #include "Nodes.h" #include "SamplingTool.h" +#include <wtf/PassOwnPtr.h> namespace JSC { @@ -171,7 +172,7 @@ namespace JSC { bool usesArguments() const { return m_features & ArgumentsFeature; } bool needsActivation() const { return m_features & (EvalFeature | ClosureFeature | WithFeature | CatchFeature); } - virtual ExceptionInfo* reparseExceptionInfo(JSGlobalData*, ScopeChainNode*, CodeBlock*) = 0; + virtual PassOwnPtr<ExceptionInfo> reparseExceptionInfo(JSGlobalData*, ScopeChainNode*, CodeBlock*) = 0; protected: void recordParse(CodeFeatures features, int firstLine, int lastLine) @@ -203,7 +204,6 @@ namespace JSC { JSObject* compile(ExecState*, ScopeChainNode*); - ExceptionInfo* reparseExceptionInfo(JSGlobalData*, ScopeChainNode*, CodeBlock*); static PassRefPtr<EvalExecutable> create(ExecState* exec, const SourceCode& source) { return adoptRef(new EvalExecutable(exec, source)); } private: @@ -212,6 +212,9 @@ namespace JSC { , m_evalCodeBlock(0) { } + + virtual PassOwnPtr<ExceptionInfo> reparseExceptionInfo(JSGlobalData*, ScopeChainNode*, CodeBlock*); + EvalCodeBlock* m_evalCodeBlock; #if ENABLE(JIT) @@ -249,15 +252,15 @@ namespace JSC { JSObject* checkSyntax(ExecState*); JSObject* compile(ExecState*, ScopeChainNode*); - // CodeBlocks for program code are transient and therefore do not gain from from throwing out there exception information. - ExceptionInfo* reparseExceptionInfo(JSGlobalData*, ScopeChainNode*, CodeBlock*) { ASSERT_NOT_REACHED(); return 0; } - private: ProgramExecutable(ExecState* exec, const SourceCode& source) : ScriptExecutable(exec, source) , m_programCodeBlock(0) { } + + virtual PassOwnPtr<ExceptionInfo> reparseExceptionInfo(JSGlobalData*, ScopeChainNode*, CodeBlock*); + ProgramCodeBlock* m_programCodeBlock; #if ENABLE(JIT) @@ -350,7 +353,6 @@ namespace JSC { SharedSymbolTable* symbolTable() const { return m_symbolTable; } void recompile(ExecState*); - ExceptionInfo* reparseExceptionInfo(JSGlobalData*, ScopeChainNode*, CodeBlock*); void markAggregate(MarkStack& markStack); static PassRefPtr<FunctionExecutable> fromGlobalCode(const Identifier&, ExecState*, Debugger*, const SourceCode&, int* errLine = 0, UString* errMsg = 0); @@ -386,6 +388,8 @@ namespace JSC { bool compileForCall(ExecState*, ScopeChainNode*); bool compileForConstruct(ExecState*, ScopeChainNode*); + virtual PassOwnPtr<ExceptionInfo> reparseExceptionInfo(JSGlobalData*, ScopeChainNode*, CodeBlock*); + unsigned m_numVariables : 31; bool m_forceUsesArguments : 1; |