Status: Assigned
Owner: [email protected]
Labels: Type-Bug Priority-Medium Harmony
New issue 4405 by [email protected]: Uncatchable ReferenceError in
sloppy mode with --always-opt
https://code.google.com/p/v8/issues/detail?id=4405
This is a bit of a weird bug. This test262 test fails
https://github.com/tc39/test262/blob/master/test/language/block-scope/leave/outermost-binding-updated-in-catch-block-nested-block-let-declaration-unseen-outside-of-block.js
only with --always-opt. The ReferenceError bubbles up to the top rather
than being caught by the inner try-catch for some reason.
It's strange that --always-opt affects anything at all, as Crankshaft
doesn't optimize try/catch, and all the code is within a try/catch.
We're only noticing this now because the test was previously marked as
passing only in strict mode (which is true, it somehow gets caught properly
in strict mode but not sloppy mode) but it doesn't have anything to do with
the let included--simply deleting that line leads to the same failure.
----
var caught = false;
try {
{
let xx = 18;
throw 25;
}
} catch (e) {
caught = true;
assert.sameValue(e, 25);
(function () {
try {
// NOTE: This checks that the block scope containing xx has been
// removed from the context chain.
assert.sameValue(xx, undefined);
eval('xx');
assert(false); // should not reach here
} catch (e2) {
assert(e2 instanceof ReferenceError);
}
})();
}
assert(caught);
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.