Index: test/mjsunit/es6/block-sloppy-function.js |
diff --git a/test/mjsunit/es6/block-sloppy-function.js b/test/mjsunit/es6/block-sloppy-function.js |
index e5f244774f673942a382c66703865ee33dfe758d..9a854ac272714ed307d2cd264f935508b639080f 100644 |
--- a/test/mjsunit/es6/block-sloppy-function.js |
+++ b/test/mjsunit/es6/block-sloppy-function.js |
@@ -455,6 +455,45 @@ |
assertEquals(4, f()); |
})(); |
+// B.3.5 interacts with B.3.3 to allow this. |
+(function hoistingThroughSimpleCatch() { |
+ assertEquals(undefined, f); |
+ |
+ try { |
+ throw 0; |
+ } catch(f) { |
+ { |
+ assertEquals(4, f()); |
+ |
+ function f() { |
+ return 4; |
+ } |
+ |
+ assertEquals(4, f()); |
+ } |
+ } |
+ |
+ assertEquals(4, f()); |
+})(); |
+ |
+(function noHoistingThroughComplexCatch() { |
+ try { |
+ throw 0; |
+ } catch({f}) { |
+ { |
+ assertEquals(4, f()); |
+ |
+ function f() { |
+ return 4; |
+ } |
+ |
+ assertEquals(4, f()); |
+ } |
+ } |
+ |
+ assertThrows(()=>f, ReferenceError); |
+})(); |
+ |
// Test that hoisting from blocks does happen in global scope |
function globalHoisted() { return 0; } |
{ |