| Index: test/cctest/test-api.cc
|
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
| index 970fdaa1ddb7db3160eaa6f6b628226278bf231d..ae980f1cdacf1246b1e8310934b8bf04fe41c334 100644
|
| --- a/test/cctest/test-api.cc
|
| +++ b/test/cctest/test-api.cc
|
| @@ -1649,6 +1649,23 @@ THREADED_TEST(IdentityHash) {
|
| CHECK_NE(hash, hash3);
|
| int hash4 = obj->GetIdentityHash();
|
| CHECK_EQ(hash, hash4);
|
| +
|
| + // Check identity hashes behaviour in the presence of JS accessors.
|
| + // Put a getter for 'v8::IdentityHash' on the Object's prototype:
|
| + {
|
| + CompileRun("Object.prototype['v8::IdentityHash'] = 42;\n");
|
| + Local<v8::Object> o1 = v8::Object::New();
|
| + Local<v8::Object> o2 = v8::Object::New();
|
| + CHECK_NE(o1->GetIdentityHash(), o2->GetIdentityHash());
|
| + }
|
| + {
|
| + CompileRun(
|
| + "function cnst() { return 42; };\n"
|
| + "Object.prototype.__defineGetter__('v8::IdentityHash', cnst);\n");
|
| + Local<v8::Object> o1 = v8::Object::New();
|
| + Local<v8::Object> o2 = v8::Object::New();
|
| + CHECK_NE(o1->GetIdentityHash(), o2->GetIdentityHash());
|
| + }
|
| }
|
|
|
|
|
|
|