Changeset 126348 in webkit


Ignore:
Timestamp:
Aug 22, 2012 2:14:11 PM (12 years ago)
Author:
haraken@chromium.org
Message:

[V8] Replace v8::String::NewSymbol() in CodeGeneratorV8.pm with v8String()
https://bugs.webkit.org/show_bug.cgi?id=94588

Reviewed by Eric Seidel.

v8String() is faster than String::NewSymbol().
This patch implements v8String(char*, Isolate*) and
replaces String::NewSymbol(char*) in CodeGeneratorV8.pm
with v8String(char*, Isolate*).

Performance result:

272 nano sec
static v8::Handle<v8::Value> attr3AttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
{

v8::Handle<v8::Value> v1 = v8String(String("foo"));
v8::Handle<v8::Value> v2 = v8String(String("bar"));
if (!v1.IsEmpty() && !v2.IsEmpty())

return v8Undefined();

return v8::Null(); Never reach.

}

377 nano sec
static v8::Handle<v8::Value> attr4AttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
{

v8::Handle<v8::Value> v1 = v8::String::NewSymbol("foo");
v8::Handle<v8::Value> v2 = v8::String::NewSymbol("bar");
if (!v1.IsEmpty() && !v2.IsEmpty())

return v8Undefined();

return v8::Null(); Never reach.

}

No tests. No change in behavior.

  • bindings/scripts/CodeGeneratorV8.pm:

(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateNamedConstructorCallback):
(GenerateNonStandardFunction):
(GenerateImplementation):

  • bindings/scripts/test/V8/V8Float64Array.cpp:

(WebCore::ConfigureV8Float64ArrayTemplate):

  • bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:

(WebCore::ConfigureV8TestActiveDOMObjectTemplate):

  • bindings/scripts/test/V8/V8TestEventTarget.cpp:

(WebCore::ConfigureV8TestEventTargetTemplate):

  • bindings/scripts/test/V8/V8TestInterface.cpp:

(WebCore::ConfigureV8TestInterfaceTemplate):

  • bindings/scripts/test/V8/V8TestNamedConstructor.cpp:

(WebCore::V8TestNamedConstructorConstructor::GetTemplate):

  • bindings/scripts/test/V8/V8TestObj.cpp:

(WebCore::ConfigureV8TestObjTemplate):
(WebCore::V8TestObj::installPerContextProperties):

  • bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:

(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetter):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):

  • bindings/v8/V8Binding.h:

(WebCore):
(WebCore::v8String):

  • html/HTMLDivElement.idl:
Location:
trunk/Source/WebCore
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r126346 r126348  
     12012-08-22  Kentaro Hara  <haraken@chromium.org>
     2
     3        [V8] Replace v8::String::NewSymbol() in CodeGeneratorV8.pm with v8String()
     4        https://bugs.webkit.org/show_bug.cgi?id=94588
     5
     6        Reviewed by Eric Seidel.
     7
     8        v8String() is faster than String::NewSymbol().
     9        This patch implements v8String(char*, Isolate*) and
     10        replaces String::NewSymbol(char*) in CodeGeneratorV8.pm
     11        with v8String(char*, Isolate*).
     12
     13        Performance result:
     14
     15        // 272 nano sec
     16        static v8::Handle<v8::Value> attr3AttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
     17        {
     18            v8::Handle<v8::Value> v1 = v8String(String("foo"));
     19            v8::Handle<v8::Value> v2 = v8String(String("bar"));
     20            if (!v1.IsEmpty() && !v2.IsEmpty())
     21                return v8Undefined();
     22            return v8::Null(); // Never reach.
     23        }
     24
     25        // 377 nano sec
     26        static v8::Handle<v8::Value> attr4AttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
     27        {
     28            v8::Handle<v8::Value> v1 = v8::String::NewSymbol("foo");
     29            v8::Handle<v8::Value> v2 = v8::String::NewSymbol("bar");
     30            if (!v1.IsEmpty() && !v2.IsEmpty())
     31                return v8Undefined();
     32            return v8::Null(); // Never reach.
     33        }
     34
     35        No tests. No change in behavior.
     36
     37        * bindings/scripts/CodeGeneratorV8.pm:
     38        (GenerateNormalAttrGetter):
     39        (GenerateNormalAttrSetter):
     40        (GenerateNamedConstructorCallback):
     41        (GenerateNonStandardFunction):
     42        (GenerateImplementation):
     43        * bindings/scripts/test/V8/V8Float64Array.cpp:
     44        (WebCore::ConfigureV8Float64ArrayTemplate):
     45        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
     46        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
     47        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
     48        (WebCore::ConfigureV8TestEventTargetTemplate):
     49        * bindings/scripts/test/V8/V8TestInterface.cpp:
     50        (WebCore::ConfigureV8TestInterfaceTemplate):
     51        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
     52        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
     53        * bindings/scripts/test/V8/V8TestObj.cpp:
     54        (WebCore::ConfigureV8TestObjTemplate):
     55        (WebCore::V8TestObj::installPerContextProperties):
     56        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
     57        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
     58        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetter):
     59        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
     60        * bindings/v8/V8Binding.h:
     61        (WebCore):
     62        (WebCore::v8String):
     63        * html/HTMLDivElement.idl:
     64
    1652012-08-22  Pratik Solanki  <psolanki@apple.com>
    266
  • trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm

    r126237 r126348  
    905905        if ($attribute->signature->type eq "SerializedScriptValue" && $attrExt->{"CachedAttribute"}) {
    906906            push(@implContentDecls, <<END);
    907     v8::Handle<v8::String> propertyName = v8::String::NewSymbol("${attrName}");
     907    v8::Handle<v8::String> propertyName = v8String("${attrName}", info.GetIsolate());
    908908    v8::Handle<v8::Value> value = info.Holder()->GetHiddenValue(propertyName);
    909909    if (!value.IsEmpty())
     
    12931293    if ($attribute->signature->type eq "SerializedScriptValue" && $attribute->signature->extendedAttributes->{"CachedAttribute"}) {
    12941294        push(@implContentDecls, <<END);
    1295     info.Holder()->DeleteHiddenValue(v8::String::NewSymbol("${attrName}")); // Invalidate the cached value.
     1295    info.Holder()->DeleteHiddenValue(v8String("${attrName}", info.GetIsolate())); // Invalidate the cached value.
    12961296END
    12971297    }
     
    20992099    v8::Local<v8::ObjectTemplate> instance = result->InstanceTemplate();
    21002100    instance->SetInternalFieldCount(V8${implClassName}::internalFieldCount);
    2101     result->SetClassName(v8::String::NewSymbol("${implClassName}"));
     2101    result->SetClassName(v8String("${implClassName}"));
    21022102    result->Inherit(V8${implClassName}::GetTemplate());
    21032103
     
    22992299
    23002300    // $commentInfo
    2301     ${conditional}$template->SetAccessor(v8::String::NewSymbol("$name"), ${interfaceName}V8Internal::${name}AttrGetter, ${interfaceName}V8Internal::${interfaceName}DomainSafeFunctionSetter, v8Undefined(), v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute>($property_attributes));
     2301    ${conditional}$template->SetAccessor(v8String("$name"), ${interfaceName}V8Internal::${name}AttrGetter, ${interfaceName}V8Internal::${interfaceName}DomainSafeFunctionSetter, v8Undefined(), v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute>($property_attributes));
    23022302END
    23032303        return;
     
    23302330    push(@implContent, "#if ${conditionalString}\n") if $conditionalString;
    23312331
    2332     push(@implContent, "    ${conditional}$template->Set(v8::String::NewSymbol(\"$name\"), v8::FunctionTemplate::New($callback, v8Undefined(), ${signature})$property_attributes);\n");
     2332    push(@implContent, "    ${conditional}$template->Set(v8String(\"$name\"), v8::FunctionTemplate::New($callback, v8Undefined(), ${signature})$property_attributes);\n");
    23332333
    23342334    push(@implContent, "#endif // ${conditionalString}\n") if $conditionalString;
     
    29522952    // For security reasons, these functions are on the instance instead
    29532953    // of on the prototype object to ensure that they cannot be overwritten.
    2954     instance->SetAccessor(v8::String::NewSymbol("reload"), V8Location::reloadAccessorGetter, 0, v8Undefined(), v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute>(v8::DontDelete | v8::ReadOnly));
    2955     instance->SetAccessor(v8::String::NewSymbol("replace"), V8Location::replaceAccessorGetter, 0, v8Undefined(), v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute>(v8::DontDelete | v8::ReadOnly));
    2956     instance->SetAccessor(v8::String::NewSymbol("assign"), V8Location::assignAccessorGetter, 0, v8Undefined(), v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute>(v8::DontDelete | v8::ReadOnly));
     2954    instance->SetAccessor(v8String("reload"), V8Location::reloadAccessorGetter, 0, v8Undefined(), v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute>(v8::DontDelete | v8::ReadOnly));
     2955    instance->SetAccessor(v8String("replace"), V8Location::replaceAccessorGetter, 0, v8Undefined(), v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute>(v8::DontDelete | v8::ReadOnly));
     2956    instance->SetAccessor(v8String("assign"), V8Location::assignAccessorGetter, 0, v8Undefined(), v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute>(v8::DontDelete | v8::ReadOnly));
    29572957END
    29582958    }
     
    30413041                my $callback = GetFunctionTemplateCallbackName($runtimeFunc, $interfaceName);
    30423042                push(@implContent, <<END);
    3043         proto->Set(v8::String::NewSymbol("${name}"), v8::FunctionTemplate::New(${callback}, v8Undefined(), defaultSignature)->GetFunction());
     3043        proto->Set(v8String("${name}"), v8::FunctionTemplate::New(${callback}, v8Undefined(), defaultSignature)->GetFunction());
    30443044END
    30453045                push(@implContent, "    }\n");
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8Float64Array.cpp

    r126237 r126348  
    108108    v8::Handle<v8::FunctionTemplate> fooArgv[fooArgc] = { V8Float32Array::GetRawTemplate() };
    109109    v8::Handle<v8::Signature> fooSignature = v8::Signature::New(desc, fooArgc, fooArgv);
    110     proto->Set(v8::String::NewSymbol("foo"), v8::FunctionTemplate::New(Float64ArrayV8Internal::fooCallback, v8Undefined(), fooSignature));
     110    proto->Set(v8String("foo"), v8::FunctionTemplate::New(Float64ArrayV8Internal::fooCallback, v8Undefined(), fooSignature));
    111111
    112112    // Custom toString template
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.cpp

    r126237 r126348  
    135135    v8::Handle<v8::FunctionTemplate> excitingFunctionArgv[excitingFunctionArgc] = { V8Node::GetRawTemplate() };
    136136    v8::Handle<v8::Signature> excitingFunctionSignature = v8::Signature::New(desc, excitingFunctionArgc, excitingFunctionArgv);
    137     proto->Set(v8::String::NewSymbol("excitingFunction"), v8::FunctionTemplate::New(TestActiveDOMObjectV8Internal::excitingFunctionCallback, v8Undefined(), excitingFunctionSignature));
     137    proto->Set(v8String("excitingFunction"), v8::FunctionTemplate::New(TestActiveDOMObjectV8Internal::excitingFunctionCallback, v8Undefined(), excitingFunctionSignature));
    138138
    139139    // Function 'postMessage' (ExtAttr: 'DoNotCheckSecurity')
    140     proto->SetAccessor(v8::String::NewSymbol("postMessage"), TestActiveDOMObjectV8Internal::postMessageAttrGetter, TestActiveDOMObjectV8Internal::TestActiveDOMObjectDomainSafeFunctionSetter, v8Undefined(), v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute>(v8::DontDelete));
     140    proto->SetAccessor(v8String("postMessage"), TestActiveDOMObjectV8Internal::postMessageAttrGetter, TestActiveDOMObjectV8Internal::TestActiveDOMObjectDomainSafeFunctionSetter, v8Undefined(), v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute>(v8::DontDelete));
    141141
    142142    // Custom toString template
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.cpp

    r126237 r126348  
    132132    v8::Handle<v8::FunctionTemplate> dispatchEventArgv[dispatchEventArgc] = { V8Event::GetRawTemplate() };
    133133    v8::Handle<v8::Signature> dispatchEventSignature = v8::Signature::New(desc, dispatchEventArgc, dispatchEventArgv);
    134     proto->Set(v8::String::NewSymbol("dispatchEvent"), v8::FunctionTemplate::New(TestEventTargetV8Internal::dispatchEventCallback, v8Undefined(), dispatchEventSignature));
     134    proto->Set(v8String("dispatchEvent"), v8::FunctionTemplate::New(TestEventTargetV8Internal::dispatchEventCallback, v8Undefined(), dispatchEventSignature));
    135135
    136136    // Custom toString template
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestInterface.cpp

    r126237 r126348  
    296296    v8::Handle<v8::Signature> supplementalMethod2Signature = v8::Signature::New(desc, supplementalMethod2Argc, supplementalMethod2Argv);
    297297#if ENABLE(Condition11) || ENABLE(Condition12)
    298     proto->Set(v8::String::NewSymbol("supplementalMethod2"), v8::FunctionTemplate::New(TestInterfaceV8Internal::supplementalMethod2Callback, v8Undefined(), supplementalMethod2Signature));
    299 #endif // ENABLE(Condition11) || ENABLE(Condition12)
    300 #if ENABLE(Condition11) || ENABLE(Condition12)
    301     desc->Set(v8::String::NewSymbol("supplementalMethod4"), v8::FunctionTemplate::New(TestInterfaceV8Internal::supplementalMethod4Callback, v8Undefined(), v8::Local<v8::Signature>()));
     298    proto->Set(v8String("supplementalMethod2"), v8::FunctionTemplate::New(TestInterfaceV8Internal::supplementalMethod2Callback, v8Undefined(), supplementalMethod2Signature));
     299#endif // ENABLE(Condition11) || ENABLE(Condition12)
     300#if ENABLE(Condition11) || ENABLE(Condition12)
     301    desc->Set(v8String("supplementalMethod4"), v8::FunctionTemplate::New(TestInterfaceV8Internal::supplementalMethod4Callback, v8Undefined(), v8::Local<v8::Signature>()));
    302302#endif // ENABLE(Condition11) || ENABLE(Condition12)
    303303    V8DOMConfiguration::batchConfigureConstants(desc, proto, TestInterfaceConsts, WTF_ARRAY_LENGTH(TestInterfaceConsts));
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestNamedConstructor.cpp

    r126237 r126348  
    9696    v8::Local<v8::ObjectTemplate> instance = result->InstanceTemplate();
    9797    instance->SetInternalFieldCount(V8TestNamedConstructor::internalFieldCount);
    98     result->SetClassName(v8::String::NewSymbol("TestNamedConstructor"));
     98    result->SetClassName(v8String("TestNamedConstructor"));
    9999    result->Inherit(V8TestNamedConstructor::GetTemplate());
    100100
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp

    r126237 r126348  
    21932193    v8::Handle<v8::FunctionTemplate> voidMethodWithArgsArgv[voidMethodWithArgsArgc] = { v8::Handle<v8::FunctionTemplate>(), v8::Handle<v8::FunctionTemplate>(), V8TestObj::GetRawTemplate() };
    21942194    v8::Handle<v8::Signature> voidMethodWithArgsSignature = v8::Signature::New(desc, voidMethodWithArgsArgc, voidMethodWithArgsArgv);
    2195     proto->Set(v8::String::NewSymbol("voidMethodWithArgs"), v8::FunctionTemplate::New(TestObjV8Internal::voidMethodWithArgsCallback, v8Undefined(), voidMethodWithArgsSignature));
     2195    proto->Set(v8String("voidMethodWithArgs"), v8::FunctionTemplate::New(TestObjV8Internal::voidMethodWithArgsCallback, v8Undefined(), voidMethodWithArgsSignature));
    21962196
    21972197    // Custom Signature 'MethodWithArgs'
     
    21992199    v8::Handle<v8::FunctionTemplate> MethodWithArgsArgv[MethodWithArgsArgc] = { v8::Handle<v8::FunctionTemplate>(), v8::Handle<v8::FunctionTemplate>(), V8TestObj::GetRawTemplate() };
    22002200    v8::Handle<v8::Signature> MethodWithArgsSignature = v8::Signature::New(desc, MethodWithArgsArgc, MethodWithArgsArgv);
    2201     proto->Set(v8::String::NewSymbol("MethodWithArgs"), v8::FunctionTemplate::New(TestObjV8Internal::MethodWithArgsCallback, v8Undefined(), MethodWithArgsSignature));
     2201    proto->Set(v8String("MethodWithArgs"), v8::FunctionTemplate::New(TestObjV8Internal::MethodWithArgsCallback, v8Undefined(), MethodWithArgsSignature));
    22022202
    22032203    // Custom Signature 'objMethodWithArgs'
     
    22052205    v8::Handle<v8::FunctionTemplate> objMethodWithArgsArgv[objMethodWithArgsArgc] = { v8::Handle<v8::FunctionTemplate>(), v8::Handle<v8::FunctionTemplate>(), V8TestObj::GetRawTemplate() };
    22062206    v8::Handle<v8::Signature> objMethodWithArgsSignature = v8::Signature::New(desc, objMethodWithArgsArgc, objMethodWithArgsArgv);
    2207     proto->Set(v8::String::NewSymbol("objMethodWithArgs"), v8::FunctionTemplate::New(TestObjV8Internal::objMethodWithArgsCallback, v8Undefined(), objMethodWithArgsSignature));
     2207    proto->Set(v8String("objMethodWithArgs"), v8::FunctionTemplate::New(TestObjV8Internal::objMethodWithArgsCallback, v8Undefined(), objMethodWithArgsSignature));
    22082208
    22092209    // Custom Signature 'methodWithSequenceArg'
     
    22112211    v8::Handle<v8::FunctionTemplate> methodWithSequenceArgArgv[methodWithSequenceArgArgc] = { V8sequence<ScriptProfile>::GetRawTemplate() };
    22122212    v8::Handle<v8::Signature> methodWithSequenceArgSignature = v8::Signature::New(desc, methodWithSequenceArgArgc, methodWithSequenceArgArgv);
    2213     proto->Set(v8::String::NewSymbol("methodWithSequenceArg"), v8::FunctionTemplate::New(TestObjV8Internal::methodWithSequenceArgCallback, v8Undefined(), methodWithSequenceArgSignature));
     2213    proto->Set(v8String("methodWithSequenceArg"), v8::FunctionTemplate::New(TestObjV8Internal::methodWithSequenceArgCallback, v8Undefined(), methodWithSequenceArgSignature));
    22142214
    22152215    // Custom Signature 'methodThatRequiresAllArgsAndThrows'
     
    22172217    v8::Handle<v8::FunctionTemplate> methodThatRequiresAllArgsAndThrowsArgv[methodThatRequiresAllArgsAndThrowsArgc] = { v8::Handle<v8::FunctionTemplate>(), V8TestObj::GetRawTemplate() };
    22182218    v8::Handle<v8::Signature> methodThatRequiresAllArgsAndThrowsSignature = v8::Signature::New(desc, methodThatRequiresAllArgsAndThrowsArgc, methodThatRequiresAllArgsAndThrowsArgv);
    2219     proto->Set(v8::String::NewSymbol("methodThatRequiresAllArgsAndThrows"), v8::FunctionTemplate::New(TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback, v8Undefined(), methodThatRequiresAllArgsAndThrowsSignature));
    2220     desc->Set(v8::String::NewSymbol("classMethod"), v8::FunctionTemplate::New(TestObjV8Internal::classMethodCallback, v8Undefined(), v8::Local<v8::Signature>()));
    2221     desc->Set(v8::String::NewSymbol("classMethodWithOptional"), v8::FunctionTemplate::New(TestObjV8Internal::classMethodWithOptionalCallback, v8Undefined(), v8::Local<v8::Signature>()));
    2222     desc->Set(v8::String::NewSymbol("classMethod2"), v8::FunctionTemplate::New(V8TestObj::classMethod2Callback, v8Undefined(), v8::Local<v8::Signature>()));
     2219    proto->Set(v8String("methodThatRequiresAllArgsAndThrows"), v8::FunctionTemplate::New(TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback, v8Undefined(), methodThatRequiresAllArgsAndThrowsSignature));
     2220    desc->Set(v8String("classMethod"), v8::FunctionTemplate::New(TestObjV8Internal::classMethodCallback, v8Undefined(), v8::Local<v8::Signature>()));
     2221    desc->Set(v8String("classMethodWithOptional"), v8::FunctionTemplate::New(TestObjV8Internal::classMethodWithOptionalCallback, v8Undefined(), v8::Local<v8::Signature>()));
     2222    desc->Set(v8String("classMethod2"), v8::FunctionTemplate::New(V8TestObj::classMethod2Callback, v8Undefined(), v8::Local<v8::Signature>()));
    22232223#if ENABLE(Condition1)
    2224     desc->Set(v8::String::NewSymbol("overloadedMethod1"), v8::FunctionTemplate::New(TestObjV8Internal::overloadedMethod1Callback, v8Undefined(), v8::Local<v8::Signature>()));
     2224    desc->Set(v8String("overloadedMethod1"), v8::FunctionTemplate::New(TestObjV8Internal::overloadedMethod1Callback, v8Undefined(), v8::Local<v8::Signature>()));
    22252225#endif // ENABLE(Condition1)
    22262226    if (RuntimeEnabledFeatures::enabledAtRuntimeMethod1Enabled())
    2227         proto->Set(v8::String::NewSymbol("enabledAtRuntimeMethod1"), v8::FunctionTemplate::New(TestObjV8Internal::enabledAtRuntimeMethod1Callback, v8Undefined(), defaultSignature));
     2227        proto->Set(v8String("enabledAtRuntimeMethod1"), v8::FunctionTemplate::New(TestObjV8Internal::enabledAtRuntimeMethod1Callback, v8Undefined(), defaultSignature));
    22282228    if (RuntimeEnabledFeatures::featureNameEnabled())
    2229         proto->Set(v8::String::NewSymbol("enabledAtRuntimeMethod2"), v8::FunctionTemplate::New(TestObjV8Internal::enabledAtRuntimeMethod2Callback, v8Undefined(), defaultSignature));
     2229        proto->Set(v8String("enabledAtRuntimeMethod2"), v8::FunctionTemplate::New(TestObjV8Internal::enabledAtRuntimeMethod2Callback, v8Undefined(), defaultSignature));
    22302230
    22312231    // Custom Signature 'convert1'
     
    22332233    v8::Handle<v8::FunctionTemplate> convert1Argv[convert1Argc] = { V8a::GetRawTemplate() };
    22342234    v8::Handle<v8::Signature> convert1Signature = v8::Signature::New(desc, convert1Argc, convert1Argv);
    2235     proto->Set(v8::String::NewSymbol("convert1"), v8::FunctionTemplate::New(TestObjV8Internal::convert1Callback, v8Undefined(), convert1Signature));
     2235    proto->Set(v8String("convert1"), v8::FunctionTemplate::New(TestObjV8Internal::convert1Callback, v8Undefined(), convert1Signature));
    22362236
    22372237    // Custom Signature 'convert2'
     
    22392239    v8::Handle<v8::FunctionTemplate> convert2Argv[convert2Argc] = { V8b::GetRawTemplate() };
    22402240    v8::Handle<v8::Signature> convert2Signature = v8::Signature::New(desc, convert2Argc, convert2Argv);
    2241     proto->Set(v8::String::NewSymbol("convert2"), v8::FunctionTemplate::New(TestObjV8Internal::convert2Callback, v8Undefined(), convert2Signature));
     2241    proto->Set(v8String("convert2"), v8::FunctionTemplate::New(TestObjV8Internal::convert2Callback, v8Undefined(), convert2Signature));
    22422242
    22432243    // Custom Signature 'convert4'
     
    22452245    v8::Handle<v8::FunctionTemplate> convert4Argv[convert4Argc] = { V8d::GetRawTemplate() };
    22462246    v8::Handle<v8::Signature> convert4Signature = v8::Signature::New(desc, convert4Argc, convert4Argv);
    2247     proto->Set(v8::String::NewSymbol("convert4"), v8::FunctionTemplate::New(TestObjV8Internal::convert4Callback, v8Undefined(), convert4Signature));
     2247    proto->Set(v8String("convert4"), v8::FunctionTemplate::New(TestObjV8Internal::convert4Callback, v8Undefined(), convert4Signature));
    22482248
    22492249    // Custom Signature 'convert5'
     
    22512251    v8::Handle<v8::FunctionTemplate> convert5Argv[convert5Argc] = { V8e::GetRawTemplate() };
    22522252    v8::Handle<v8::Signature> convert5Signature = v8::Signature::New(desc, convert5Argc, convert5Argv);
    2253     proto->Set(v8::String::NewSymbol("convert5"), v8::FunctionTemplate::New(TestObjV8Internal::convert5Callback, v8Undefined(), convert5Signature));
     2253    proto->Set(v8String("convert5"), v8::FunctionTemplate::New(TestObjV8Internal::convert5Callback, v8Undefined(), convert5Signature));
    22542254    V8DOMConfiguration::batchConfigureConstants(desc, proto, TestObjConsts, WTF_ARRAY_LENGTH(TestObjConsts));
    22552255
     
    23112311    UNUSED_PARAM(defaultSignature); // In some cases, it will not be used.
    23122312    if (ContextFeatures::enabledPerContextMethod1Enabled(impl->document())) {
    2313         proto->Set(v8::String::NewSymbol("enabledPerContextMethod1"), v8::FunctionTemplate::New(TestObjV8Internal::enabledPerContextMethod1Callback, v8Undefined(), defaultSignature)->GetFunction());
     2313        proto->Set(v8String("enabledPerContextMethod1"), v8::FunctionTemplate::New(TestObjV8Internal::enabledPerContextMethod1Callback, v8Undefined(), defaultSignature)->GetFunction());
    23142314    }
    23152315    if (ContextFeatures::featureNameEnabled(impl->document())) {
    2316         proto->Set(v8::String::NewSymbol("enabledPerContextMethod2"), v8::FunctionTemplate::New(TestObjV8Internal::enabledPerContextMethod2Callback, v8Undefined(), defaultSignature)->GetFunction());
     2316        proto->Set(v8String("enabledPerContextMethod2"), v8::FunctionTemplate::New(TestObjV8Internal::enabledPerContextMethod2Callback, v8Undefined(), defaultSignature)->GetFunction());
    23172317    }
    23182318}
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp

    r126237 r126348  
    7272{
    7373    INC_STATS("DOM.TestSerializedScriptValueInterface.cachedValue._get");
    74     v8::Handle<v8::String> propertyName = v8::String::NewSymbol("cachedValue");
     74    v8::Handle<v8::String> propertyName = v8String("cachedValue", info.GetIsolate());
    7575    v8::Handle<v8::Value> value = info.Holder()->GetHiddenValue(propertyName);
    7676    if (!value.IsEmpty())
     
    8989    RefPtr<SerializedScriptValue> v = SerializedScriptValue::create(value, info.GetIsolate());
    9090    imp->setCachedValue(WTF::getPtr(v));
    91     info.Holder()->DeleteHiddenValue(v8::String::NewSymbol("cachedValue")); // Invalidate the cached value.
     91    info.Holder()->DeleteHiddenValue(v8String("cachedValue", info.GetIsolate())); // Invalidate the cached value.
    9292    return;
    9393}
     
    110110{
    111111    INC_STATS("DOM.TestSerializedScriptValueInterface.cachedReadonlyValue._get");
    112     v8::Handle<v8::String> propertyName = v8::String::NewSymbol("cachedReadonlyValue");
     112    v8::Handle<v8::String> propertyName = v8String("cachedReadonlyValue", info.GetIsolate());
    113113    v8::Handle<v8::Value> value = info.Holder()->GetHiddenValue(propertyName);
    114114    if (!value.IsEmpty())
  • trunk/Source/WebCore/bindings/v8/V8Binding.h

    r126262 r126348  
    9999    }
    100100
    101     // Convert a string to a V8 string.
     101    // Convert a WebCore String to a V8 string.
    102102    inline v8::Handle<v8::String> v8String(const String& string, v8::Isolate* isolate = 0)
    103103    {
    104104        return v8ExternalString(string, isolate);
     105    }
     106
     107    // Convert a char* string to a V8 string.
     108    inline v8::Handle<v8::String> v8String(const char* string, v8::Isolate* isolate = 0)
     109    {
     110        return v8ExternalString(String(string), isolate);
    105111    }
    106112
Note: See TracChangeset for help on using the changeset viewer.