// 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 property initializer 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 evalInPropertyInitializer({a: ignored = eval("var x = 'inner'")}) {
  assert.sameValue(x, "outer");
}
evalInPropertyInitializer({});
