Index: test/cctest/test-decls.cc |
diff --git a/test/cctest/test-decls.cc b/test/cctest/test-decls.cc |
index f2ccdab6c0162f9b70924759dbfa80f576c80590..23ebd7fc2d2fb59fca3fa7a1c50ae9a2300de290 100644 |
--- a/test/cctest/test-decls.cc |
+++ b/test/cctest/test-decls.cc |
@@ -644,6 +644,46 @@ TEST(CrossScriptReferences) { |
} |
+TEST(CrossScriptReferences_Simple) { |
+ i::FLAG_harmony_scoping = true; |
+ i::FLAG_use_strict = true; |
+ |
+ v8::Isolate* isolate = CcTest::isolate(); |
+ HandleScope scope(isolate); |
+ |
+ { |
+ SimpleContext context; |
+ context.Check("let x = 1; x", EXPECT_RESULT, Number::New(isolate, 1)); |
+ context.Check("let x = 5; x", EXPECT_EXCEPTION); |
+ } |
+} |
+ |
+ |
+TEST(CrossScriptReferences_Simple2) { |
+ i::FLAG_harmony_scoping = true; |
+ i::FLAG_use_strict = true; |
+ |
+ v8::Isolate* isolate = CcTest::isolate(); |
+ HandleScope scope(isolate); |
+ |
+ for (int k = 0; k < 100; k++) { |
+ SimpleContext context; |
+ bool cond = (k % 2) == 0; |
+ if (cond) { |
+ printf("First!\n"); |
+ context.Check("let x = 1; x", EXPECT_RESULT, Number::New(isolate, 1)); |
+ context.Check("let z = 4; z", EXPECT_RESULT, Number::New(isolate, 4)); |
+ } else { |
+ printf("Second!\n"); |
+ context.Check("let z = 1; z", EXPECT_RESULT, Number::New(isolate, 1)); |
+ context.Check("let x = 4; x", EXPECT_RESULT, Number::New(isolate, 4)); |
+ } |
+ context.Check("let y = 2; x", EXPECT_RESULT, |
+ Number::New(isolate, cond ? 1 : 4)); |
+ } |
+} |
+ |
+ |
TEST(CrossScriptReferencesHarmony) { |
i::FLAG_use_strict = true; |
i::FLAG_harmony_scoping = true; |
@@ -740,9 +780,8 @@ TEST(CrossScriptDynamicLookup) { |
EXPECT_RESULT, Number::New(CcTest::isolate(), 1)); |
context.Check( |
"'use strict';" |
- "g({});" |
- "x", |
- EXPECT_RESULT, Number::New(CcTest::isolate(), 15)); |
+ "g({});0", |
+ EXPECT_RESULT, Number::New(CcTest::isolate(), 0)); |
context.Check("f({})", EXPECT_RESULT, Number::New(CcTest::isolate(), 15)); |
context.Check("h({})", EXPECT_RESULT, number_string); |
} |