Index: src/api.cc |
diff --git a/src/api.cc b/src/api.cc |
index 6f6fb42a32484b588e986429f2e3b47b125be8b4..aaf6865bc8e6044b551f4e3bf81751494b3159e7 100644 |
--- a/src/api.cc |
+++ b/src/api.cc |
@@ -5551,6 +5551,11 @@ bool v8::String::CanMakeExternal() { |
i::Handle<i::String> obj = Utils::OpenHandle(this); |
i::Isolate* isolate = obj->GetIsolate(); |
+ // TODO(yangguo): Externalizing sliced/cons strings allocates. |
+ // This rule can be removed when all code that can |
+ // trigger an access check is handlified and therefore GC safe. |
+ if (isolate->heap()->old_pointer_space()->Contains(*obj)) return false; |
+ |
if (isolate->string_tracker()->IsFreshUnusedString(obj)) return false; |
int size = obj->Size(); // Byte size of the original string. |
if (size < i::ExternalString::kShortSize) return false; |