Changeset 193584 in webkit for trunk/Source/JavaScriptCore/runtime/Executable.cpp
- Timestamp:
- Dec 6, 2015, 12:56:30 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/runtime/Executable.cpp
r192937 r193584 132 132 const ClassInfo ScriptExecutable::s_info = { "ScriptExecutable", &ExecutableBase::s_info, 0, CREATE_METHOD_TABLE(ScriptExecutable) }; 133 133 134 ScriptExecutable::ScriptExecutable(Structure* structure, VM& vm, const SourceCode& source, bool isInStrictContext )134 ScriptExecutable::ScriptExecutable(Structure* structure, VM& vm, const SourceCode& source, bool isInStrictContext, bool isInDerivedConstructorContext, bool isInArrowFunctionContext) 135 135 : ExecutableBase(vm, structure, NUM_PARAMETERS_NOT_COMPILED) 136 136 , m_source(source) … … 139 139 , m_neverInline(false) 140 140 , m_didTryToEnterInLoop(false) 141 , m_isDerivedConstructorContext(isInDerivedConstructorContext) 142 , m_isArrowFunctionContext(isInArrowFunctionContext) 141 143 , m_overrideLineNumber(-1) 142 144 , m_firstLine(-1) … … 413 415 const ClassInfo EvalExecutable::s_info = { "EvalExecutable", &ScriptExecutable::s_info, 0, CREATE_METHOD_TABLE(EvalExecutable) }; 414 416 415 EvalExecutable* EvalExecutable::create(ExecState* exec, const SourceCode& source, bool isInStrictContext, ThisTDZMode thisTDZMode, const VariableEnvironment* variablesUnderTDZ)417 EvalExecutable* EvalExecutable::create(ExecState* exec, const SourceCode& source, bool isInStrictContext, ThisTDZMode thisTDZMode, bool isDerivedConstructorContext, bool isArrowFunctionContext, const VariableEnvironment* variablesUnderTDZ) 416 418 { 417 419 JSGlobalObject* globalObject = exec->lexicalGlobalObject(); … … 421 423 } 422 424 423 EvalExecutable* executable = new (NotNull, allocateCell<EvalExecutable>(*exec->heap())) EvalExecutable(exec, source, isInStrictContext );425 EvalExecutable* executable = new (NotNull, allocateCell<EvalExecutable>(*exec->heap())) EvalExecutable(exec, source, isInStrictContext, isDerivedConstructorContext, isArrowFunctionContext); 424 426 executable->finishCreation(exec->vm()); 425 427 426 UnlinkedEvalCodeBlock* unlinkedEvalCode = globalObject->createEvalCodeBlock(exec, executable, thisTDZMode, variablesUnderTDZ);428 UnlinkedEvalCodeBlock* unlinkedEvalCode = globalObject->createEvalCodeBlock(exec, executable, thisTDZMode, isArrowFunctionContext, variablesUnderTDZ); 427 429 if (!unlinkedEvalCode) 428 430 return 0; … … 433 435 } 434 436 435 EvalExecutable::EvalExecutable(ExecState* exec, const SourceCode& source, bool inStrictContext )436 : ScriptExecutable(exec->vm().evalExecutableStructure.get(), exec->vm(), source, inStrictContext )437 EvalExecutable::EvalExecutable(ExecState* exec, const SourceCode& source, bool inStrictContext, bool isDerivedConstructorContext, bool isArrowFunctionContext) 438 : ScriptExecutable(exec->vm().evalExecutableStructure.get(), exec->vm(), source, inStrictContext, isDerivedConstructorContext, isArrowFunctionContext) 437 439 { 438 440 } … … 446 448 447 449 ProgramExecutable::ProgramExecutable(ExecState* exec, const SourceCode& source) 448 : ScriptExecutable(exec->vm().programExecutableStructure.get(), exec->vm(), source, false )450 : ScriptExecutable(exec->vm().programExecutableStructure.get(), exec->vm(), source, false, false, false) 449 451 { 450 452 m_typeProfilingStartOffset = 0; … … 462 464 463 465 ModuleProgramExecutable::ModuleProgramExecutable(ExecState* exec, const SourceCode& source) 464 : ScriptExecutable(exec->vm().moduleProgramExecutableStructure.get(), exec->vm(), source, false )466 : ScriptExecutable(exec->vm().moduleProgramExecutableStructure.get(), exec->vm(), source, false, false, false) 465 467 { 466 468 m_typeProfilingStartOffset = 0; … … 493 495 const ClassInfo FunctionExecutable::s_info = { "FunctionExecutable", &ScriptExecutable::s_info, 0, CREATE_METHOD_TABLE(FunctionExecutable) }; 494 496 495 FunctionExecutable::FunctionExecutable(VM& vm, const SourceCode& source, 496 UnlinkedFunctionExecutable* unlinkedExecutable, unsigned firstLine, 497 unsigned lastLine, unsigned startColumn, unsigned endColumn) 498 : ScriptExecutable(vm.functionExecutableStructure.get(), vm, source, unlinkedExecutable->isInStrictContext()) 497 FunctionExecutable::FunctionExecutable(VM& vm, const SourceCode& source, UnlinkedFunctionExecutable* unlinkedExecutable, unsigned firstLine, unsigned lastLine, unsigned startColumn, unsigned endColumn) 498 : ScriptExecutable(vm.functionExecutableStructure.get(), vm, source, unlinkedExecutable->isInStrictContext(), unlinkedExecutable->isDerivedConstructorContext(), false) 499 499 , m_unlinkedExecutable(vm, this, unlinkedExecutable) 500 500 {
Note:
See TracChangeset
for help on using the changeset viewer.