Bug 1909234 - Vendor libwebrtc from e0b28a6a81
[gecko.git] / js / src / tests / test262 / annexB / language / eval-code / direct / global-block-decl-eval-global-skip-early-err-switch.js
blob13b06566435042610b35db6ad792c5c802d7e86f
1 // This file was procedurally generated from the following sources:
2 // - src/annex-b-fns/eval-global-skip-early-err-switch.case
3 // - src/annex-b-fns/eval-global/direct-block.template
4 /*---
5 description: Extension not observed when creation of variable binding would produce an early error (switch statement) (Block statement in eval code containing a function declaration)
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 ---*/
17 assert.throws(ReferenceError, function() {
18   f;
19 }, 'An initialized binding is not created prior to evaluation');
20 assert.sameValue(
21   typeof f,
22   'undefined',
23   'An uninitialized binding is not created prior to evaluation'
26 eval(
27   'switch (0) {\
28     default:\
29       let f;{ function f() {  } }}'
32 assert.throws(ReferenceError, function() {
33   f;
34 }, 'An initialized binding is not created following evaluation');
35 assert.sameValue(
36   typeof f,
37   'undefined',
38   'An uninitialized binding is not created following evaluation'
41 reportCompare(0, 0);