diff options
Diffstat (limited to 'WebCore/bindings/v8/V8Binding.h')
-rw-r--r-- | WebCore/bindings/v8/V8Binding.h | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/WebCore/bindings/v8/V8Binding.h b/WebCore/bindings/v8/V8Binding.h index a15ece1..4656aa2 100644 --- a/WebCore/bindings/v8/V8Binding.h +++ b/WebCore/bindings/v8/V8Binding.h @@ -1,10 +1,10 @@ /* * Copyright (C) 2009 Google Inc. All rights reserved. -* +* * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: -* +* * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above @@ -14,7 +14,7 @@ * * Neither the name of Google Inc. nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. -* +* * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR @@ -40,7 +40,7 @@ #include <v8.h> namespace WebCore { - + class EventListener; class EventTarget; class V8BindingDOMWindow; @@ -50,6 +50,8 @@ namespace WebCore { public: typedef v8::Handle<v8::Value> Value; typedef V8BindingDOMWindow DOMWindow; + + static Value emptyScriptValue() { return v8::Local<v8::Value>(); } }; typedef BindingSecurity<V8Binding> V8BindingSecurity; @@ -61,7 +63,7 @@ namespace WebCore { template <typename StringType> StringType v8StringToWebCoreString(v8::Handle<v8::String> v8String, ExternalMode external); - // Convert v8 types to a WebCore::String. If the V8 string is not already + // Convert v8 types to a WTF::String. If the V8 string is not already // an external string then it is transformed into an external string at this // point to avoid repeated conversions. inline String v8StringToWebCoreString(v8::Handle<v8::String> v8String) @@ -71,7 +73,7 @@ namespace WebCore { String v8NonStringValueToWebCoreString(v8::Handle<v8::Value>); String v8ValueToWebCoreString(v8::Handle<v8::Value> value); - // Convert v8 types to a WebCore::AtomicString. + // Convert v8 types to a WTF::AtomicString. inline AtomicString v8StringToAtomicWebCoreString(v8::Handle<v8::String> v8String) { return v8StringToWebCoreString<AtomicString>(v8String, Externalize); @@ -110,8 +112,8 @@ namespace WebCore { return v8ExternalString(string); } - // Enables caching v8 wrappers created for WebCore::StringImpl. Currently this cache requires - // all the calls (both to convert WebCore::String to v8::String and to GC the handle) + // Enables caching v8 wrappers created for WTF::StringImpl. Currently this cache requires + // all the calls (both to convert WTF::String to v8::String and to GC the handle) // to be performed on the main thread. void enableStringImplCache(); @@ -152,7 +154,7 @@ namespace WebCore { { return v8ValueToWebCoreString(object); } - + String toWebCoreString(const v8::Arguments&, int index); // The string returned by this function is still owned by the argument @@ -171,7 +173,7 @@ namespace WebCore { AtomicString toAtomicWebCoreStringWithNullCheck(v8::Handle<v8::Value> value); String toWebCoreStringWithNullOrUndefinedCheck(v8::Handle<v8::Value> value); - + v8::Handle<v8::String> v8UndetectableString(const String& str); v8::Handle<v8::Value> v8StringOrNull(const String& str); @@ -183,31 +185,31 @@ namespace WebCore { double toWebCoreDate(v8::Handle<v8::Value> object); v8::Handle<v8::Value> v8DateOrNull(double value); - + v8::Persistent<v8::FunctionTemplate> createRawTemplate(); struct BatchedAttribute; struct BatchedCallback; - + v8::Local<v8::Signature> configureTemplate(v8::Persistent<v8::FunctionTemplate>, const char* interfaceName, v8::Persistent<v8::FunctionTemplate> parentClass, int fieldCount, - const BatchedAttribute*, + const BatchedAttribute*, size_t attributeCount, const BatchedCallback*, size_t callbackCount); - + v8::Handle<v8::Value> getElementStringAttr(const v8::AccessorInfo&, const QualifiedName&); void setElementStringAttr(const v8::AccessorInfo&, const QualifiedName&, v8::Local<v8::Value>); - + v8::Persistent<v8::String> getToStringName(); v8::Persistent<v8::FunctionTemplate> getToStringTemplate(); - + // V8Parameter is an adapter class that converts V8 values to Strings // or AtomicStrings as appropriate, using multiple typecast operators. enum V8ParameterMode { @@ -218,13 +220,13 @@ namespace WebCore { template <V8ParameterMode MODE = DefaultMode> class V8Parameter { public: - V8Parameter (v8::Local<v8::Value> object) :m_v8Object(object) { } + V8Parameter(v8::Local<v8::Value> object = v8::Local<v8::Value>()) : m_v8Object(object) { } operator String(); operator AtomicString(); private: v8::Local<v8::Value> m_v8Object; }; - + template<> inline V8Parameter<DefaultMode>::operator String() { return toWebCoreString(m_v8Object); } template<> inline V8Parameter<WithNullCheck>::operator String() { return toWebCoreStringWithNullCheck(m_v8Object); } template<> inline V8Parameter<WithUndefinedOrNullCheck>::operator String() { return toWebCoreStringWithNullOrUndefinedCheck(m_v8Object); } |