Index: test/cctest/test-strings.cc |
diff --git a/test/cctest/test-strings.cc b/test/cctest/test-strings.cc |
index ef13c4dadf682f6e178dce71c9e70009d703a7e9..da21d3309cf0498d7154ac37333375b6814499bc 100644 |
--- a/test/cctest/test-strings.cc |
+++ b/test/cctest/test-strings.cc |
@@ -1373,15 +1373,21 @@ TEST(Latin1IgnoreCase) { |
class DummyResource: public v8::String::ExternalStringResource { |
public: |
- virtual const uint16_t* data() const { return NULL; } |
+ virtual const uint16_t* data() const { return string_; } |
virtual size_t length() const { return 1 << 30; } |
+ |
+ private: |
+ uint16_t string_[10]; |
yurys
2014/09/26 09:30:34
Length 1 should be enough
|
}; |
class DummyOneByteResource: public v8::String::ExternalOneByteStringResource { |
public: |
- virtual const char* data() const { return NULL; } |
+ virtual const char* data() const { return string_; } |
virtual size_t length() const { return 1 << 30; } |
+ |
+ private: |
+ char string_[10]; |
yurys
2014/09/26 09:30:34
ditto
|
}; |
@@ -1402,6 +1408,24 @@ TEST(InvalidExternalString) { |
CHECK(isolate->has_pending_exception()); |
isolate->clear_pending_exception(); |
} |
+ |
+ { |
+ HandleScope scope(isolate); |
+ DummyOneByteResource r; |
+ v8::Local<v8::String> str = v8::String::NewExternal(CcTest::isolate(), &r); |
+ CHECK(str.IsEmpty()); |
+ CHECK(isolate->has_pending_exception()); |
+ isolate->clear_pending_exception(); |
+ } |
+ |
+ { |
+ HandleScope scope(isolate); |
+ DummyResource r; |
+ v8::Local<v8::String> str = v8::String::NewExternal(CcTest::isolate(), &r); |
+ CHECK(str.IsEmpty()); |
+ CHECK(isolate->has_pending_exception()); |
+ isolate->clear_pending_exception(); |
+ } |
} |