diff options
Diffstat (limited to 'V8Binding/binding/v8_binding.h')
-rw-r--r-- | V8Binding/binding/v8_binding.h | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/V8Binding/binding/v8_binding.h b/V8Binding/binding/v8_binding.h deleted file mode 100644 index 2882026..0000000 --- a/V8Binding/binding/v8_binding.h +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef V8_BINDING_H__ -#define V8_BINDING_H__ - -#include "config.h" - -#include "MathExtras.h" -#include "PlatformString.h" - -#include <v8.h> - -namespace WebCore { - -// The string returned by this function is still owned by the argument -// and will be deallocated when the argument is deallocated. -inline const uint16_t* FromWebCoreString(const String& str) { - return reinterpret_cast<const uint16_t*>(str.characters()); -} - -// Convert v8 types to a WebCore::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. -String v8StringToWebCoreString( - v8::Handle<v8::String> obj, bool externalize); -String v8ValueToWebCoreString(v8::Handle<v8::Value> obj); - -// TODO(mbelshe): drop this in favor of the type specific -// v8ValueToWebCoreString when we rework the code generation. -inline String ToWebCoreString(v8::Handle<v8::Value> obj) { - return v8ValueToWebCoreString(obj); -} - -inline String ToWebCoreString(v8::Handle<v8::String> string) { - return v8StringToWebCoreString(string, true); -} - -// Convert v8 types to a WebCore::AtomicString. -AtomicString v8StringToAtomicWebCoreString(v8::Handle<v8::String> obj); -AtomicString v8ValueToAtomicWebCoreString(v8::Handle<v8::Value> obj); - -inline String valueToStringWithNullCheck(v8::Handle<v8::Value> value) { - if (value->IsNull()) return String(); - return ToWebCoreString(value); -} - -inline String valueToStringWithNullOrUndefinedCheck( - v8::Handle<v8::Value> value) { - if (value->IsNull() || value->IsUndefined()) return String(); - return ToWebCoreString(value); -} - -// Convert a value to a 32-bit integer. The conversion fails if the -// value cannot be converted to an integer or converts to nan or to an -// infinity. -// FIXME: Rename to toInt32() once V8 bindings migration is complete. -inline int ToInt32(v8::Handle<v8::Value> value, bool& ok) { - ok = true; - - // Fast case. The value is already a 32-bit integer. - if (value->IsInt32()) { - return value->Int32Value(); - } - - // Can the value be converted to a number? - v8::Local<v8::Number> number_object = value->ToNumber(); - if (number_object.IsEmpty()) { - ok = false; - return 0; - } - - // Does the value convert to nan or to an infinity? - double number_value = number_object->Value(); - if (isnan(number_value) || isinf(number_value)) { - ok = false; - return 0; - } - - // Can the value be converted to a 32-bit integer? - v8::Local<v8::Int32> int_value = value->ToInt32(); - if (int_value.IsEmpty()) { - ok = false; - return 0; - } - - // Return the result of the int32 conversion. - return int_value->Value(); -} - -// Convert a value to a 32-bit integer assuming the conversion cannot fail. -// FIXME: Rename to toInt32() once V8 bindings migration is complete. -inline int ToInt32(v8::Handle<v8::Value> value) { - bool ok; - return ToInt32(value, ok); -} - -inline String ToString(const String& string) { - return string; -} - -// Convert a string to a V8 string. -v8::Handle<v8::String> v8String(const String& str); - -inline v8::Handle<v8::String> v8UndetectableString(const String& str) { - return v8::String::NewUndetectable(FromWebCoreString(str), str.length()); -} - -// Return a V8 external string that shares the underlying buffer with the given -// WebCore string. The reference counting mechanism is used to keep the -// underlying buffer alive while the string is still live in the V8 engine. -v8::Local<v8::String> v8ExternalString(const String& str); - -inline v8::Handle<v8::Value> v8StringOrNull(const String& str) { - return str.isNull() - ? v8::Handle<v8::Value>(v8::Null()) - : v8::Handle<v8::Value>(v8String(str)); -} - -inline v8::Handle<v8::Value> v8StringOrUndefined(const String& str) { - return str.isNull() - ? v8::Handle<v8::Value>(v8::Undefined()) - : v8::Handle<v8::Value>(v8String(str)); -} - -inline v8::Handle<v8::Value> v8StringOrFalse(const String& str) { - return str.isNull() - ? v8::Handle<v8::Value>(v8::False()) - : v8::Handle<v8::Value>(v8String(str)); -} - -} // namespace WebCore - -#endif // V8_BINDING_H__ |