Skip to content
Snippets Groups Projects
  • André Bargull's avatar
    89a4bb5a
    Fix strict mode errors in language · 89a4bb5a
    André Bargull authored
    - Add missing "var" declarations and noStrict flags
    - Add strict mode tests for:
     - arguments-object/10.6-6-3 -> arguments-object/10.6-6-3-s
     - arguments-object/10.6-6-4 -> arguments-object/10.6-6-4-s
    - Remove try-finally clean-up code
    - Add strict mode compatible tests for eval-code/S10.4.2_A1.1_T*
      - No strict mode compatible files added for eval-code/S10.4.2_A1.2_T*, because it doesn't really make sense in this context.
      - (S10.4.2_A1.1 and S10.4.2_A1.2 should probably be removed, because the tested behaviour is not required by the spec.)
    - Split S8.5_A10, S8.5_A4 and S8.1_A3 into declaration (both modes) and assignment tests (non-strict only)
    
    Part of issue #35.
    89a4bb5a
    History
    Fix strict mode errors in language
    André Bargull authored
    - Add missing "var" declarations and noStrict flags
    - Add strict mode tests for:
     - arguments-object/10.6-6-3 -> arguments-object/10.6-6-3-s
     - arguments-object/10.6-6-4 -> arguments-object/10.6-6-4-s
    - Remove try-finally clean-up code
    - Add strict mode compatible tests for eval-code/S10.4.2_A1.1_T*
      - No strict mode compatible files added for eval-code/S10.4.2_A1.2_T*, because it doesn't really make sense in this context.
      - (S10.4.2_A1.1 and S10.4.2_A1.2 should probably be removed, because the tested behaviour is not required by the spec.)
    - Split S8.5_A10, S8.5_A4 and S8.1_A3 into declaration (both modes) and assignment tests (non-strict only)
    
    Part of issue #35.
S10.4.2_A1.1_T8.js 618 B
// Copyright 2009 the Sputnik authors.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
info: >
    The scope chain is initialised to contain the same objects,
    in the same order, as the calling context's scope chain
es5id: 10.4.2_A1.1_T8
description: eval within global execution context
flags: [noStrict]
---*/

var i;
var j;
str1 = '';
str2 = '';
this.x = 1;

for(i in this){
  str1+=i;
}

eval('for(j in this){\nstr2+=j;\n}');

if(!(str1 === str2)){
  $ERROR("#1: scope chain must contain same objects in the same order as the calling context");
}

var y = 2;