| Index: Source/bindings/core/v8/V8StringResource.h
|
| diff --git a/Source/bindings/core/v8/V8StringResource.h b/Source/bindings/core/v8/V8StringResource.h
|
| index a84c216c4561bd6383a2756b7de65d06e1ffcd63..834af92061cb4cde4c37dd1f7ab77063857a2f84 100644
|
| --- a/Source/bindings/core/v8/V8StringResource.h
|
| +++ b/Source/bindings/core/v8/V8StringResource.h
|
| @@ -26,6 +26,7 @@
|
| #ifndef V8StringResource_h
|
| #define V8StringResource_h
|
|
|
| +#include "bindings/core/v8/ExceptionState.h"
|
| #include "wtf/Threading.h"
|
| #include "wtf/text/AtomicString.h"
|
| #include "wtf/text/WTFString.h"
|
| @@ -198,6 +199,37 @@ public:
|
|
|
| bool prepare()
|
| {
|
| + if (prepareFast())
|
| + return true;
|
| +
|
| + m_v8Object = m_v8Object->ToString();
|
| + // Handle the case where an exception is thrown as part of invoking toString on the object.
|
| + if (m_v8Object.IsEmpty())
|
| + return false;
|
| + return true;
|
| + }
|
| +
|
| + bool prepare(ExceptionState& exceptionState)
|
| + {
|
| + if (prepareFast())
|
| + return true;
|
| +
|
| + v8::TryCatch block;
|
| + m_v8Object = m_v8Object->ToString();
|
| + // Handle the case where an exception is thrown as part of invoking toString on the object.
|
| + if (block.HasCaught()) {
|
| + exceptionState.rethrowV8Exception(block.Exception());
|
| + return false;
|
| + }
|
| + return true;
|
| + }
|
| +
|
| + operator String() const { return toString<String>(); }
|
| + operator AtomicString() const { return toString<AtomicString>(); }
|
| +
|
| +private:
|
| + bool prepareFast()
|
| + {
|
| if (m_v8Object.IsEmpty())
|
| return true;
|
|
|
| @@ -215,16 +247,9 @@ public:
|
| }
|
|
|
| m_mode = DoNotExternalize;
|
| - m_v8Object = m_v8Object->ToString();
|
| - // Handle the case where an exception is thrown as part of invoking toString on the object.
|
| - if (m_v8Object.IsEmpty())
|
| - return false;
|
| - return true;
|
| + return false;
|
| }
|
| - operator String() const { return toString<String>(); }
|
| - operator AtomicString() const { return toString<AtomicString>(); }
|
|
|
| -private:
|
| bool isValid() const;
|
| String fallbackString() const;
|
|
|
|
|