| Index: webkit/port/bindings/v8/v8_binding.h
|
| ===================================================================
|
| --- webkit/port/bindings/v8/v8_binding.h (revision 20069)
|
| +++ webkit/port/bindings/v8/v8_binding.h (working copy)
|
| @@ -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__
|
|
|