summaryrefslogtreecommitdiffstats
path: root/WebCore/bindings/v8/V8Binding.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/bindings/v8/V8Binding.cpp')
-rw-r--r--WebCore/bindings/v8/V8Binding.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/WebCore/bindings/v8/V8Binding.cpp b/WebCore/bindings/v8/V8Binding.cpp
index c0367d5..c5d580a 100644
--- a/WebCore/bindings/v8/V8Binding.cpp
+++ b/WebCore/bindings/v8/V8Binding.cpp
@@ -154,12 +154,14 @@ AtomicString v8StringToAtomicWebCoreString(v8::Handle<v8::String> v8String)
{
WebCoreStringResource* stringResource = WebCoreStringResource::toStringResource(v8String);
if (!stringResource) {
- if (!v8String->CanMakeExternal())
- return v8StringToWebCoreString(v8String, DoNotExternalize, AtomicStringType);
// If this string hasn't been externalized, we force it now.
- v8StringToWebCoreString(v8String, Externalize, AtomicStringType);
+ String plain = v8StringToWebCoreString(v8String, Externalize, AtomicStringType);
+ // If the string is empty there's no room to cache an atomic
+ // string so we bail out.
+ if (plain.isEmpty())
+ return plain;
stringResource = WebCoreStringResource::toStringResource(v8String);
- ASSERT(stringResource);
+ ASSERT(stringResource != NULL);
}
return stringResource->atomicString();
}