| 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 27 matching lines...) Expand all Loading... |
| 38 #include "V8SVGAnimatedString.h" | 38 #include "V8SVGAnimatedString.h" |
| 39 #include "V8SVGDocument.h" | 39 #include "V8SVGDocument.h" |
| 40 #include "V8SVGPoint.h" | 40 #include "V8SVGPoint.h" |
| 41 #include "bindings/v8/BindingSecurity.h" | 41 #include "bindings/v8/BindingSecurity.h" |
| 42 #include "bindings/v8/ExceptionState.h" | 42 #include "bindings/v8/ExceptionState.h" |
| 43 #include "bindings/v8/V8DOMConfiguration.h" | 43 #include "bindings/v8/V8DOMConfiguration.h" |
| 44 #include "bindings/v8/V8ObjectConstructor.h" | 44 #include "bindings/v8/V8ObjectConstructor.h" |
| 45 #include "core/dom/ContextFeatures.h" | 45 #include "core/dom/ContextFeatures.h" |
| 46 #include "core/dom/Document.h" | 46 #include "core/dom/Document.h" |
| 47 #include "core/dom/custom/CustomElementCallbackDispatcher.h" | 47 #include "core/dom/custom/CustomElementCallbackDispatcher.h" |
| 48 #include "core/svg/properties/SVGPropertyTearOff.h" | |
| 49 #include "core/svg/properties/SVGStaticPropertyTearOff.h" | |
| 50 #include "platform/TraceEvent.h" | 48 #include "platform/TraceEvent.h" |
| 51 #include "wtf/GetPtr.h" | 49 #include "wtf/GetPtr.h" |
| 52 #include "wtf/RefPtr.h" | 50 #include "wtf/RefPtr.h" |
| 53 | 51 |
| 54 namespace WebCore { | 52 namespace WebCore { |
| 55 | 53 |
| 56 static void initializeScriptWrappableForInterface(TestSVG* object) | 54 static void initializeScriptWrappableForInterface(TestSVG* object) |
| 57 { | 55 { |
| 58 if (ScriptWrappable::wrapperCanBeStoredInObject(object)) | 56 if (ScriptWrappable::wrapperCanBeStoredInObject(object)) |
| 59 ScriptWrappable::setTypeInfoInObject(object, &V8TestSVG::wrapperTypeInfo
); | 57 ScriptWrappable::setTypeInfoInObject(object, &V8TestSVG::wrapperTypeInfo
); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 { | 102 { |
| 105 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 103 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 106 CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope; | 104 CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope; |
| 107 TestSVGV8Internal::animatedReflectedAttributeAttributeSetter(jsValue, info); | 105 TestSVGV8Internal::animatedReflectedAttributeAttributeSetter(jsValue, info); |
| 108 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 106 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 109 } | 107 } |
| 110 | 108 |
| 111 static void mutablePointAttributeGetter(const v8::PropertyCallbackInfo<v8::Value
>& info) | 109 static void mutablePointAttributeGetter(const v8::PropertyCallbackInfo<v8::Value
>& info) |
| 112 { | 110 { |
| 113 TestSVG* imp = V8TestSVG::toNative(info.Holder()); | 111 TestSVG* imp = V8TestSVG::toNative(info.Holder()); |
| 114 v8SetReturnValueFast(info, WTF::getPtr(SVGStaticPropertyTearOff<TestSVG, SVG
Point>::create(imp, imp->mutablePoint(), &TestSVG::updateMutablePoint)), imp); | 112 v8SetReturnValueFast(info, imp->mutablePoint(), imp); |
| 115 } | 113 } |
| 116 | 114 |
| 117 static void mutablePointAttributeGetterCallback(v8::Local<v8::String>, const v8:
:PropertyCallbackInfo<v8::Value>& info) | 115 static void mutablePointAttributeGetterCallback(v8::Local<v8::String>, const v8:
:PropertyCallbackInfo<v8::Value>& info) |
| 118 { | 116 { |
| 119 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 117 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 120 TestSVGV8Internal::mutablePointAttributeGetter(info); | 118 TestSVGV8Internal::mutablePointAttributeGetter(info); |
| 121 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 119 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 122 } | 120 } |
| 123 | 121 |
| 124 static void mutablePointAttributeSetter(v8::Local<v8::Value> jsValue, const v8::
PropertyCallbackInfo<void>& info) | 122 static void mutablePointAttributeSetter(v8::Local<v8::Value> jsValue, const v8::
PropertyCallbackInfo<void>& info) |
| 125 { | 123 { |
| 126 ExceptionState exceptionState(ExceptionState::SetterContext, "mutablePoint",
"TestSVG", info.Holder(), info.GetIsolate()); | |
| 127 TestSVG* imp = V8TestSVG::toNative(info.Holder()); | 124 TestSVG* imp = V8TestSVG::toNative(info.Holder()); |
| 128 V8TRYCATCH_VOID(RefPtr<SVGPropertyTearOff<SVGPoint> >, cppValue, V8SVGPoint:
:hasInstance(jsValue, info.GetIsolate()) ? V8SVGPoint::toNative(v8::Handle<v8::O
bject>::Cast(jsValue)) : 0); | 125 V8TRYCATCH_VOID(SVGPointTearOff*, cppValue, V8SVGPoint::hasInstance(jsValue,
info.GetIsolate()) ? V8SVGPoint::toNative(v8::Handle<v8::Object>::Cast(jsValue)
) : 0); |
| 129 if (!WTF::getPtr(cppValue)) { | 126 imp->setMutablePoint(WTF::getPtr(cppValue)); |
| 130 exceptionState.throwTypeError("The provided value is not of type 'SVGPoi
nt'."); | |
| 131 exceptionState.throwIfNeeded(); | |
| 132 return; | |
| 133 } | |
| 134 imp->setMutablePoint(WTF::getPtr(cppValue)->propertyReference()); | |
| 135 } | 127 } |
| 136 | 128 |
| 137 static void mutablePointAttributeSetterCallback(v8::Local<v8::String>, v8::Local
<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) | 129 static void mutablePointAttributeSetterCallback(v8::Local<v8::String>, v8::Local
<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) |
| 138 { | 130 { |
| 139 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 131 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 140 TestSVGV8Internal::mutablePointAttributeSetter(jsValue, info); | 132 TestSVGV8Internal::mutablePointAttributeSetter(jsValue, info); |
| 141 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 133 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 142 } | 134 } |
| 143 | 135 |
| 144 static void immutablePointAttributeGetter(const v8::PropertyCallbackInfo<v8::Val
ue>& info) | 136 static void immutablePointAttributeGetter(const v8::PropertyCallbackInfo<v8::Val
ue>& info) |
| 145 { | 137 { |
| 146 TestSVG* imp = V8TestSVG::toNative(info.Holder()); | 138 TestSVG* imp = V8TestSVG::toNative(info.Holder()); |
| 147 v8SetReturnValueFast(info, WTF::getPtr(SVGPropertyTearOff<SVGPoint>::create(
imp->immutablePoint())), imp); | 139 v8SetReturnValueFast(info, imp->immutablePoint(), imp); |
| 148 } | 140 } |
| 149 | 141 |
| 150 static void immutablePointAttributeGetterCallback(v8::Local<v8::String>, const v
8::PropertyCallbackInfo<v8::Value>& info) | 142 static void immutablePointAttributeGetterCallback(v8::Local<v8::String>, const v
8::PropertyCallbackInfo<v8::Value>& info) |
| 151 { | 143 { |
| 152 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 144 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 153 TestSVGV8Internal::immutablePointAttributeGetter(info); | 145 TestSVGV8Internal::immutablePointAttributeGetter(info); |
| 154 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 146 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 155 } | 147 } |
| 156 | 148 |
| 157 static void immutablePointAttributeSetter(v8::Local<v8::Value> jsValue, const v8
::PropertyCallbackInfo<void>& info) | 149 static void immutablePointAttributeSetter(v8::Local<v8::Value> jsValue, const v8
::PropertyCallbackInfo<void>& info) |
| 158 { | 150 { |
| 159 ExceptionState exceptionState(ExceptionState::SetterContext, "immutablePoint
", "TestSVG", info.Holder(), info.GetIsolate()); | |
| 160 TestSVG* imp = V8TestSVG::toNative(info.Holder()); | 151 TestSVG* imp = V8TestSVG::toNative(info.Holder()); |
| 161 V8TRYCATCH_VOID(RefPtr<SVGPropertyTearOff<SVGPoint> >, cppValue, V8SVGPoint:
:hasInstance(jsValue, info.GetIsolate()) ? V8SVGPoint::toNative(v8::Handle<v8::O
bject>::Cast(jsValue)) : 0); | 152 V8TRYCATCH_VOID(SVGPointTearOff*, cppValue, V8SVGPoint::hasInstance(jsValue,
info.GetIsolate()) ? V8SVGPoint::toNative(v8::Handle<v8::Object>::Cast(jsValue)
) : 0); |
| 162 if (!WTF::getPtr(cppValue)) { | 153 imp->setImmutablePoint(WTF::getPtr(cppValue)); |
| 163 exceptionState.throwTypeError("The provided value is not of type 'SVGPoi
nt'."); | |
| 164 exceptionState.throwIfNeeded(); | |
| 165 return; | |
| 166 } | |
| 167 imp->setImmutablePoint(WTF::getPtr(cppValue)->propertyReference()); | |
| 168 } | 154 } |
| 169 | 155 |
| 170 static void immutablePointAttributeSetterCallback(v8::Local<v8::String>, v8::Loc
al<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) | 156 static void immutablePointAttributeSetterCallback(v8::Local<v8::String>, v8::Loc
al<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) |
| 171 { | 157 { |
| 172 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 158 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 173 TestSVGV8Internal::immutablePointAttributeSetter(jsValue, info); | 159 TestSVGV8Internal::immutablePointAttributeSetter(jsValue, info); |
| 174 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 160 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 175 } | 161 } |
| 176 | 162 |
| 177 static void getSVGDocumentMethod(const v8::FunctionCallbackInfo<v8::Value>& info
) | 163 static void getSVGDocumentMethod(const v8::FunctionCallbackInfo<v8::Value>& info
) |
| (...skipping 14 matching lines...) Expand all Loading... |
| 192 static void getSVGDocumentMethodCallback(const v8::FunctionCallbackInfo<v8::Valu
e>& info) | 178 static void getSVGDocumentMethodCallback(const v8::FunctionCallbackInfo<v8::Valu
e>& info) |
| 193 { | 179 { |
| 194 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 180 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 195 TestSVGV8Internal::getSVGDocumentMethod(info); | 181 TestSVGV8Internal::getSVGDocumentMethod(info); |
| 196 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 182 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 197 } | 183 } |
| 198 | 184 |
| 199 static void mutablePointFunctionMethod(const v8::FunctionCallbackInfo<v8::Value>
& info) | 185 static void mutablePointFunctionMethod(const v8::FunctionCallbackInfo<v8::Value>
& info) |
| 200 { | 186 { |
| 201 TestSVG* imp = V8TestSVG::toNative(info.Holder()); | 187 TestSVG* imp = V8TestSVG::toNative(info.Holder()); |
| 202 v8SetReturnValue(info, WTF::getPtr(SVGPropertyTearOff<SVGPoint>::create(imp-
>mutablePointFunction()))); | 188 v8SetReturnValue(info, imp->mutablePointFunction()); |
| 203 } | 189 } |
| 204 | 190 |
| 205 static void mutablePointFunctionMethodCallback(const v8::FunctionCallbackInfo<v8
::Value>& info) | 191 static void mutablePointFunctionMethodCallback(const v8::FunctionCallbackInfo<v8
::Value>& info) |
| 206 { | 192 { |
| 207 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 193 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 208 TestSVGV8Internal::mutablePointFunctionMethod(info); | 194 TestSVGV8Internal::mutablePointFunctionMethod(info); |
| 209 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 195 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 210 } | 196 } |
| 211 | 197 |
| 212 static void immutablePointFunctionMethod(const v8::FunctionCallbackInfo<v8::Valu
e>& info) | 198 static void immutablePointFunctionMethod(const v8::FunctionCallbackInfo<v8::Valu
e>& info) |
| 213 { | 199 { |
| 214 TestSVG* imp = V8TestSVG::toNative(info.Holder()); | 200 TestSVG* imp = V8TestSVG::toNative(info.Holder()); |
| 215 v8SetReturnValue(info, WTF::getPtr(SVGPropertyTearOff<SVGPoint>::create(imp-
>immutablePointFunction()))); | 201 v8SetReturnValue(info, imp->immutablePointFunction()); |
| 216 } | 202 } |
| 217 | 203 |
| 218 static void immutablePointFunctionMethodCallback(const v8::FunctionCallbackInfo<
v8::Value>& info) | 204 static void immutablePointFunctionMethodCallback(const v8::FunctionCallbackInfo<
v8::Value>& info) |
| 219 { | 205 { |
| 220 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 206 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 221 TestSVGV8Internal::immutablePointFunctionMethod(info); | 207 TestSVGV8Internal::immutablePointFunctionMethod(info); |
| 222 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 208 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 223 } | 209 } |
| 224 | 210 |
| 225 static void immutablePointFunctionTypedefMethod(const v8::FunctionCallbackInfo<v
8::Value>& info) | 211 static void immutablePointFunctionTypedefMethod(const v8::FunctionCallbackInfo<v
8::Value>& info) |
| 226 { | 212 { |
| 227 TestSVG* imp = V8TestSVG::toNative(info.Holder()); | 213 TestSVG* imp = V8TestSVG::toNative(info.Holder()); |
| 228 v8SetReturnValue(info, WTF::getPtr(SVGPropertyTearOff<SVGPoint>::create(imp-
>immutablePointFunctionTypedef()))); | 214 v8SetReturnValue(info, imp->immutablePointFunctionTypedef()); |
| 229 } | 215 } |
| 230 | 216 |
| 231 static void immutablePointFunctionTypedefMethodCallback(const v8::FunctionCallba
ckInfo<v8::Value>& info) | 217 static void immutablePointFunctionTypedefMethodCallback(const v8::FunctionCallba
ckInfo<v8::Value>& info) |
| 232 { | 218 { |
| 233 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 219 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 234 TestSVGV8Internal::immutablePointFunctionTypedefMethod(info); | 220 TestSVGV8Internal::immutablePointFunctionTypedefMethod(info); |
| 235 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 221 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 236 } | 222 } |
| 237 | 223 |
| 238 static void svgPointMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info
) | 224 static void svgPointMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info
) |
| 239 { | 225 { |
| 240 ExceptionState exceptionState(ExceptionState::ExecutionContext, "svgPointMet
hod", "TestSVG", info.Holder(), info.GetIsolate()); | 226 ExceptionState exceptionState(ExceptionState::ExecutionContext, "svgPointMet
hod", "TestSVG", info.Holder(), info.GetIsolate()); |
| 241 if (UNLIKELY(info.Length() < 2)) { | 227 if (UNLIKELY(info.Length() < 2)) { |
| 242 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(2, i
nfo.Length())); | 228 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(2, i
nfo.Length())); |
| 243 exceptionState.throwIfNeeded(); | 229 exceptionState.throwIfNeeded(); |
| 244 return; | 230 return; |
| 245 } | 231 } |
| 246 TestSVG* imp = V8TestSVG::toNative(info.Holder()); | 232 TestSVG* imp = V8TestSVG::toNative(info.Holder()); |
| 247 V8TRYCATCH_VOID(RefPtr<SVGPropertyTearOff<SVGPoint> >, item, V8SVGPoint::has
Instance(info[0], info.GetIsolate()) ? V8SVGPoint::toNative(v8::Handle<v8::Objec
t>::Cast(info[0])) : 0); | 233 V8TRYCATCH_VOID(SVGPointTearOff*, item, V8SVGPoint::hasInstance(info[0], inf
o.GetIsolate()) ? V8SVGPoint::toNative(v8::Handle<v8::Object>::Cast(info[0])) :
0); |
| 248 V8TRYCATCH_EXCEPTION_VOID(unsigned, index, toUInt32(info[1], exceptionState)
, exceptionState); | 234 V8TRYCATCH_EXCEPTION_VOID(unsigned, index, toUInt32(info[1], exceptionState)
, exceptionState); |
| 249 if (!item) { | 235 v8SetReturnValue(info, imp->svgPointMethod(item, index)); |
| 250 exceptionState.throwTypeError("parameter 1 is not of type 'SVGPoint'."); | |
| 251 exceptionState.throwIfNeeded(); | |
| 252 return; | |
| 253 } | |
| 254 v8SetReturnValue(info, WTF::getPtr(SVGPropertyTearOff<SVGPoint>::create(imp-
>svgPointMethod(item->propertyReference(), index)))); | |
| 255 } | 236 } |
| 256 | 237 |
| 257 static void svgPointMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Valu
e>& info) | 238 static void svgPointMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Valu
e>& info) |
| 258 { | 239 { |
| 259 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 240 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 260 TestSVGV8Internal::svgPointMethodMethod(info); | 241 TestSVGV8Internal::svgPointMethodMethod(info); |
| 261 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 242 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 262 } | 243 } |
| 263 | 244 |
| 264 static void strictSVGPointMethodMethod(const v8::FunctionCallbackInfo<v8::Value>
& info) | 245 static void strictSVGPointMethodMethod(const v8::FunctionCallbackInfo<v8::Value>
& info) |
| 265 { | 246 { |
| 266 ExceptionState exceptionState(ExceptionState::ExecutionContext, "strictSVGPo
intMethod", "TestSVG", info.Holder(), info.GetIsolate()); | 247 ExceptionState exceptionState(ExceptionState::ExecutionContext, "strictSVGPo
intMethod", "TestSVG", info.Holder(), info.GetIsolate()); |
| 267 if (UNLIKELY(info.Length() < 2)) { | 248 if (UNLIKELY(info.Length() < 2)) { |
| 268 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(2, i
nfo.Length())); | 249 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(2, i
nfo.Length())); |
| 269 exceptionState.throwIfNeeded(); | 250 exceptionState.throwIfNeeded(); |
| 270 return; | 251 return; |
| 271 } | 252 } |
| 272 TestSVG* imp = V8TestSVG::toNative(info.Holder()); | 253 TestSVG* imp = V8TestSVG::toNative(info.Holder()); |
| 273 if (info.Length() > 0 && !info[0]->IsUndefined() && !V8SVGPoint::hasInstance
(info[0], info.GetIsolate())) { | 254 if (info.Length() > 0 && !info[0]->IsUndefined() && !V8SVGPoint::hasInstance
(info[0], info.GetIsolate())) { |
| 274 exceptionState.throwTypeError("parameter 1 is not of type 'SVGPoint'."); | 255 exceptionState.throwTypeError("parameter 1 is not of type 'SVGPoint'."); |
| 275 exceptionState.throwIfNeeded(); | 256 exceptionState.throwIfNeeded(); |
| 276 return; | 257 return; |
| 277 } | 258 } |
| 278 V8TRYCATCH_VOID(RefPtr<SVGPropertyTearOff<SVGPoint> >, item, V8SVGPoint::has
Instance(info[0], info.GetIsolate()) ? V8SVGPoint::toNative(v8::Handle<v8::Objec
t>::Cast(info[0])) : 0); | 259 V8TRYCATCH_VOID(SVGPointTearOff*, item, V8SVGPoint::hasInstance(info[0], inf
o.GetIsolate()) ? V8SVGPoint::toNative(v8::Handle<v8::Object>::Cast(info[0])) :
0); |
| 279 V8TRYCATCH_EXCEPTION_VOID(unsigned, index, toUInt32(info[1], exceptionState)
, exceptionState); | 260 V8TRYCATCH_EXCEPTION_VOID(unsigned, index, toUInt32(info[1], exceptionState)
, exceptionState); |
| 280 if (!item) { | 261 RefPtr<SVGPointTearOff> result = imp->strictSVGPointMethod(item, index, exce
ptionState); |
| 281 exceptionState.throwTypeError("parameter 1 is not of type 'SVGPoint'."); | |
| 282 exceptionState.throwIfNeeded(); | |
| 283 return; | |
| 284 } | |
| 285 SVGPoint result = imp->strictSVGPointMethod(item->propertyReference(), index
, exceptionState); | |
| 286 if (exceptionState.throwIfNeeded()) | 262 if (exceptionState.throwIfNeeded()) |
| 287 return; | 263 return; |
| 288 v8SetReturnValue(info, WTF::getPtr(SVGPropertyTearOff<SVGPoint>::create(resu
lt))); | 264 v8SetReturnValue(info, result.release()); |
| 289 } | 265 } |
| 290 | 266 |
| 291 static void strictSVGPointMethodMethodCallback(const v8::FunctionCallbackInfo<v8
::Value>& info) | 267 static void strictSVGPointMethodMethodCallback(const v8::FunctionCallbackInfo<v8
::Value>& info) |
| 292 { | 268 { |
| 293 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 269 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 294 TestSVGV8Internal::strictSVGPointMethodMethod(info); | 270 TestSVGV8Internal::strictSVGPointMethodMethod(info); |
| 295 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 271 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 296 } | 272 } |
| 297 | 273 |
| 298 } // namespace TestSVGV8Internal | 274 } // namespace TestSVGV8Internal |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 375 fromInternalPointer(object)->deref(); | 351 fromInternalPointer(object)->deref(); |
| 376 } | 352 } |
| 377 | 353 |
| 378 template<> | 354 template<> |
| 379 v8::Handle<v8::Value> toV8NoInline(TestSVG* impl, v8::Handle<v8::Object> creatio
nContext, v8::Isolate* isolate) | 355 v8::Handle<v8::Value> toV8NoInline(TestSVG* impl, v8::Handle<v8::Object> creatio
nContext, v8::Isolate* isolate) |
| 380 { | 356 { |
| 381 return toV8(impl, creationContext, isolate); | 357 return toV8(impl, creationContext, isolate); |
| 382 } | 358 } |
| 383 | 359 |
| 384 } // namespace WebCore | 360 } // namespace WebCore |
| OLD | NEW |