Bug 1909234 - Vendor libwebrtc from e0b28a6a81
[gecko.git] / js / src / tests / test262 / annexB / language / eval-code / direct / global-switch-dflt-eval-global-skip-early-err-for.js
blobcb4f0ab8961072c6d3afba2bb6693915559a535f
1 // This file was procedurally generated from the following sources:
2 // - src/annex-b-fns/eval-global-skip-early-err-for.case
3 // - src/annex-b-fns/eval-global/direct-switch-dflt.template
4 /*---
5 description: Extension not observed when creation of variable binding would produce an early error (for 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 ---*/
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   'for (let f; ; ) {switch (1) {' +
28   '  default:' +
29   '    function f() {  }' +
30   '}\
31   break;\
32   }'
35 assert.throws(ReferenceError, function() {
36   f;
37 }, 'An initialized binding is not created following evaluation');
38 assert.sameValue(
39   typeof f,
40   'undefined',
41   'An uninitialized binding is not created following evaluation'
44 reportCompare(0, 0);