[Webkit-unassigned] [Bug 153626] New: Web Inspector: Possible unexpected tail call optimization issue, sourceURL lost from eval() source
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Jan 28 17:31:30 PST 2016
https://bugs.webkit.org/show_bug.cgi?id=153626
Bug ID: 153626
Summary: Web Inspector: Possible unexpected tail call
optimization issue, sourceURL lost from eval() source
Classification: Unclassified
Product: WebKit
Version: WebKit Nightly Build
Hardware: All
OS: All
Status: NEW
Severity: Normal
Priority: P2
Component: JavaScriptCore
Assignee: webkit-unassigned at lists.webkit.org
Reporter: joepeck at webkit.org
CC: ggaren at apple.com, msaboff at apple.com, sbarati at apple.com
* SUMMARY
Possible unexpected tail call optimization issue, sourceURL lost from eval() source
* STEPS TO REPRODUCE
1. Attach the attached patch containing (LayoutTests/inspector/sampling-profiler/eval-source-url-2.html)
2. shell> run-webkit-tests LayoutTests/inspector/sampling-profiler/eval-source-url-2.html
=> FAIL
* NOTES
- Compare inspector/sampling-profiler/eval-source-url-2.html to inspector/sampling-profiler/eval-source-url.html
- The only difference is bar():
inspector/sampling-profiler/eval-source-url-2.html:
> function bar() {
> for (let i = 0; i < 2; i++)
> eval("//# sourceURL=eval.js\nfoo();");
> }
inspector/sampling-profiler/eval-source-url.html:
> function bar() {
> eval("//# sourceURL=eval.js\nfoo();");
> }
For some reason, the Sampling Profiler doesn't see the "eval.js" sourceURL for the eval executable.
This showed up after no longer enabling the legacy profiling. One of the things that did was flip this bit:
bytecompiler/BytecodeGenerator.cpp
// FIXME: We should be able to have tail call elimination with the profiler
// enabled. This is currently not possible because the profiler expects
// op_will_call / op_did_call pairs before and after a call, which are not
// compatible with tail calls (we have no way of emitting op_did_call).
// https://bugs.webkit.org/show_bug.cgi?id=148819
, m_inTailPosition(Options::useTailCalls() && !isConstructor() && constructorKind() == ConstructorKind::None && isStrictMode() && !m_shouldEmitProfileHooks)
Toggling that did in fact make the test pass again.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20160129/7e24b022/attachment-0001.html>
More information about the webkit-unassigned
mailing list