Chromium Code Reviews| Index: test/cctest/test-api.cc |
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc |
| index 6c71de4ce2e2b282e229f6fcfcba3aa432badfb3..abd86f21bf6ff4f5ee97dc14c002c0aff715c430 100644 |
| --- a/test/cctest/test-api.cc |
| +++ b/test/cctest/test-api.cc |
| @@ -3188,6 +3188,44 @@ THREADED_TEST(GlobalHandleUpcast) { |
| } |
| +THREADED_TEST(LocalHandleBasedOnGlobalHandle) { |
|
Michael Starzinger
2013/08/21 09:54:09
nit: Maybe we should call the test "HandleEquality
marja
2013/08/21 09:56:40
Done.
|
| + v8::Isolate* isolate = v8::Isolate::GetCurrent(); |
| + v8::Persistent<String> global1; |
| + v8::Persistent<String> global2; |
| + { |
| + v8::HandleScope scope(isolate); |
| + global1.Reset(isolate, v8_str("str")); |
| + global2.Reset(isolate, v8_str("str2")); |
| + } |
| + CHECK_EQ(global1 == global1, true); |
| + CHECK_EQ(global1 != global1, false); |
| + { |
| + v8::HandleScope scope(isolate); |
| + Local<String> local1 = Local<String>::New(isolate, global1); |
| + Local<String> local2 = Local<String>::New(isolate, global2); |
| + |
| + CHECK_EQ(global1 == local1, true); |
| + CHECK_EQ(global1 != local1, false); |
| + CHECK_EQ(local1 == global1, true); |
| + CHECK_EQ(local1 != global1, false); |
| + |
| + CHECK_EQ(global1 == local2, false); |
| + CHECK_EQ(global1 != local2, true); |
| + CHECK_EQ(local2 == global1, false); |
| + CHECK_EQ(local2 != global1, true); |
| + |
| + CHECK_EQ(local1 == local2, false); |
| + CHECK_EQ(local1 != local2, true); |
| + |
| + Local<String> anotherLocal1 = Local<String>::New(isolate, global1); |
| + CHECK_EQ(local1 == anotherLocal1, true); |
| + CHECK_EQ(local1 != anotherLocal1, false); |
| + } |
| + global1.Dispose(); |
| + global2.Dispose(); |
| +} |
| + |
| + |
| THREADED_TEST(LocalHandle) { |
| v8::HandleScope scope(v8::Isolate::GetCurrent()); |
| v8::Local<String> local = v8::Local<String>::New(v8_str("str")); |