keith_miller@apple.com | bcc77f2 | 2016-07-15 06:03:25 +0000 | [diff] [blame] | 1 | // This file was procedurally generated from the following sources: |
| 2 | // - src/annex-b-fns/eval-global-update.case |
| 3 | // - src/annex-b-fns/eval-global/indirect-block.template |
| 4 | /*--- |
| 5 | description: Variable binding value is updated following evaluation (Block statement in eval code containing a function declaration) |
| 6 | esid: sec-web-compat-evaldeclarationinstantiation |
| 7 | es6id: B.3.3.3 |
| 8 | flags: [generated, noStrict] |
| 9 | info: | |
| 10 | B.3.3.3 Changes to EvalDeclarationInstantiation |
| 11 | |
| 12 | [...] |
| 13 | b. When the FunctionDeclaration f is evaluated, perform the following steps |
| 14 | in place of the FunctionDeclaration Evaluation algorithm provided in |
| 15 | 14.1.21: |
| 16 | i. Let genv be the running execution context's VariableEnvironment. |
| 17 | ii. Let genvRec be genv's EnvironmentRecord. |
| 18 | iii. Let benv be the running execution context's LexicalEnvironment. |
| 19 | iv. Let benvRec be benv's EnvironmentRecord. |
| 20 | v. Let fobj be ! benvRec.GetBindingValue(F, false). |
| 21 | vi. Perform ? genvRec.SetMutableBinding(F, fobj, false). |
| 22 | vii. Return NormalCompletion(empty). |
| 23 | ---*/ |
| 24 | |
| 25 | (0,eval)( |
| 26 | '{ function f() { return "declaration"; } }assert.sameValue(typeof f, "function");\ |
| 27 | assert.sameValue(f(), "declaration");' |
| 28 | ); |