mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 912152 - Improve mechanism for bailing out from Ion compilation of scripts with try-finally, r=jandem.
This commit is contained in:
parent
625036f1ac
commit
93a2b1a590
7
js/src/jit-test/tests/ion/bug912152.js
Normal file
7
js/src/jit-test/tests/ion/bug912152.js
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
function foo() {
|
||||
try {
|
||||
this.f = 0;
|
||||
} finally {}
|
||||
}
|
||||
new foo();
|
@ -1599,12 +1599,6 @@ IonCompile(JSContext *cx, JSScript *script,
|
||||
if (!script->ensureRanAnalysis(cx))
|
||||
return AbortReason_Alloc;
|
||||
|
||||
// Try-finally is not yet supported.
|
||||
if (script->analysis()->hasTryFinally()) {
|
||||
IonSpew(IonSpew_Abort, "Has try-finally.");
|
||||
return AbortReason_Disable;
|
||||
}
|
||||
|
||||
LifoAlloc *alloc = cx->new_<LifoAlloc>(BUILDER_LIFO_ALLOC_PRIMARY_CHUNK_SIZE);
|
||||
if (!alloc)
|
||||
return AbortReason_Alloc;
|
||||
|
@ -3364,7 +3364,8 @@ IonBuilder::jsop_try()
|
||||
return abort("Try-catch support disabled");
|
||||
|
||||
// Try-finally is not yet supported.
|
||||
JS_ASSERT(!script()->analysis()->hasTryFinally());
|
||||
if (script()->analysis()->hasTryFinally())
|
||||
return abort("Has try-finally");
|
||||
|
||||
graph().setHasTryBlock();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user