Allow externalizing cons and sliced string.

Fulfill overdue TODO.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/460643002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
yangguo@chromium.org 2014-08-11 19:38:01 +00:00
parent cd30676052
commit f4d6fcda3a

View File

@ -5545,11 +5545,6 @@ 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;