Modified: trunk/Source/_javascript_Core/ChangeLog (163196 => 163197)
--- trunk/Source/_javascript_Core/ChangeLog 2014-01-31 21:56:30 UTC (rev 163196)
+++ trunk/Source/_javascript_Core/ChangeLog 2014-01-31 21:59:02 UTC (rev 163197)
@@ -1,3 +1,21 @@
+2014-01-31 Mark Lam <[email protected]>
+
+ Add options to force debugger / profiler bytecode generation.
+ <https://webkit.org/b/128014>
+
+ Reviewed by Oliver Hunt.
+
+ Add Options::forceDebuggerBytecodeGeneration() and
+ Options::forceProfilerBytecodeGeneration(). These options make it more
+ convenient to do correctness testing when debugger / profiler bytecodes
+ are generated.
+
+ These options are disabled by default.
+
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::BytecodeGenerator):
+ * runtime/Options.h:
+
2014-01-29 Oliver Hunt <[email protected]>
Make it possible to implement JS builtins in JS
Modified: trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp (163196 => 163197)
--- trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp 2014-01-31 21:56:30 UTC (rev 163196)
+++ trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp 2014-01-31 21:59:02 UTC (rev 163197)
@@ -151,8 +151,8 @@
}
BytecodeGenerator::BytecodeGenerator(VM& vm, ProgramNode* programNode, UnlinkedProgramCodeBlock* codeBlock, DebuggerMode debuggerMode, ProfilerMode profilerMode)
- : m_shouldEmitDebugHooks(debuggerMode == DebuggerOn)
- , m_shouldEmitProfileHooks(profilerMode == ProfilerOn)
+ : m_shouldEmitDebugHooks(Options::forceDebuggerBytecodeGeneration() || debuggerMode == DebuggerOn)
+ , m_shouldEmitProfileHooks(Options::forceProfilerBytecodeGeneration() || profilerMode == ProfilerOn)
, m_symbolTable(0)
, m_scopeNode(programNode)
, m_codeBlock(vm, codeBlock)
@@ -199,8 +199,8 @@
}
BytecodeGenerator::BytecodeGenerator(VM& vm, FunctionBodyNode* functionBody, UnlinkedFunctionCodeBlock* codeBlock, DebuggerMode debuggerMode, ProfilerMode profilerMode)
- : m_shouldEmitDebugHooks(debuggerMode == DebuggerOn)
- , m_shouldEmitProfileHooks(profilerMode == ProfilerOn)
+ : m_shouldEmitDebugHooks(Options::forceDebuggerBytecodeGeneration() || debuggerMode == DebuggerOn)
+ , m_shouldEmitProfileHooks(Options::forceProfilerBytecodeGeneration() || profilerMode == ProfilerOn)
, m_symbolTable(codeBlock->symbolTable())
, m_scopeNode(functionBody)
, m_codeBlock(vm, codeBlock)
@@ -421,8 +421,8 @@
}
BytecodeGenerator::BytecodeGenerator(VM& vm, EvalNode* evalNode, UnlinkedEvalCodeBlock* codeBlock, DebuggerMode debuggerMode, ProfilerMode profilerMode)
- : m_shouldEmitDebugHooks(debuggerMode == DebuggerOn)
- , m_shouldEmitProfileHooks(profilerMode == ProfilerOn)
+ : m_shouldEmitDebugHooks(Options::forceDebuggerBytecodeGeneration() || debuggerMode == DebuggerOn)
+ , m_shouldEmitProfileHooks(Options::forceProfilerBytecodeGeneration() || profilerMode == ProfilerOn)
, m_symbolTable(codeBlock->symbolTable())
, m_scopeNode(evalNode)
, m_codeBlock(vm, codeBlock)
Modified: trunk/Source/_javascript_Core/runtime/Options.h (163196 => 163197)
--- trunk/Source/_javascript_Core/runtime/Options.h 2014-01-31 21:56:30 UTC (rev 163196)
+++ trunk/Source/_javascript_Core/runtime/Options.h 2014-01-31 21:59:02 UTC (rev 163197)
@@ -106,6 +106,8 @@
v(bool, dumpGeneratedBytecodes, false) \
v(bool, dumpBytecodeLivenessResults, false) \
v(bool, validateBytecode, false) \
+ v(bool, forceDebuggerBytecodeGeneration, false) \
+ v(bool, forceProfilerBytecodeGeneration, false) \
\
/* showDisassembly implies showDFGDisassembly. */ \
v(bool, showDisassembly, false) \