UnlinkedCodeBlock::UnlinkedCodeBlock(VM* vm, Structure* structure, CodeType codeType, const ExecutableInfo& info) : Base(*vm, structure) , m_numVars(0) , m_numCalleeRegisters(0) , m_numParameters(0) , m_vm(vm) , m_globalObjectRegister(VirtualRegister()) , m_needsFullScopeChain(info.needsActivation()) , m_usesEval(info.usesEval()) , m_isNumericCompareFunction(false) , m_isStrictMode(info.isStrictMode()) , m_isConstructor(info.isConstructor()) , m_hasCapturedVariables(false) , m_isBuiltinFunction(info.isBuiltinFunction()) , m_constructorKind(static_cast<unsigned>(info.constructorKind())) , m_firstLine(0) , m_lineCount(0) , m_endColumn(UINT_MAX) , m_features(0) , m_codeType(codeType) , m_arrayProfileCount(0) , m_arrayAllocationProfileCount(0) , m_objectAllocationProfileCount(0) , m_valueProfileCount(0) , m_llintCallLinkInfoCount(0) #if ENABLE(BYTECODE_COMMENTS) , m_bytecodeCommentIterator(0) #endif { ASSERT(m_constructorKind == static_cast<unsigned>(info.constructorKind())); }
UnlinkedCodeBlock::UnlinkedCodeBlock(VM* vm, Structure* structure, CodeType codeType, const ExecutableInfo& info, DebuggerMode debuggerMode) : Base(*vm, structure) , m_numVars(0) , m_numCalleeLocals(0) , m_numParameters(0) , m_globalObjectRegister(VirtualRegister()) , m_usesEval(info.usesEval()) , m_isStrictMode(info.isStrictMode()) , m_isConstructor(info.isConstructor()) , m_hasCapturedVariables(false) , m_isBuiltinFunction(info.isBuiltinFunction()) , m_constructorKind(static_cast<unsigned>(info.constructorKind())) , m_superBinding(static_cast<unsigned>(info.superBinding())) , m_derivedContextType(static_cast<unsigned>(info.derivedContextType())) , m_evalContextType(static_cast<unsigned>(info.evalContextType())) , m_isArrowFunctionContext(info.isArrowFunctionContext()) , m_isClassContext(info.isClassContext()) , m_wasCompiledWithDebuggingOpcodes(debuggerMode == DebuggerMode::DebuggerOn || Options::forceDebuggerBytecodeGeneration()) , m_firstLine(0) , m_lineCount(0) , m_endColumn(UINT_MAX) , m_parseMode(info.parseMode()) , m_features(0) , m_codeType(codeType) , m_arrayProfileCount(0) , m_arrayAllocationProfileCount(0) , m_objectAllocationProfileCount(0) , m_valueProfileCount(0) , m_llintCallLinkInfoCount(0) { for (auto& constantRegisterIndex : m_linkTimeConstants) constantRegisterIndex = 0; ASSERT(m_constructorKind == static_cast<unsigned>(info.constructorKind())); }