mirror of https://github.com/tc39/test262.git
Let paramVarEnv be NewDeclarativeEnvironment(originalEnv). (#1348)
Originally discovered by Cait Potter (@caitp), reported in irc.mozilla.org#jslang
This commit is contained in:
parent
076ecc38c6
commit
3981242226
|
@ -0,0 +1,28 @@
|
||||||
|
// Copyright (C) 2017 Rick Waldron. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-function-definitions-runtime-semantics-iteratorbindinginitialization
|
||||||
|
description: >
|
||||||
|
A new declarative environment is created, from the originalEnv, for each
|
||||||
|
parameter, and paramVarEnv is not shared.
|
||||||
|
info: |
|
||||||
|
Runtime Semantics: IteratorBindingInitialization
|
||||||
|
|
||||||
|
FormalParameter : BindingElement
|
||||||
|
|
||||||
|
...
|
||||||
|
6. Let paramVarEnv be NewDeclarativeEnvironment(originalEnv).
|
||||||
|
...
|
||||||
|
|
||||||
|
features: [arrow-function, default-parameters]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
var y;
|
||||||
|
function f(a = eval("var x = 1; y = 42; x"), b = eval("x")) {}
|
||||||
|
|
||||||
|
assert.throws(ReferenceError, () => {
|
||||||
|
f();
|
||||||
|
});
|
||||||
|
|
||||||
|
assert.sameValue(y, 42);
|
|
@ -0,0 +1,26 @@
|
||||||
|
// Copyright (C) 2017 Rick Waldron. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-function-definitions-runtime-semantics-iteratorbindinginitialization
|
||||||
|
description: A new declarative environment is created, from the originalEnv, for each parameter.
|
||||||
|
info: |
|
||||||
|
Runtime Semantics: IteratorBindingInitialization
|
||||||
|
|
||||||
|
FormalParameter : BindingElement
|
||||||
|
|
||||||
|
...
|
||||||
|
6. Let paramVarEnv be NewDeclarativeEnvironment(originalEnv).
|
||||||
|
...
|
||||||
|
|
||||||
|
features: [arrow-function, default-parameters]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
var y;
|
||||||
|
function f(a = eval("var x = 1; y = 42; x"), b = x) {}
|
||||||
|
|
||||||
|
assert.throws(ReferenceError, () => {
|
||||||
|
f();
|
||||||
|
});
|
||||||
|
|
||||||
|
assert.sameValue(y, 42);
|
Loading…
Reference in New Issue