Index: src/api.cc |
diff --git a/src/api.cc b/src/api.cc |
index 8b323b2f1fb7264f3b8da49cf1c491ec33c06742..dfe2de590cbe5c652622ae4c1664518adfe06152 100644 |
--- a/src/api.cc |
+++ b/src/api.cc |
@@ -4087,6 +4087,29 @@ void v8::String::VerifyExternalStringResource( |
CHECK_EQ(expected, value); |
} |
+void v8::String::VerifyExternalStringResourceBase( |
+ v8::String::ExternalStringResourceBase* value, |
+ int type) const { |
+ i::Handle<i::String> str = Utils::OpenHandle(this); |
+ const v8::String::ExternalStringResourceBase* expected; |
+ int expectedType; |
+ if (i::StringShape(*str).IsExternalAscii()) { |
+ const void* resource = |
+ i::Handle<i::ExternalAsciiString>::cast(str)->resource(); |
+ expected = reinterpret_cast<const ExternalStringResourceBase*>(resource); |
+ expectedType = kExternalAsciiStringType; |
+ } else if (i::StringShape(*str).IsExternalTwoByte()) { |
+ const void* resource = |
+ i::Handle<i::ExternalTwoByteString>::cast(str)->resource(); |
+ expected = reinterpret_cast<const ExternalStringResourceBase*>(resource); |
+ expectedType = kExternalTwoByteStringType; |
+ } else { |
+ expected = NULL; |
+ expectedType = 0; |
+ } |
+ CHECK_EQ(expected, value); |
+ CHECK_EQ(expectedType, type); |
+} |
const v8::String::ExternalAsciiStringResource* |
v8::String::GetExternalAsciiStringResource() const { |