// Copyright (C) 2015 André Bargull. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- esid: sec-function-definitions-runtime-semantics-iteratorbindinginitialization description: If a computed property key contains a direct eval call, a new declarative environment is created. info: > Runtime Semantics: IteratorBindingInitialization FormalParameter : BindingElement ... 2. Let currentContext be the running execution context. 3. Let originalEnv be the VariableEnvironment of currentContext. 4. Assert: The VariableEnvironment and LexicalEnvironment of currentContext are the same. 5. Assert: environment and originalEnv are the same. 6. Let paramVarEnv be NewDeclarativeEnvironment(originalEnv). ... ---*/ var x = "outer"; function evalInComputedPropertyKey({[eval("var x = 'inner'")]: ignored}) { assert.sameValue(x, "outer"); } evalInComputedPropertyKey({});