| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 1661 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1672 | 1672 |
| 1673 static void cachedAttribute2AttributeGetterCallback(v8::Local<v8::String>, const
v8::PropertyCallbackInfo<v8::Value>& info) | 1673 static void cachedAttribute2AttributeGetterCallback(v8::Local<v8::String>, const
v8::PropertyCallbackInfo<v8::Value>& info) |
| 1674 { | 1674 { |
| 1675 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 1675 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 1676 TestObjV8Internal::cachedAttribute2AttributeGetter(info); | 1676 TestObjV8Internal::cachedAttribute2AttributeGetter(info); |
| 1677 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 1677 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 1678 } | 1678 } |
| 1679 | 1679 |
| 1680 static void cachedDirtyableAttributeAttributeGetter(const v8::PropertyCallbackIn
fo<v8::Value>& info) | 1680 static void cachedDirtyableAttributeAttributeGetter(const v8::PropertyCallbackIn
fo<v8::Value>& info) |
| 1681 { | 1681 { |
| 1682 v8::Handle<v8::String> propertyName = v8::String::NewFromUtf8(info.GetIsolat
e(), "cachedDirtyableAttribute", v8::String::kInternalizedString); | 1682 v8::Handle<v8::String> propertyName = v8AtomicString(info.GetIsolate(), "cac
hedDirtyableAttribute"); |
| 1683 TestObj* imp = V8TestObject::toNative(info.Holder()); | 1683 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 1684 if (!imp->isValueDirty()) { | 1684 if (!imp->isValueDirty()) { |
| 1685 v8::Handle<v8::Value> jsValue = info.Holder()->GetHiddenValue(propertyNa
me); | 1685 v8::Handle<v8::Value> jsValue = info.Holder()->GetHiddenValue(propertyNa
me); |
| 1686 if (!jsValue.IsEmpty()) { | 1686 if (!jsValue.IsEmpty()) { |
| 1687 v8SetReturnValue(info, jsValue); | 1687 v8SetReturnValue(info, jsValue); |
| 1688 return; | 1688 return; |
| 1689 } | 1689 } |
| 1690 } | 1690 } |
| 1691 ScriptValue jsValue = imp->cachedDirtyableAttribute(); | 1691 ScriptValue jsValue = imp->cachedDirtyableAttribute(); |
| 1692 info.Holder()->SetHiddenValue(propertyName, jsValue.v8Value()); | 1692 info.Holder()->SetHiddenValue(propertyName, jsValue.v8Value()); |
| 1693 v8SetReturnValue(info, jsValue.v8Value()); | 1693 v8SetReturnValue(info, jsValue.v8Value()); |
| 1694 } | 1694 } |
| 1695 | 1695 |
| 1696 static void cachedDirtyableAttributeAttributeGetterCallback(v8::Local<v8::String
>, const v8::PropertyCallbackInfo<v8::Value>& info) | 1696 static void cachedDirtyableAttributeAttributeGetterCallback(v8::Local<v8::String
>, const v8::PropertyCallbackInfo<v8::Value>& info) |
| 1697 { | 1697 { |
| 1698 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 1698 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 1699 TestObjV8Internal::cachedDirtyableAttributeAttributeGetter(info); | 1699 TestObjV8Internal::cachedDirtyableAttributeAttributeGetter(info); |
| 1700 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 1700 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 1701 } | 1701 } |
| 1702 | 1702 |
| 1703 static void cachedDirtyableAttributeRaisesAttributeGetter(const v8::PropertyCall
backInfo<v8::Value>& info) | 1703 static void cachedDirtyableAttributeRaisesAttributeGetter(const v8::PropertyCall
backInfo<v8::Value>& info) |
| 1704 { | 1704 { |
| 1705 v8::Handle<v8::String> propertyName = v8::String::NewFromUtf8(info.GetIsolat
e(), "cachedDirtyableAttributeRaises", v8::String::kInternalizedString); | 1705 v8::Handle<v8::String> propertyName = v8AtomicString(info.GetIsolate(), "cac
hedDirtyableAttributeRaises"); |
| 1706 TestObj* imp = V8TestObject::toNative(info.Holder()); | 1706 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 1707 if (!imp->isValueDirty()) { | 1707 if (!imp->isValueDirty()) { |
| 1708 v8::Handle<v8::Value> jsValue = info.Holder()->GetHiddenValue(propertyNa
me); | 1708 v8::Handle<v8::Value> jsValue = info.Holder()->GetHiddenValue(propertyNa
me); |
| 1709 if (!jsValue.IsEmpty()) { | 1709 if (!jsValue.IsEmpty()) { |
| 1710 v8SetReturnValue(info, jsValue); | 1710 v8SetReturnValue(info, jsValue); |
| 1711 return; | 1711 return; |
| 1712 } | 1712 } |
| 1713 } | 1713 } |
| 1714 ExceptionState exceptionState(ExceptionState::GetterContext, "cachedDirtyabl
eAttributeRaises", "TestObject", info.Holder(), info.GetIsolate()); | 1714 ExceptionState exceptionState(ExceptionState::GetterContext, "cachedDirtyabl
eAttributeRaises", "TestObject", info.Holder(), info.GetIsolate()); |
| 1715 ScriptValue jsValue = imp->cachedDirtyableAttributeRaises(exceptionState); | 1715 ScriptValue jsValue = imp->cachedDirtyableAttributeRaises(exceptionState); |
| (...skipping 3659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5375 v8::Handle<v8::FunctionTemplate> svgPointMethodArgv[svgPointMethodArgc] = {
V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8SVGPoint::wrapperTypeInfo, cu
rrentWorldType), v8::Handle<v8::FunctionTemplate>() }; | 5375 v8::Handle<v8::FunctionTemplate> svgPointMethodArgv[svgPointMethodArgc] = {
V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8SVGPoint::wrapperTypeInfo, cu
rrentWorldType), v8::Handle<v8::FunctionTemplate>() }; |
| 5376 v8::Handle<v8::Signature> svgPointMethodSignature = v8::Signature::New(isola
te, functionTemplate, svgPointMethodArgc, svgPointMethodArgv); | 5376 v8::Handle<v8::Signature> svgPointMethodSignature = v8::Signature::New(isola
te, functionTemplate, svgPointMethodArgc, svgPointMethodArgv); |
| 5377 prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "svgPointMethod", v8
::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjV8Inte
rnal::svgPointMethodMethodCallback, v8Undefined(), svgPointMethodSignature, 2)); | 5377 prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "svgPointMethod", v8
::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjV8Inte
rnal::svgPointMethodMethodCallback, v8Undefined(), svgPointMethodSignature, 2)); |
| 5378 | 5378 |
| 5379 // Custom Signature 'variadicNodeMethod' | 5379 // Custom Signature 'variadicNodeMethod' |
| 5380 const int variadicNodeMethodArgc = 2; | 5380 const int variadicNodeMethodArgc = 2; |
| 5381 v8::Handle<v8::FunctionTemplate> variadicNodeMethodArgv[variadicNodeMethodAr
gc] = { V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8Node::wrapperTypeInfo
, currentWorldType), V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8Node::wr
apperTypeInfo, currentWorldType) }; | 5381 v8::Handle<v8::FunctionTemplate> variadicNodeMethodArgv[variadicNodeMethodAr
gc] = { V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8Node::wrapperTypeInfo
, currentWorldType), V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8Node::wr
apperTypeInfo, currentWorldType) }; |
| 5382 v8::Handle<v8::Signature> variadicNodeMethodSignature = v8::Signature::New(i
solate, functionTemplate, variadicNodeMethodArgc, variadicNodeMethodArgv); | 5382 v8::Handle<v8::Signature> variadicNodeMethodSignature = v8::Signature::New(i
solate, functionTemplate, variadicNodeMethodArgc, variadicNodeMethodArgv); |
| 5383 prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "variadicNodeMethod"
, v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjV8
Internal::variadicNodeMethodMethodCallback, v8Undefined(), variadicNodeMethodSig
nature, 2)); | 5383 prototypeTemplate->Set(v8::String::NewFromUtf8(isolate, "variadicNodeMethod"
, v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestObjV8
Internal::variadicNodeMethodMethodCallback, v8Undefined(), variadicNodeMethodSig
nature, 2)); |
| 5384 functionTemplate->Set(v8::String::NewFromUtf8(isolate, "deprecatedStaticMeth
od", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestOb
jV8Internal::deprecatedStaticMethodMethodCallback, v8Undefined(), v8::Local<v8::
Signature>(), 0)); | 5384 functionTemplate->Set(v8::String::NewFromUtf8(isolate, "deprecatedStaticMeth
od", v8::String::kInternalizedString), v8::FunctionTemplate::New(isolate, TestOb
jV8Internal::deprecatedStaticMethodMethodCallback, v8Undefined(), v8::Local<v8::
Signature>(), 0)); |
| 5385 functionTemplate->SetNativeDataProperty(v8::String::NewFromUtf8(isolate, "st
aticReadOnlyLongAttr", v8::String::kInternalizedString), TestObjV8Internal::stat
icReadOnlyLongAttrAttributeGetterCallback, 0, v8::External::New(isolate, 0), sta
tic_cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::AccessorSignature>(),
static_cast<v8::AccessControl>(v8::DEFAULT)); | 5385 functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "staticReadO
nlyLongAttr"), TestObjV8Internal::staticReadOnlyLongAttrAttributeGetterCallback,
0, v8::External::New(isolate, 0), static_cast<v8::PropertyAttribute>(v8::None),
v8::Handle<v8::AccessorSignature>(), static_cast<v8::AccessControl>(v8::DEFAULT
)); |
| 5386 functionTemplate->SetNativeDataProperty(v8::String::NewFromUtf8(isolate, "st
aticStringAttr", v8::String::kInternalizedString), TestObjV8Internal::staticStri
ngAttrAttributeGetterCallback, TestObjV8Internal::staticStringAttrAttributeSette
rCallback, v8::External::New(isolate, 0), static_cast<v8::PropertyAttribute>(v8:
:None), v8::Handle<v8::AccessorSignature>(), static_cast<v8::AccessControl>(v8::
DEFAULT)); | 5386 functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "staticStrin
gAttr"), TestObjV8Internal::staticStringAttrAttributeGetterCallback, TestObjV8In
ternal::staticStringAttrAttributeSetterCallback, v8::External::New(isolate, 0),
static_cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::AccessorSignature>(
), static_cast<v8::AccessControl>(v8::DEFAULT)); |
| 5387 functionTemplate->SetNativeDataProperty(v8::String::NewFromUtf8(isolate, "Te
stSubObj", v8::String::kInternalizedString), TestObjV8Internal::TestObjConstruct
orGetter, 0, v8::External::New(isolate, const_cast<WrapperTypeInfo*>(&V8TestSubO
bj::wrapperTypeInfo)), static_cast<v8::PropertyAttribute>(v8::DontEnum), v8::Han
dle<v8::AccessorSignature>(), static_cast<v8::AccessControl>(v8::DEFAULT)); | 5387 functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "TestSubObj"
), TestObjV8Internal::TestObjConstructorGetter, 0, v8::External::New(isolate, co
nst_cast<WrapperTypeInfo*>(&V8TestSubObj::wrapperTypeInfo)), static_cast<v8::Pro
pertyAttribute>(v8::DontEnum), v8::Handle<v8::AccessorSignature>(), static_cast<
v8::AccessControl>(v8::DEFAULT)); |
| 5388 functionTemplate->SetNativeDataProperty(v8::String::NewFromUtf8(isolate, "de
precatedStaticReadOnlyAttr", v8::String::kInternalizedString), TestObjV8Internal
::deprecatedStaticReadOnlyAttrAttributeGetterCallback, 0, v8::External::New(isol
ate, 0), static_cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::AccessorSi
gnature>(), static_cast<v8::AccessControl>(v8::DEFAULT)); | 5388 functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "deprecatedS
taticReadOnlyAttr"), TestObjV8Internal::deprecatedStaticReadOnlyAttrAttributeGet
terCallback, 0, v8::External::New(isolate, 0), static_cast<v8::PropertyAttribute
>(v8::None), v8::Handle<v8::AccessorSignature>(), static_cast<v8::AccessControl>
(v8::DEFAULT)); |
| 5389 functionTemplate->SetNativeDataProperty(v8::String::NewFromUtf8(isolate, "de
precatedStaticAttr", v8::String::kInternalizedString), TestObjV8Internal::deprec
atedStaticAttrAttributeGetterCallback, TestObjV8Internal::deprecatedStaticAttrAt
tributeSetterCallback, v8::External::New(isolate, 0), static_cast<v8::PropertyAt
tribute>(v8::None), v8::Handle<v8::AccessorSignature>(), static_cast<v8::AccessC
ontrol>(v8::DEFAULT)); | 5389 functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "deprecatedS
taticAttr"), TestObjV8Internal::deprecatedStaticAttrAttributeGetterCallback, Tes
tObjV8Internal::deprecatedStaticAttrAttributeSetterCallback, v8::External::New(i
solate, 0), static_cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::Accesso
rSignature>(), static_cast<v8::AccessControl>(v8::DEFAULT)); |
| 5390 | 5390 |
| 5391 // Custom toString template | 5391 // Custom toString template |
| 5392 functionTemplate->Set(v8::String::NewFromUtf8(isolate, "toString", v8::Strin
g::kInternalizedString), V8PerIsolateData::current()->toStringTemplate()); | 5392 functionTemplate->Set(v8::String::NewFromUtf8(isolate, "toString", v8::Strin
g::kInternalizedString), V8PerIsolateData::current()->toStringTemplate()); |
| 5393 return functionTemplate; | 5393 return functionTemplate; |
| 5394 } | 5394 } |
| 5395 | 5395 |
| 5396 v8::Handle<v8::FunctionTemplate> V8TestObject::domTemplate(v8::Isolate* isolate,
WrapperWorldType currentWorldType) | 5396 v8::Handle<v8::FunctionTemplate> V8TestObject::domTemplate(v8::Isolate* isolate,
WrapperWorldType currentWorldType) |
| 5397 { | 5397 { |
| 5398 V8PerIsolateData* data = V8PerIsolateData::from(isolate); | 5398 V8PerIsolateData* data = V8PerIsolateData::from(isolate); |
| 5399 V8PerIsolateData::TemplateMap::iterator result = data->templateMap(currentWo
rldType).find(&wrapperTypeInfo); | 5399 V8PerIsolateData::TemplateMap::iterator result = data->templateMap(currentWo
rldType).find(&wrapperTypeInfo); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5469 fromInternalPointer(object)->deref(); | 5469 fromInternalPointer(object)->deref(); |
| 5470 } | 5470 } |
| 5471 | 5471 |
| 5472 template<> | 5472 template<> |
| 5473 v8::Handle<v8::Value> toV8NoInline(TestObj* impl, v8::Handle<v8::Object> creatio
nContext, v8::Isolate* isolate) | 5473 v8::Handle<v8::Value> toV8NoInline(TestObj* impl, v8::Handle<v8::Object> creatio
nContext, v8::Isolate* isolate) |
| 5474 { | 5474 { |
| 5475 return toV8(impl, creationContext, isolate); | 5475 return toV8(impl, creationContext, isolate); |
| 5476 } | 5476 } |
| 5477 | 5477 |
| 5478 } // namespace WebCore | 5478 } // namespace WebCore |
| OLD | NEW |