/** [18.2.1.2 Eval Declaration Instantiation] */ public static void EvalDeclarationInstantiation( ExecutionContext cx, Script script, LexicalEnvironment varEnv, LexicalEnvironment lexEnv, boolean deletableBindings) { // FIXME: spec incomplete (using modified ES5.1 algorithm for now...) LexicalEnvironment env = varEnv; EnvironmentRecord envRec = env.getEnvRec(); // boolean strict = script.isStrict(); for (StatementListItem d : VarScopedDeclarations(script)) { assert d instanceof VariableStatement; for (String dn : BoundNames((VariableStatement) d)) { boolean varAlreadyDeclared = envRec.hasBinding(dn); if (!varAlreadyDeclared) { envRec.createMutableBinding(dn, deletableBindings); // envRec.setMutableBinding(dn, UNDEFINED, strict); envRec.initialiseBinding(dn, UNDEFINED); } } } }