| Index: test/cctest/test-api.cc
|
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
| index f7d8d807698a80565d3da0d5863e8b372240431c..b84fc82222fa9528db80f5635b4fde4435a47be8 100644
|
| --- a/test/cctest/test-api.cc
|
| +++ b/test/cctest/test-api.cc
|
| @@ -404,6 +404,10 @@ THREADED_TEST(ScriptUsingStringResource) {
|
| CHECK(source->IsExternal());
|
| CHECK_EQ(resource,
|
| static_cast<TestResource*>(source->GetExternalStringResource()));
|
| + String::ExternalStringResourceBase* pointer = NULL;
|
| + CHECK_EQ(String::kExternalTwoByteStringType,
|
| + source->GetExternalStringResourceBase(pointer));
|
| + CHECK_EQ(resource, static_cast<TestResource*>(pointer));
|
| HEAP->CollectAllGarbage(i::Heap::kNoGCFlags);
|
| CHECK_EQ(0, dispose_count);
|
| }
|
| @@ -419,9 +423,17 @@ THREADED_TEST(ScriptUsingAsciiStringResource) {
|
| {
|
| v8::HandleScope scope;
|
| LocalContext env;
|
| - Local<String> source =
|
| - String::NewExternal(new TestAsciiResource(i::StrDup(c_source),
|
| - &dispose_count));
|
| + TestAsciiResource* resource = new TestAsciiResource(i::StrDup(c_source),
|
| + &dispose_count);
|
| + Local<String> source = String::NewExternal(resource);
|
| + CHECK(source->IsExternalAscii());
|
| + CHECK_EQ(static_cast<const String::ExternalStringResourceBase*>(resource),
|
| + source->GetExternalAsciiStringResource());
|
| + String::ExternalStringResourceBase* pointer = NULL;
|
| + CHECK_EQ(String::kExternalAsciiStringType,
|
| + source->GetExternalStringResourceBase(pointer));
|
| + CHECK_EQ(static_cast<const String::ExternalStringResourceBase*>(resource),
|
| + pointer);
|
| Local<Script> script = Script::Compile(source);
|
| Local<Value> value = script->Run();
|
| CHECK(value->IsNumber());
|
| @@ -445,6 +457,12 @@ THREADED_TEST(ScriptMakingExternalString) {
|
| // Trigger GCs so that the newly allocated string moves to old gen.
|
| HEAP->CollectGarbage(i::NEW_SPACE); // in survivor space now
|
| HEAP->CollectGarbage(i::NEW_SPACE); // in old gen now
|
| + CHECK_EQ(source->IsExternal(), false);
|
| + CHECK_EQ(source->IsExternalAscii(), false);
|
| + String::ExternalStringResourceBase* pointer;
|
| + pointer = NULL;
|
| + CHECK_EQ(0, source->GetExternalStringResourceBase(pointer));
|
| + CHECK_EQ(pointer, NULL);
|
| bool success = source->MakeExternal(new TestResource(two_byte_source,
|
| &dispose_count));
|
| CHECK(success);
|
|
|