| Index: Source/bindings/tests/results/V8TestObject.cpp
|
| diff --git a/Source/bindings/tests/results/V8TestObject.cpp b/Source/bindings/tests/results/V8TestObject.cpp
|
| index 2baf6d646b3635be31434abfc21a8d577df3351c..36d530b077116653bffc00535fd9196546997e67 100644
|
| --- a/Source/bindings/tests/results/V8TestObject.cpp
|
| +++ b/Source/bindings/tests/results/V8TestObject.cpp
|
| @@ -1372,12 +1372,7 @@ static void readonlyEventTargetOrNullAttributeAttributeGetter(const v8::Property
|
| {
|
| v8::Handle<v8::Object> holder = info.Holder();
|
| TestObject* impl = V8TestObject::toNative(holder);
|
| - RefPtrWillBeRawPtr<EventTarget> cppValue(impl->readonlyEventTargetOrNullAttribute());
|
| - if (!cppValue) {
|
| - v8SetReturnValueNull(info);
|
| - return;
|
| - }
|
| - v8SetReturnValueFast(info, WTF::getPtr(cppValue.release()), impl);
|
| + v8SetReturnValueFast(info, WTF::getPtr(impl->readonlyEventTargetOrNullAttribute()), impl);
|
| }
|
|
|
| static void readonlyEventTargetOrNullAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
|
| @@ -1520,12 +1515,7 @@ static void stringOrNullAttributeAttributeGetter(const v8::PropertyCallbackInfo<
|
| {
|
| v8::Handle<v8::Object> holder = info.Holder();
|
| TestObject* impl = V8TestObject::toNative(holder);
|
| - String cppValue(impl->stringOrNullAttribute());
|
| - if (!cppValue) {
|
| - v8SetReturnValueNull(info);
|
| - return;
|
| - }
|
| - v8SetReturnValueString(info, cppValue, info.GetIsolate());
|
| + v8SetReturnValueStringOrNull(info, impl->stringOrNullAttribute(), info.GetIsolate());
|
| }
|
|
|
| static void stringOrNullAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
|
| @@ -1590,12 +1580,7 @@ static void testInterfaceOrNullAttributeAttributeGetter(const v8::PropertyCallba
|
| {
|
| v8::Handle<v8::Object> holder = info.Holder();
|
| TestObject* impl = V8TestObject::toNative(holder);
|
| - RefPtr<TestInterfaceImplementation> cppValue(impl->testInterfaceOrNullAttribute());
|
| - if (!cppValue) {
|
| - v8SetReturnValueNull(info);
|
| - return;
|
| - }
|
| - v8SetReturnValueFast(info, WTF::getPtr(cppValue.release()), impl);
|
| + v8SetReturnValueFast(info, WTF::getPtr(impl->testInterfaceOrNullAttribute()), impl);
|
| }
|
|
|
| static void testInterfaceOrNullAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
|
| @@ -1921,6 +1906,46 @@ static void cachedArrayAttributeAttributeSetterCallback(v8::Local<v8::String>, v
|
| TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
|
| }
|
|
|
| +static void cachedStringOrNoneAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
|
| +{
|
| + v8::Handle<v8::Object> holder = info.Holder();
|
| + v8::Handle<v8::String> propertyName = v8AtomicString(info.GetIsolate(), "cachedStringOrNoneAttribute");
|
| + TestObject* impl = V8TestObject::toNative(holder);
|
| + if (!impl->isStringDirty()) {
|
| + v8::Handle<v8::Value> v8Value = V8HiddenValue::getHiddenValue(info.GetIsolate(), holder, propertyName);
|
| + if (!v8Value.IsEmpty()) {
|
| + v8SetReturnValue(info, v8Value);
|
| + return;
|
| + }
|
| + }
|
| + String cppValue(impl->cachedStringOrNoneAttribute());
|
| + V8HiddenValue::setHiddenValue(info.GetIsolate(), holder, propertyName, cppValue.isNull() ? v8::Handle<v8::Value>(v8::Null(info.GetIsolate())) : v8String(info.GetIsolate(), cppValue));
|
| + v8SetReturnValueStringOrNull(info, cppValue, info.GetIsolate());
|
| +}
|
| +
|
| +static void cachedStringOrNoneAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
|
| +{
|
| + TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
|
| + TestObjectV8Internal::cachedStringOrNoneAttributeAttributeGetter(info);
|
| + TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
|
| +}
|
| +
|
| +static void cachedStringOrNoneAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info)
|
| +{
|
| + v8::Handle<v8::Object> holder = info.Holder();
|
| + TestObject* impl = V8TestObject::toNative(holder);
|
| + TOSTRING_VOID(V8StringResource<WithNullCheck>, cppValue, v8Value);
|
| + impl->setCachedStringOrNoneAttribute(cppValue);
|
| + V8HiddenValue::deleteHiddenValue(info.GetIsolate(), holder, v8AtomicString(info.GetIsolate(), "cachedStringOrNoneAttribute")); // Invalidate the cached value.
|
| +}
|
| +
|
| +static void cachedStringOrNoneAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info)
|
| +{
|
| + TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
|
| + TestObjectV8Internal::cachedStringOrNoneAttributeAttributeSetter(v8Value, info);
|
| + TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
|
| +}
|
| +
|
| static void callWithExecutionContextAnyAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
|
| {
|
| v8::Handle<v8::Object> holder = info.Holder();
|
| @@ -4253,6 +4278,46 @@ static void treatReturnedNullStringAsUndefinedStringAttributeAttributeSetterCall
|
| TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
|
| }
|
|
|
| +static void cachedTreatReturnedNullStringAsUndefinedStringAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
|
| +{
|
| + v8::Handle<v8::Object> holder = info.Holder();
|
| + v8::Handle<v8::String> propertyName = v8AtomicString(info.GetIsolate(), "cachedTreatReturnedNullStringAsUndefinedStringAttribute");
|
| + TestObject* impl = V8TestObject::toNative(holder);
|
| + if (!impl->isStringDirty()) {
|
| + v8::Handle<v8::Value> v8Value = V8HiddenValue::getHiddenValue(info.GetIsolate(), holder, propertyName);
|
| + if (!v8Value.IsEmpty()) {
|
| + v8SetReturnValue(info, v8Value);
|
| + return;
|
| + }
|
| + }
|
| + String cppValue(impl->cachedTreatReturnedNullStringAsUndefinedStringAttribute());
|
| + V8HiddenValue::setHiddenValue(info.GetIsolate(), holder, propertyName, cppValue.isNull() ? v8Undefined() : v8String(info.GetIsolate(), cppValue));
|
| + v8SetReturnValueStringOrUndefined(info, cppValue, info.GetIsolate());
|
| +}
|
| +
|
| +static void cachedTreatReturnedNullStringAsUndefinedStringAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
|
| +{
|
| + TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter");
|
| + TestObjectV8Internal::cachedTreatReturnedNullStringAsUndefinedStringAttributeAttributeGetter(info);
|
| + TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
|
| +}
|
| +
|
| +static void cachedTreatReturnedNullStringAsUndefinedStringAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info)
|
| +{
|
| + v8::Handle<v8::Object> holder = info.Holder();
|
| + TestObject* impl = V8TestObject::toNative(holder);
|
| + TOSTRING_VOID(V8StringResource<>, cppValue, v8Value);
|
| + impl->setCachedTreatReturnedNullStringAsUndefinedStringAttribute(cppValue);
|
| + V8HiddenValue::deleteHiddenValue(info.GetIsolate(), holder, v8AtomicString(info.GetIsolate(), "cachedTreatReturnedNullStringAsUndefinedStringAttribute")); // Invalidate the cached value.
|
| +}
|
| +
|
| +static void cachedTreatReturnedNullStringAsUndefinedStringAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info)
|
| +{
|
| + TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter");
|
| + TestObjectV8Internal::cachedTreatReturnedNullStringAsUndefinedStringAttributeAttributeSetter(v8Value, info);
|
| + TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
|
| +}
|
| +
|
| static void treatReturnedNullStringAsNullByteStringAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
|
| {
|
| v8::Handle<v8::Object> holder = info.Holder();
|
| @@ -4441,12 +4506,7 @@ static void typeCheckingInterfaceTestInterfaceOrNullAttributeAttributeGetter(con
|
| {
|
| v8::Handle<v8::Object> holder = info.Holder();
|
| TestObject* impl = V8TestObject::toNative(holder);
|
| - RefPtr<TestInterfaceImplementation> cppValue(impl->typeCheckingInterfaceTestInterfaceOrNullAttribute());
|
| - if (!cppValue) {
|
| - v8SetReturnValueNull(info);
|
| - return;
|
| - }
|
| - v8SetReturnValueFast(info, WTF::getPtr(cppValue.release()), impl);
|
| + v8SetReturnValueFast(info, WTF::getPtr(impl->typeCheckingInterfaceTestInterfaceOrNullAttribute()), impl);
|
| }
|
|
|
| static void typeCheckingInterfaceTestInterfaceOrNullAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
|
| @@ -4573,7 +4633,8 @@ static void activityLoggingSetterOnlyLogPreviousValueAttributeAttributeGetter(co
|
| {
|
| v8::Handle<v8::Object> holder = info.Holder();
|
| TestObject* impl = V8TestObject::toNative(holder);
|
| - v8SetReturnValueInt(info, impl->activityLoggingSetterOnlyLogPreviousValueAttribute());
|
| + String cppValue(impl->activityLoggingSetterOnlyLogPreviousValueAttribute());
|
| + v8SetReturnValueStringOrNull(info, cppValue, info.GetIsolate());
|
| }
|
|
|
| static void activityLoggingSetterOnlyLogPreviousValueAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
|
| @@ -4586,9 +4647,8 @@ static void activityLoggingSetterOnlyLogPreviousValueAttributeAttributeGetterCal
|
| static void activityLoggingSetterOnlyLogPreviousValueAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info)
|
| {
|
| v8::Handle<v8::Object> holder = info.Holder();
|
| - ExceptionState exceptionState(ExceptionState::SetterContext, "activityLoggingSetterOnlyLogPreviousValueAttribute", "TestObject", holder, info.GetIsolate());
|
| TestObject* impl = V8TestObject::toNative(holder);
|
| - TONATIVE_VOID_EXCEPTIONSTATE(int, cppValue, toInt32(v8Value, exceptionState), exceptionState);
|
| + TOSTRING_VOID(V8StringResource<WithNullCheck>, cppValue, v8Value);
|
| impl->setActivityLoggingSetterOnlyLogPreviousValueAttribute(cppValue);
|
| }
|
|
|
| @@ -4599,8 +4659,8 @@ static void activityLoggingSetterOnlyLogPreviousValueAttributeAttributeSetterCal
|
| V8PerContextData* contextData = scriptState->perContextData();
|
| if (scriptState->world().isIsolatedWorld() && contextData && contextData->activityLogger()) {
|
| TestObject* impl = V8TestObject::toNative(info.Holder());
|
| - int original = impl->activityLoggingSetterOnlyLogPreviousValueAttribute();
|
| - v8::Handle<v8::Value> originalValue = v8::Integer::New(info.GetIsolate(), impl->activityLoggingSetterOnlyLogPreviousValueAttribute());
|
| + String cppValue(impl->activityLoggingSetterOnlyLogPreviousValueAttribute());
|
| + v8::Handle<v8::Value> originalValue = cppValue.isNull() ? v8::Handle<v8::Value>(v8::Null(info.GetIsolate())) : v8String(info.GetIsolate(), cppValue);
|
| contextData->activityLogger()->logSetter("TestObject.activityLoggingSetterOnlyLogPreviousValueAttribute", v8Value, originalValue);
|
| }
|
| TestObjectV8Internal::activityLoggingSetterOnlyLogPreviousValueAttributeAttributeSetter(v8Value, info);
|
| @@ -4611,7 +4671,8 @@ static void activityLoggingLogPreviousValueInterfaceAttributeAttributeGetter(con
|
| {
|
| v8::Handle<v8::Object> holder = info.Holder();
|
| TestObject* impl = V8TestObject::toNative(holder);
|
| - v8SetReturnValueFast(info, WTF::getPtr(impl->activityLoggingLogPreviousValueInterfaceAttribute()), impl);
|
| + RefPtr<TestInterfaceEmpty> cppValue(impl->activityLoggingLogPreviousValueInterfaceAttribute());
|
| + v8SetReturnValueFast(info, WTF::getPtr(cppValue.release()), impl);
|
| }
|
|
|
| static void activityLoggingLogPreviousValueInterfaceAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
|
| @@ -4640,8 +4701,8 @@ static void activityLoggingLogPreviousValueInterfaceAttributeAttributeSetterCall
|
| V8PerContextData* contextData = scriptState->perContextData();
|
| if (scriptState->world().isIsolatedWorld() && contextData && contextData->activityLogger()) {
|
| TestObject* impl = V8TestObject::toNative(info.Holder());
|
| - RefPtr<TestInterfaceEmpty> original = impl->activityLoggingLogPreviousValueInterfaceAttribute();
|
| - v8::Handle<v8::Value> originalValue = toV8(impl->activityLoggingLogPreviousValueInterfaceAttribute(), info.Holder(), info.GetIsolate());
|
| + RefPtr<TestInterfaceEmpty> cppValue(impl->activityLoggingLogPreviousValueInterfaceAttribute());
|
| + v8::Handle<v8::Value> originalValue = toV8(cppValue, info.Holder(), info.GetIsolate());
|
| contextData->activityLogger()->logSetter("TestObject.activityLoggingLogPreviousValueInterfaceAttribute", v8Value, originalValue);
|
| }
|
| TestObjectV8Internal::activityLoggingLogPreviousValueInterfaceAttributeAttributeSetter(v8Value, info);
|
| @@ -4710,12 +4771,7 @@ static void testInterfaceGarbageCollectedOrNullAttributeAttributeGetter(const v8
|
| {
|
| v8::Handle<v8::Object> holder = info.Holder();
|
| TestObject* impl = V8TestObject::toNative(holder);
|
| - RawPtr<TestInterfaceGarbageCollected> cppValue(impl->testInterfaceGarbageCollectedOrNullAttribute());
|
| - if (!cppValue) {
|
| - v8SetReturnValueNull(info);
|
| - return;
|
| - }
|
| - v8SetReturnValueFast(info, WTF::getPtr(cppValue.release()), impl);
|
| + v8SetReturnValueFast(info, WTF::getPtr(impl->testInterfaceGarbageCollectedOrNullAttribute()), impl);
|
| }
|
|
|
| static void testInterfaceGarbageCollectedOrNullAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
|
| @@ -4773,12 +4829,7 @@ static void testInterfaceWillBeGarbageCollectedOrNullAttributeAttributeGetter(co
|
| {
|
| v8::Handle<v8::Object> holder = info.Holder();
|
| TestObject* impl = V8TestObject::toNative(holder);
|
| - RefPtrWillBeRawPtr<TestInterfaceWillBeGarbageCollected> cppValue(impl->testInterfaceWillBeGarbageCollectedOrNullAttribute());
|
| - if (!cppValue) {
|
| - v8SetReturnValueNull(info);
|
| - return;
|
| - }
|
| - v8SetReturnValueFast(info, WTF::getPtr(cppValue.release()), impl);
|
| + v8SetReturnValueFast(info, WTF::getPtr(impl->testInterfaceWillBeGarbageCollectedOrNullAttribute()), impl);
|
| }
|
|
|
| static void testInterfaceWillBeGarbageCollectedOrNullAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
|
| @@ -9705,6 +9756,7 @@ static const V8DOMConfiguration::AttributeConfiguration V8TestObjectAttributes[]
|
| {"activityLoggingSetterForAllWorldsLongAttribute", TestObjectV8Internal::activityLoggingSetterForAllWorldsLongAttributeAttributeGetterCallback, TestObjectV8Internal::activityLoggingSetterForAllWorldsLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
|
| {"cachedAttributeAnyAttribute", TestObjectV8Internal::cachedAttributeAnyAttributeAttributeGetterCallback, TestObjectV8Internal::cachedAttributeAnyAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
|
| {"cachedArrayAttribute", TestObjectV8Internal::cachedArrayAttributeAttributeGetterCallback, TestObjectV8Internal::cachedArrayAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
|
| + {"cachedStringOrNoneAttribute", TestObjectV8Internal::cachedStringOrNoneAttributeAttributeGetterCallback, TestObjectV8Internal::cachedStringOrNoneAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
|
| {"callWithExecutionContextAnyAttribute", TestObjectV8Internal::callWithExecutionContextAnyAttributeAttributeGetterCallback, TestObjectV8Internal::callWithExecutionContextAnyAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
|
| {"callWithScriptStateAnyAttribute", TestObjectV8Internal::callWithScriptStateAnyAttributeAttributeGetterCallback, TestObjectV8Internal::callWithScriptStateAnyAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
|
| {"callWithExecutionContextAndScriptStateAnyAttribute", TestObjectV8Internal::callWithExecutionContextAndScriptStateAnyAttributeAttributeGetterCallback, TestObjectV8Internal::callWithExecutionContextAndScriptStateAnyAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
|
| @@ -9781,6 +9833,7 @@ static const V8DOMConfiguration::AttributeConfiguration V8TestObjectAttributes[]
|
| {"treatNullAsNullStringStringAttribute", TestObjectV8Internal::treatNullAsNullStringStringAttributeAttributeGetterCallback, TestObjectV8Internal::treatNullAsNullStringStringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
|
| {"treatReturnedNullStringAsNullStringAttribute", TestObjectV8Internal::treatReturnedNullStringAsNullStringAttributeAttributeGetterCallback, TestObjectV8Internal::treatReturnedNullStringAsNullStringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
|
| {"treatReturnedNullStringAsUndefinedStringAttribute", TestObjectV8Internal::treatReturnedNullStringAsUndefinedStringAttributeAttributeGetterCallback, TestObjectV8Internal::treatReturnedNullStringAsUndefinedStringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
|
| + {"cachedTreatReturnedNullStringAsUndefinedStringAttribute", TestObjectV8Internal::cachedTreatReturnedNullStringAsUndefinedStringAttributeAttributeGetterCallback, TestObjectV8Internal::cachedTreatReturnedNullStringAsUndefinedStringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
|
| {"treatReturnedNullStringAsNullByteStringAttribute", TestObjectV8Internal::treatReturnedNullStringAsNullByteStringAttributeAttributeGetterCallback, TestObjectV8Internal::treatReturnedNullStringAsNullByteStringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
|
| {"treatReturnedNullStringAsUndefinedByteStringAttribute", TestObjectV8Internal::treatReturnedNullStringAsUndefinedByteStringAttributeAttributeGetterCallback, TestObjectV8Internal::treatReturnedNullStringAsUndefinedByteStringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
|
| {"treatReturnedNullStringAsNullScalarValueStringAttribute", TestObjectV8Internal::treatReturnedNullStringAsNullScalarValueStringAttributeAttributeGetterCallback, TestObjectV8Internal::treatReturnedNullStringAsNullScalarValueStringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
|
|
|