Bug 49708 - Stop recompiling functions to regenerate exception info.
Reviewed by Oliver Hunt.
Instead only hold info as necessary – keep divot info is the inspector
is enabled, line number info is debugging or profiling, and handler
info for functions with try/catch.
JavaScriptCore:
(JSC::CodeBlock::dumpStatistics):
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::lineNumberForBytecodeOffset):
(JSC::CodeBlock::expressionRangeForBytecodeOffset):
(JSC::CodeBlock::shrinkToFit):
(JSC::CodeBlock::bytecodeOffset):
(JSC::CodeBlock::addExpressionInfo):
(JSC::CodeBlock::addLineInfo):
(JSC::CodeBlock::hasExpressionInfo):
(JSC::CodeBlock::hasLineInfo):
(JSC::CodeBlock::needsCallReturnIndices):
(JSC::CodeBlock::callReturnIndexVector):
- bytecode/SamplingTool.cpp:
(JSC::SamplingTool::dump):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::emitNode):
(JSC::BytecodeGenerator::emitNodeInConditionContext):
(JSC::BytecodeGenerator::emitExpressionInfo):
(JSC::BytecodeGenerator::addLineInfo):
- interpreter/Interpreter.cpp:
(JSC::Interpreter::unwindCallFrame):
(JSC::appendSourceToError):
(JSC::Interpreter::throwException):
(JSC::Interpreter::privateExecute):
(JSC::Interpreter::retrieveLastCaller):
- interpreter/Interpreter.h:
- jit/JIT.cpp:
(JSC::JIT::privateCompile):
(JSC::jitThrow):
(JSC::DEFINE_STUB_FUNCTION):
(JSC::Heap::markRoots):
(JSC::EvalExecutable::compileInternal):
(JSC::ProgramExecutable::compileInternal):
(JSC::FunctionExecutable::compileForCallInternal):
(JSC::FunctionExecutable::compileForConstructInternal):
- runtime/Executable.h:
- runtime/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData):
(JSC::JSGlobalData::usingAPI):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::supportsRichSourceInfo):
(JSC::JSGlobalObject::globalData):
WebCore:
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::supportsRichSourceInfo):
- report to JSC whether the inspector is enabled - in which
case we will generate better error messages on exceptions.
- bindings/js/JSDOMWindowBase.h:
WebKitTools:
- DumpRenderTree/mac/DumpRenderTree.mm:
(shouldEnableDeveloperExtras):
- always enable the developer tools from DRT, to ensure we
produce rich error messages on JavaScript exceptions.