Bug 160554 - Assertion failure when accessing TDZ variable in catch through eval
Summary: Assertion failure when accessing TDZ variable in catch through eval
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Local Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Saam Barati
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-08-04 09:48 PDT by André Bargull
Modified: 2016-08-05 12:18 PDT (History)
7 users (show)

See Also:


Attachments
patch (3.65 KB, patch)
2016-08-05 11:39 PDT, Saam Barati
mark.lam: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description André Bargull 2016-08-04 09:48:33 PDT
SVN: rev204118
Build with: perl Tools/Scripts/build-jsc --gtk --debug

Test case:
---
try {
    throw {};
} catch ({a = eval("b"), b}) {
}
---

Assertion failure:
---
ASSERTION FAILED: returnValue
---

Stack trace:
---
#0  0x00007ffff6da9fd8 in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:323
#1  0x00007ffff69008c8 in JSC::checkedReturn (returnValue=...) at ../../Source/JavaScriptCore/interpreter/Interpreter.cpp:812
#2  0x00007ffff69032dc in JSC::Interpreter::execute (this=0x7fffefff1048, eval=0x7fffaf7f7ee0, callFrame=0x7fffffffcaa0, thisValue=..., scope=0x7fffaf7c8be0)
    at ../../Source/JavaScriptCore/interpreter/Interpreter.cpp:1238
#3  0x00007ffff68fec27 in JSC::eval (callFrame=0x7fffffffcaa0) at ../../Source/JavaScriptCore/interpreter/Interpreter.cpp:195
#4  0x00007ffff69a7691 in JSC::(anonymous namespace)::llint_slow_path_call_eval (exec=0x7fffffffcb40, pc=0x7fffaf3f7030) at ../../Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1445
#5  0x00007ffff69b3201 in llint_entry () at ../../Source/WTF/wtf/RefPtr.h:79
#6  0x00007ffff69ac563 in vmEntryToJavaScript () at ../../Source/WTF/wtf/RefPtr.h:79
#7  0x00007ffff694a53c in JSC::JITCode::execute (this=0x7fffeffb5500, vm=0x7fffafa00000, protoCallFrame=0x7fffffffcd20) at ../../Source/JavaScriptCore/jit/JITCode.cpp:80
#8  0x00007ffff690186a in JSC::Interpreter::execute (this=0x7fffefff1048, program=0x7fffaf7f7f70, callFrame=0x7fffaf7df940, thisObj=0x7fffaf7a79c0)
    at ../../Source/JavaScriptCore/interpreter/Interpreter.cpp:964
#9  0x00007ffff6afbe2e in JSC::evaluate (exec=0x7fffaf7df940, source=..., thisValue=..., returnedException=...) at ../../Source/JavaScriptCore/runtime/Completion.cpp:107
#10 0x000000000043b0ad in runWithScripts (globalObject=0x7fffaf7df900, scripts=..., uncaughtExceptionName=..., dump=false, module=false) at ../../Source/JavaScriptCore/jsc.cpp:2135
#11 0x000000000043c08d in runJSC (vm=0x7fffafa00000, options=...) at ../../Source/JavaScriptCore/jsc.cpp:2384
#12 0x000000000043c5b0 in jscmain (argc=2, argv=0x7fffffffdb98) at ../../Source/JavaScriptCore/jsc.cpp:2437
#13 0x0000000000439f15 in main (argc=2, argv=0x7fffffffdb98) at ../../Source/JavaScriptCore/jsc.cpp:2000
---
Comment 1 Saam Barati 2016-08-05 10:59:35 PDT
This is probably an easy fix. Looking into it now.
Comment 2 Saam Barati 2016-08-05 11:39:40 PDT
Created attachment 285439 [details]
patch
Comment 3 Mark Lam 2016-08-05 11:43:03 PDT
Comment on attachment 285439 [details]
patch

r=me
Comment 4 Keith Miller 2016-08-05 11:48:00 PDT
r=me too.
Comment 5 Saam Barati 2016-08-05 12:18:17 PDT
landed in:
https://trac.webkit.org/changeset/204182