| Index: test/mjsunit/property-load-across-eval.js | 
| =================================================================== | 
| --- test/mjsunit/property-load-across-eval.js	(revision 4607) | 
| +++ test/mjsunit/property-load-across-eval.js	(working copy) | 
| @@ -28,17 +28,55 @@ | 
| // Tests loading of properties across eval calls. | 
|  | 
| var x = 1; | 
| +function global_function() { return 'global'; } | 
| +const const_uninitialized; | 
| +const const_initialized = function() { return "const_global"; } | 
|  | 
| // Test loading across an eval call that does not shadow variables. | 
| function testNoShadowing() { | 
| var y = 2; | 
| +  function local_function() { return 'local'; } | 
| +  const local_const_uninitialized; | 
| +  const local_const_initialized = function() { return "const_local"; } | 
| function f() { | 
| eval('1'); | 
| assertEquals(1, x); | 
| assertEquals(2, y); | 
| +    assertEquals('global', global_function()); | 
| +    assertEquals('local', local_function()); | 
| +    try { | 
| +      const_uninitialized(); | 
| +      assertUnreachable(); | 
| +    } catch(e) { | 
| +      // Ignore. | 
| +    } | 
| +    assertEquals('const_global', const_initialized()); | 
| +    try { | 
| +      local_const_uninitialized(); | 
| +      assertUnreachable(); | 
| +    } catch(e) { | 
| +      // Ignore. | 
| +    } | 
| +    assertEquals('const_local', local_const_initialized()); | 
| function g() { | 
| assertEquals(1, x); | 
| assertEquals(2, y); | 
| +      assertEquals('global', global_function()); | 
| +      assertEquals('local', local_function()); | 
| +      try { | 
| +        const_uninitialized(); | 
| +        assertUnreachable(); | 
| +      } catch(e) { | 
| +        // Ignore. | 
| +      } | 
| +      assertEquals('const_global', const_initialized()); | 
| +      try { | 
| +        local_const_uninitialized(); | 
| +        assertUnreachable(); | 
| +      } catch(e) { | 
| +        // Ignore. | 
| +      } | 
| +      assertEquals('const_local', local_const_initialized()); | 
| } | 
| g(); | 
| } | 
| @@ -50,14 +88,19 @@ | 
| // Test loading across eval calls that do not shadow variables. | 
| function testNoShadowing2() { | 
| var y = 2; | 
| +  function local_function() { return 'local'; } | 
| eval('1'); | 
| function f() { | 
| eval('1'); | 
| assertEquals(1, x); | 
| assertEquals(2, y); | 
| +    assertEquals('global', global_function()); | 
| +    assertEquals('local', local_function()); | 
| function g() { | 
| assertEquals(1, x); | 
| assertEquals(2, y); | 
| +      assertEquals('global', global_function()); | 
| +      assertEquals('local', local_function()); | 
| } | 
| g(); | 
| } | 
| @@ -69,13 +112,20 @@ | 
| // Test loading across an eval call that shadows variables. | 
| function testShadowing() { | 
| var y = 2; | 
| +  function local_function() { return 'local'; } | 
| function f() { | 
| eval('var x = 3; var y = 4;'); | 
| assertEquals(3, x); | 
| assertEquals(4, y); | 
| +    eval('function local_function() { return "new_local"; }'); | 
| +    eval('function global_function() { return "new_nonglobal"; }'); | 
| +    assertEquals('new_nonglobal', global_function()); | 
| +    assertEquals('new_local', local_function()); | 
| function g() { | 
| assertEquals(3, x); | 
| assertEquals(4, y); | 
| +      assertEquals('new_nonglobal', global_function()); | 
| +      assertEquals('new_local', local_function()); | 
| } | 
| g(); | 
| } | 
|  |