| Index: test/cctest/test-api.cc
|
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
| index 761b402fa7dfe4d0d6bc3d022c6d54a1f71fd0fc..7803c873a18711126c07310b294ee50aa51415ef 100644
|
| --- a/test/cctest/test-api.cc
|
| +++ b/test/cctest/test-api.cc
|
| @@ -17188,6 +17188,26 @@ TEST(VisitExternalStrings) {
|
| }
|
|
|
|
|
| +TEST(ExternalStringCollectedAtTearDown) {
|
| + int destroyed = 0;
|
| + v8::Isolate* isolate = v8::Isolate::New();
|
| + { v8::Isolate::Scope isolate_scope(isolate);
|
| + v8::HandleScope handle_scope(isolate);
|
| + const char* s = "One string to test them all, one string to find them.";
|
| + TestAsciiResource* inscription =
|
| + new TestAsciiResource(i::StrDup(s), &destroyed);
|
| + v8::Local<v8::String> ring = v8::String::NewExternal(inscription);
|
| + // Ring is still alive. Orcs are roaming freely across our lands.
|
| + CHECK_EQ(0, destroyed);
|
| + USE(ring);
|
| + }
|
| +
|
| + isolate->Dispose();
|
| + // Ring has been destroyed. Free Peoples of Middle-earth Rejoice.
|
| + CHECK_EQ(1, destroyed);
|
| +}
|
| +
|
| +
|
| static double DoubleFromBits(uint64_t value) {
|
| double target;
|
| i::OS::MemCopy(&target, &value, sizeof(target));
|
|
|