Bug 1921345 - Remove global constructor from js/src/vm/SavedStacks.cpp r=arai
[gecko.git] / js / src / tests / test262 / annexB / language / eval-code / direct / func-switch-dflt-eval-func-skip-early-err-switch.js
bloba7b71f4fb3fe361ecb24e561f0562f372f458fe9
1 // This file was procedurally generated from the following sources:
2 // - src/annex-b-fns/eval-func-skip-early-err-switch.case
3 // - src/annex-b-fns/eval-func/direct-switch-dflt.template
4 /*---
5 description: Extension not observed when creation of variable binding would produce an early error (switch statement) (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope)
6 esid: sec-web-compat-evaldeclarationinstantiation
7 flags: [generated, noStrict]
8 info: |
9     B.3.3.3 Changes to EvalDeclarationInstantiation
11     [...]
12     ii. If replacing the FunctionDeclaration f with a VariableStatement that
13         has F as a BindingIdentifier would not produce any Early Errors for
14         body, then
15     [...]
16 ---*/
18 (function() {
19   eval(
20     'assert.throws(ReferenceError, function() {\
21       f;\
22     }, "An initialized binding is not created prior to evaluation");\
23     assert.sameValue(\
24       typeof f,\
25       "undefined",\
26       "An uninitialized binding is not created prior to evaluation"\
27     );\
28     \
29     switch (0) {\
30       default:\
31         let f;switch (1) {' +
32     '  default:' +
33     '    function f() {  }' +
34     '}\
35     }\
36     \
37     assert.throws(ReferenceError, function() {\
38       f;\
39     }, "An initialized binding is not created following evaluation");\
40     assert.sameValue(\
41       typeof f,\
42       "undefined",\
43       "An uninitialized binding is not created following evaluation"\
44     );'
45   );
46 }());
48 reportCompare(0, 0);