| Index: test/cctest/test-decls.cc
|
| diff --git a/test/cctest/test-decls.cc b/test/cctest/test-decls.cc
|
| index 6ae23f29286a16e88e47e283dffb4e988371a8f8..1f22c9ff3a0eb1b5efe9aaa4e8bcf9173bccb29c 100644
|
| --- a/test/cctest/test-decls.cc
|
| +++ b/test/cctest/test-decls.cc
|
| @@ -96,6 +96,8 @@ class DeclarationContext {
|
| static void HandleQuery(Local<String> key,
|
| const v8::PropertyCallbackInfo<v8::Integer>& info);
|
|
|
| + v8::Isolate* isolate() const { return CcTest::isolate(); }
|
| +
|
| private:
|
| bool is_initialized_;
|
| Persistent<Context> context_;
|
| @@ -244,7 +246,7 @@ TEST(Unknown) {
|
| 1, // access
|
| 2, // declaration + initialization
|
| 2, // declaration + initialization
|
| - EXPECT_RESULT, Number::New(0));
|
| + EXPECT_RESULT, Number::New(CcTest::isolate(), 0));
|
| }
|
|
|
| { DeclarationContext context;
|
| @@ -278,7 +280,7 @@ TEST(Unknown) {
|
| class PresentPropertyContext: public DeclarationContext {
|
| protected:
|
| virtual v8::Handle<Integer> Query(Local<String> key) {
|
| - return Integer::New(v8::None);
|
| + return Integer::New(isolate(), v8::None);
|
| }
|
| };
|
|
|
| @@ -300,7 +302,7 @@ TEST(Present) {
|
| 1, // access
|
| 1, // initialization
|
| 2, // declaration + initialization
|
| - EXPECT_RESULT, Number::New(0));
|
| + EXPECT_RESULT, Number::New(CcTest::isolate(), 0));
|
| }
|
|
|
| { PresentPropertyContext context;
|
| @@ -324,7 +326,7 @@ TEST(Present) {
|
| 1, // access
|
| 1, // initialization
|
| 1, // (re-)declaration
|
| - EXPECT_RESULT, Number::New(0));
|
| + EXPECT_RESULT, Number::New(CcTest::isolate(), 0));
|
| }
|
| }
|
|
|
| @@ -356,7 +358,7 @@ TEST(Absent) {
|
| 1, // access
|
| 2, // declaration + initialization
|
| 2, // declaration + initialization
|
| - EXPECT_RESULT, Number::New(0));
|
| + EXPECT_RESULT, Number::New(isolate, 0));
|
| }
|
|
|
| { AbsentPropertyContext context;
|
| @@ -416,7 +418,7 @@ class AppearingPropertyContext: public DeclarationContext {
|
| // Return that the property is present so we only get the
|
| // setter called when initializing with a value.
|
| state_ = UNKNOWN;
|
| - return Integer::New(v8::None);
|
| + return Integer::New(isolate(), v8::None);
|
| default:
|
| CHECK(state_ == UNKNOWN);
|
| break;
|
| @@ -447,7 +449,7 @@ TEST(Appearing) {
|
| 1, // access
|
| 2, // declaration + initialization
|
| 2, // declaration + initialization
|
| - EXPECT_RESULT, Number::New(0));
|
| + EXPECT_RESULT, Number::New(CcTest::isolate(), 0));
|
| }
|
|
|
| { AppearingPropertyContext context;
|
| @@ -502,7 +504,7 @@ class ReappearingPropertyContext: public DeclarationContext {
|
| // Ignore the second declaration by returning
|
| // that the property is already there.
|
| state_ = INITIALIZE;
|
| - return Integer::New(v8::None);
|
| + return Integer::New(isolate(), v8::None);
|
| case INITIALIZE:
|
| // Force an initialization by returning that
|
| // the property is absent. This will make sure
|
| @@ -539,10 +541,12 @@ TEST(Reappearing) {
|
|
|
|
|
| class ExistsInPrototypeContext: public DeclarationContext {
|
| + public:
|
| + ExistsInPrototypeContext() { InitializeIfNeeded(); }
|
| protected:
|
| virtual v8::Handle<Integer> Query(Local<String> key) {
|
| // Let it seem that the property exists in the prototype object.
|
| - return Integer::New(v8::None);
|
| + return Integer::New(isolate(), v8::None);
|
| }
|
|
|
| // Use the prototype as the holder for the interceptors.
|
| @@ -563,7 +567,7 @@ TEST(ExistsInPrototype) {
|
| 0,
|
| 0,
|
| 0,
|
| - EXPECT_RESULT, Number::New(87));
|
| + EXPECT_RESULT, Number::New(CcTest::isolate(), 87));
|
| }
|
|
|
| { ExistsInPrototypeContext context;
|
| @@ -579,7 +583,7 @@ TEST(ExistsInPrototype) {
|
| 0,
|
| 0,
|
| 0,
|
| - EXPECT_RESULT, Number::New(0));
|
| + EXPECT_RESULT, Number::New(CcTest::isolate(), 0));
|
| }
|
|
|
| { ExistsInPrototypeContext context;
|
| @@ -595,7 +599,7 @@ TEST(ExistsInPrototype) {
|
| 0,
|
| 0,
|
| 0,
|
| - EXPECT_RESULT, Number::New(0));
|
| + EXPECT_RESULT, Number::New(CcTest::isolate(), 0));
|
| }
|
| }
|
|
|
| @@ -641,7 +645,7 @@ class ExistsInHiddenPrototypeContext: public DeclarationContext {
|
| protected:
|
| virtual v8::Handle<Integer> Query(Local<String> key) {
|
| // Let it seem that the property exists in the hidden prototype object.
|
| - return Integer::New(v8::None);
|
| + return Integer::New(isolate(), v8::None);
|
| }
|
|
|
| // Install the hidden prototype after the global object has been created.
|
| @@ -680,7 +684,7 @@ TEST(ExistsInHiddenPrototype) {
|
| 1, // access
|
| 1, // initialization
|
| 2, // declaration + initialization
|
| - EXPECT_RESULT, Number::New(0));
|
| + EXPECT_RESULT, Number::New(CcTest::isolate(), 0));
|
| }
|
|
|
| { ExistsInHiddenPrototypeContext context;
|
| @@ -706,7 +710,7 @@ TEST(ExistsInHiddenPrototype) {
|
| 0,
|
| 0,
|
| 1, // (re-)declaration
|
| - EXPECT_RESULT, Number::New(0));
|
| + EXPECT_RESULT, Number::New(CcTest::isolate(), 0));
|
| }
|
| }
|
|
|
| @@ -759,40 +763,41 @@ class SimpleContext {
|
|
|
|
|
| TEST(CrossScriptReferences) {
|
| - HandleScope scope(CcTest::isolate());
|
| + v8::Isolate* isolate = CcTest::isolate();
|
| + HandleScope scope(isolate);
|
|
|
| { SimpleContext context;
|
| context.Check("var x = 1; x",
|
| - EXPECT_RESULT, Number::New(1));
|
| + EXPECT_RESULT, Number::New(isolate, 1));
|
| context.Check("var x = 2; x",
|
| - EXPECT_RESULT, Number::New(2));
|
| + EXPECT_RESULT, Number::New(isolate, 2));
|
| context.Check("const x = 3; x",
|
| - EXPECT_RESULT, Number::New(3));
|
| + EXPECT_RESULT, Number::New(isolate, 3));
|
| context.Check("const x = 4; x",
|
| - EXPECT_RESULT, Number::New(4));
|
| + EXPECT_RESULT, Number::New(isolate, 4));
|
| context.Check("x = 5; x",
|
| - EXPECT_RESULT, Number::New(5));
|
| + EXPECT_RESULT, Number::New(isolate, 5));
|
| context.Check("var x = 6; x",
|
| - EXPECT_RESULT, Number::New(6));
|
| + EXPECT_RESULT, Number::New(isolate, 6));
|
| context.Check("this.x",
|
| - EXPECT_RESULT, Number::New(6));
|
| + EXPECT_RESULT, Number::New(isolate, 6));
|
| context.Check("function x() { return 7 }; x()",
|
| - EXPECT_RESULT, Number::New(7));
|
| + EXPECT_RESULT, Number::New(isolate, 7));
|
| }
|
|
|
| { SimpleContext context;
|
| context.Check("const x = 1; x",
|
| - EXPECT_RESULT, Number::New(1));
|
| + EXPECT_RESULT, Number::New(isolate, 1));
|
| context.Check("var x = 2; x", // assignment ignored
|
| - EXPECT_RESULT, Number::New(1));
|
| + EXPECT_RESULT, Number::New(isolate, 1));
|
| context.Check("const x = 3; x",
|
| - EXPECT_RESULT, Number::New(1));
|
| + EXPECT_RESULT, Number::New(isolate, 1));
|
| context.Check("x = 4; x", // assignment ignored
|
| - EXPECT_RESULT, Number::New(1));
|
| + EXPECT_RESULT, Number::New(isolate, 1));
|
| context.Check("var x = 5; x", // assignment ignored
|
| - EXPECT_RESULT, Number::New(1));
|
| + EXPECT_RESULT, Number::New(isolate, 1));
|
| context.Check("this.x",
|
| - EXPECT_RESULT, Number::New(1));
|
| + EXPECT_RESULT, Number::New(isolate, 1));
|
| context.Check("function x() { return 7 }; x",
|
| EXPECT_EXCEPTION);
|
| }
|
| @@ -804,7 +809,8 @@ TEST(CrossScriptReferencesHarmony) {
|
| i::FLAG_harmony_scoping = true;
|
| i::FLAG_harmony_modules = true;
|
|
|
| - HandleScope scope(CcTest::isolate());
|
| + v8::Isolate* isolate = CcTest::isolate();
|
| + HandleScope scope(isolate);
|
|
|
| const char* decs[] = {
|
| "var x = 1; x", "x", "this.x",
|
| @@ -817,12 +823,14 @@ TEST(CrossScriptReferencesHarmony) {
|
|
|
| for (int i = 0; decs[i] != NULL; i += 3) {
|
| SimpleContext context;
|
| - context.Check(decs[i], EXPECT_RESULT, Number::New(1));
|
| - context.Check(decs[i+1], EXPECT_RESULT, Number::New(1));
|
| + context.Check(decs[i], EXPECT_RESULT, Number::New(isolate, 1));
|
| + context.Check(decs[i+1], EXPECT_RESULT, Number::New(isolate, 1));
|
| // TODO(rossberg): The current ES6 draft spec does not reflect lexical
|
| // bindings on the global object. However, this will probably change, in
|
| // which case we reactivate the following test.
|
| - if (i/3 < 2) context.Check(decs[i+2], EXPECT_RESULT, Number::New(1));
|
| + if (i/3 < 2) {
|
| + context.Check(decs[i+2], EXPECT_RESULT, Number::New(isolate, 1));
|
| + }
|
| }
|
| }
|
|
|
| @@ -854,12 +862,14 @@ TEST(CrossScriptConflicts) {
|
| for (int i = 0; firsts[i] != NULL; ++i) {
|
| for (int j = 0; seconds[j] != NULL; ++j) {
|
| SimpleContext context;
|
| - context.Check(firsts[i], EXPECT_RESULT, Number::New(1));
|
| + context.Check(firsts[i], EXPECT_RESULT,
|
| + Number::New(CcTest::isolate(), 1));
|
| // TODO(rossberg): All tests should actually be errors in Harmony,
|
| // but we currently do not detect the cases where the first declaration
|
| // is not lexical.
|
| context.Check(seconds[j],
|
| - i < 2 ? EXPECT_RESULT : EXPECT_ERROR, Number::New(2));
|
| + i < 2 ? EXPECT_RESULT : EXPECT_ERROR,
|
| + Number::New(CcTest::isolate(), 2));
|
| }
|
| }
|
| }
|
|
|