| 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 833 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 844 static void typedArrayAttrAttributeSetterCallback(v8::Local<v8::String>, v8::Loc
al<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) | 844 static void typedArrayAttrAttributeSetterCallback(v8::Local<v8::String>, v8::Loc
al<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) |
| 845 { | 845 { |
| 846 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 846 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 847 TestObjV8Internal::typedArrayAttrAttributeSetter(jsValue, info); | 847 TestObjV8Internal::typedArrayAttrAttributeSetter(jsValue, info); |
| 848 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 848 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 849 } | 849 } |
| 850 | 850 |
| 851 static void attrWithGetterExceptionAttributeGetter(const v8::PropertyCallbackInf
o<v8::Value>& info) | 851 static void attrWithGetterExceptionAttributeGetter(const v8::PropertyCallbackInf
o<v8::Value>& info) |
| 852 { | 852 { |
| 853 TestObj* imp = V8TestObject::toNative(info.Holder()); | 853 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 854 ExceptionState es(info.GetIsolate()); | 854 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 855 int jsValue = imp->attrWithGetterException(es); | 855 int jsValue = imp->attrWithGetterException(es); |
| 856 if (UNLIKELY(es.throwIfNeeded())) | 856 if (UNLIKELY(es.throwIfNeeded())) |
| 857 return; | 857 return; |
| 858 v8SetReturnValueInt(info, jsValue); | 858 v8SetReturnValueInt(info, jsValue); |
| 859 } | 859 } |
| 860 | 860 |
| 861 static void attrWithGetterExceptionAttributeGetterCallback(v8::Local<v8::String>
, const v8::PropertyCallbackInfo<v8::Value>& info) | 861 static void attrWithGetterExceptionAttributeGetterCallback(v8::Local<v8::String>
, const v8::PropertyCallbackInfo<v8::Value>& info) |
| 862 { | 862 { |
| 863 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 863 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 864 TestObjV8Internal::attrWithGetterExceptionAttributeGetter(info); | 864 TestObjV8Internal::attrWithGetterExceptionAttributeGetter(info); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 889 { | 889 { |
| 890 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 890 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 891 TestObjV8Internal::attrWithSetterExceptionAttributeGetter(info); | 891 TestObjV8Internal::attrWithSetterExceptionAttributeGetter(info); |
| 892 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 892 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 893 } | 893 } |
| 894 | 894 |
| 895 static void attrWithSetterExceptionAttributeSetter(v8::Local<v8::Value> jsValue,
const v8::PropertyCallbackInfo<void>& info) | 895 static void attrWithSetterExceptionAttributeSetter(v8::Local<v8::Value> jsValue,
const v8::PropertyCallbackInfo<void>& info) |
| 896 { | 896 { |
| 897 TestObj* imp = V8TestObject::toNative(info.Holder()); | 897 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 898 V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue)); | 898 V8TRYCATCH_VOID(int, cppValue, toInt32(jsValue)); |
| 899 ExceptionState es(info.GetIsolate()); | 899 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 900 imp->setAttrWithSetterException(cppValue, es); | 900 imp->setAttrWithSetterException(cppValue, es); |
| 901 es.throwIfNeeded(); | 901 es.throwIfNeeded(); |
| 902 } | 902 } |
| 903 | 903 |
| 904 static void attrWithSetterExceptionAttributeSetterCallback(v8::Local<v8::String>
, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) | 904 static void attrWithSetterExceptionAttributeSetterCallback(v8::Local<v8::String>
, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) |
| 905 { | 905 { |
| 906 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 906 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 907 TestObjV8Internal::attrWithSetterExceptionAttributeSetter(jsValue, info); | 907 TestObjV8Internal::attrWithSetterExceptionAttributeSetter(jsValue, info); |
| 908 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 908 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 909 } | 909 } |
| 910 | 910 |
| 911 static void stringAttrWithGetterExceptionAttributeGetter(const v8::PropertyCallb
ackInfo<v8::Value>& info) | 911 static void stringAttrWithGetterExceptionAttributeGetter(const v8::PropertyCallb
ackInfo<v8::Value>& info) |
| 912 { | 912 { |
| 913 TestObj* imp = V8TestObject::toNative(info.Holder()); | 913 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 914 ExceptionState es(info.GetIsolate()); | 914 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 915 String jsValue = imp->stringAttrWithGetterException(es); | 915 String jsValue = imp->stringAttrWithGetterException(es); |
| 916 if (UNLIKELY(es.throwIfNeeded())) | 916 if (UNLIKELY(es.throwIfNeeded())) |
| 917 return; | 917 return; |
| 918 v8SetReturnValueString(info, jsValue, info.GetIsolate()); | 918 v8SetReturnValueString(info, jsValue, info.GetIsolate()); |
| 919 } | 919 } |
| 920 | 920 |
| 921 static void stringAttrWithGetterExceptionAttributeGetterCallback(v8::Local<v8::S
tring>, const v8::PropertyCallbackInfo<v8::Value>& info) | 921 static void stringAttrWithGetterExceptionAttributeGetterCallback(v8::Local<v8::S
tring>, const v8::PropertyCallbackInfo<v8::Value>& info) |
| 922 { | 922 { |
| 923 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 923 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 924 TestObjV8Internal::stringAttrWithGetterExceptionAttributeGetter(info); | 924 TestObjV8Internal::stringAttrWithGetterExceptionAttributeGetter(info); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 949 { | 949 { |
| 950 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 950 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 951 TestObjV8Internal::stringAttrWithSetterExceptionAttributeGetter(info); | 951 TestObjV8Internal::stringAttrWithSetterExceptionAttributeGetter(info); |
| 952 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 952 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 953 } | 953 } |
| 954 | 954 |
| 955 static void stringAttrWithSetterExceptionAttributeSetter(v8::Local<v8::Value> js
Value, const v8::PropertyCallbackInfo<void>& info) | 955 static void stringAttrWithSetterExceptionAttributeSetter(v8::Local<v8::Value> js
Value, const v8::PropertyCallbackInfo<void>& info) |
| 956 { | 956 { |
| 957 TestObj* imp = V8TestObject::toNative(info.Holder()); | 957 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 958 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue); | 958 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue); |
| 959 ExceptionState es(info.GetIsolate()); | 959 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 960 imp->setStringAttrWithSetterException(cppValue, es); | 960 imp->setStringAttrWithSetterException(cppValue, es); |
| 961 es.throwIfNeeded(); | 961 es.throwIfNeeded(); |
| 962 } | 962 } |
| 963 | 963 |
| 964 static void stringAttrWithSetterExceptionAttributeSetterCallback(v8::Local<v8::S
tring>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info
) | 964 static void stringAttrWithSetterExceptionAttributeSetterCallback(v8::Local<v8::S
tring>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info
) |
| 965 { | 965 { |
| 966 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 966 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 967 TestObjV8Internal::stringAttrWithSetterExceptionAttributeSetter(jsValue, inf
o); | 967 TestObjV8Internal::stringAttrWithSetterExceptionAttributeSetter(jsValue, inf
o); |
| 968 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 968 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 969 } | 969 } |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1071 static void withActiveWindowAndFirstWindowAttributeAttributeSetterCallback(v8::L
ocal<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<v
oid>& info) | 1071 static void withActiveWindowAndFirstWindowAttributeAttributeSetterCallback(v8::L
ocal<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<v
oid>& info) |
| 1072 { | 1072 { |
| 1073 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 1073 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 1074 TestObjV8Internal::withActiveWindowAndFirstWindowAttributeAttributeSetter(js
Value, info); | 1074 TestObjV8Internal::withActiveWindowAndFirstWindowAttributeAttributeSetter(js
Value, info); |
| 1075 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 1075 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 1076 } | 1076 } |
| 1077 | 1077 |
| 1078 static void withScriptStateAttributeRaisesAttributeGetter(const v8::PropertyCall
backInfo<v8::Value>& info) | 1078 static void withScriptStateAttributeRaisesAttributeGetter(const v8::PropertyCall
backInfo<v8::Value>& info) |
| 1079 { | 1079 { |
| 1080 TestObj* imp = V8TestObject::toNative(info.Holder()); | 1080 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 1081 ExceptionState es(info.GetIsolate()); | 1081 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 1082 ScriptState* currentState = ScriptState::current(); | 1082 ScriptState* currentState = ScriptState::current(); |
| 1083 if (!currentState) | 1083 if (!currentState) |
| 1084 return v8Undefined(); | 1084 return v8Undefined(); |
| 1085 ScriptState& state = *currentState; | 1085 ScriptState& state = *currentState; |
| 1086 RefPtr<TestObj> jsValue = imp->withScriptStateAttributeRaises(&state, es); | 1086 RefPtr<TestObj> jsValue = imp->withScriptStateAttributeRaises(&state, es); |
| 1087 if (UNLIKELY(es.throwIfNeeded())) | 1087 if (UNLIKELY(es.throwIfNeeded())) |
| 1088 return; | 1088 return; |
| 1089 if (state.hadException()) { | 1089 if (state.hadException()) { |
| 1090 throwError(state.exception(), info.GetIsolate()); | 1090 throwError(state.exception(), info.GetIsolate()); |
| 1091 return; | 1091 return; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1116 static void withScriptStateAttributeRaisesAttributeSetterCallback(v8::Local<v8::
String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& inf
o) | 1116 static void withScriptStateAttributeRaisesAttributeSetterCallback(v8::Local<v8::
String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& inf
o) |
| 1117 { | 1117 { |
| 1118 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 1118 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 1119 TestObjV8Internal::withScriptStateAttributeRaisesAttributeSetter(jsValue, in
fo); | 1119 TestObjV8Internal::withScriptStateAttributeRaisesAttributeSetter(jsValue, in
fo); |
| 1120 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 1120 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 1121 } | 1121 } |
| 1122 | 1122 |
| 1123 static void withExecutionContextAttributeRaisesAttributeGetter(const v8::Propert
yCallbackInfo<v8::Value>& info) | 1123 static void withExecutionContextAttributeRaisesAttributeGetter(const v8::Propert
yCallbackInfo<v8::Value>& info) |
| 1124 { | 1124 { |
| 1125 TestObj* imp = V8TestObject::toNative(info.Holder()); | 1125 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 1126 ExceptionState es(info.GetIsolate()); | 1126 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 1127 ExecutionContext* scriptContext = getExecutionContext(); | 1127 ExecutionContext* scriptContext = getExecutionContext(); |
| 1128 RefPtr<TestObj> jsValue = imp->withExecutionContextAttributeRaises(scriptCon
text, es); | 1128 RefPtr<TestObj> jsValue = imp->withExecutionContextAttributeRaises(scriptCon
text, es); |
| 1129 if (UNLIKELY(es.throwIfNeeded())) | 1129 if (UNLIKELY(es.throwIfNeeded())) |
| 1130 return; | 1130 return; |
| 1131 v8SetReturnValueFast(info, jsValue.release(), imp); | 1131 v8SetReturnValueFast(info, jsValue.release(), imp); |
| 1132 } | 1132 } |
| 1133 | 1133 |
| 1134 static void withExecutionContextAttributeRaisesAttributeGetterCallback(v8::Local
<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) | 1134 static void withExecutionContextAttributeRaisesAttributeGetterCallback(v8::Local
<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) |
| 1135 { | 1135 { |
| 1136 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 1136 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1188 static void withExecutionContextAndScriptStateAttributeAttributeSetterCallback(v
8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackIn
fo<void>& info) | 1188 static void withExecutionContextAndScriptStateAttributeAttributeSetterCallback(v
8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackIn
fo<void>& info) |
| 1189 { | 1189 { |
| 1190 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 1190 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 1191 TestObjV8Internal::withExecutionContextAndScriptStateAttributeAttributeSette
r(jsValue, info); | 1191 TestObjV8Internal::withExecutionContextAndScriptStateAttributeAttributeSette
r(jsValue, info); |
| 1192 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 1192 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 1193 } | 1193 } |
| 1194 | 1194 |
| 1195 static void withExecutionContextAndScriptStateAttributeRaisesAttributeGetter(con
st v8::PropertyCallbackInfo<v8::Value>& info) | 1195 static void withExecutionContextAndScriptStateAttributeRaisesAttributeGetter(con
st v8::PropertyCallbackInfo<v8::Value>& info) |
| 1196 { | 1196 { |
| 1197 TestObj* imp = V8TestObject::toNative(info.Holder()); | 1197 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 1198 ExceptionState es(info.GetIsolate()); | 1198 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 1199 ScriptState* currentState = ScriptState::current(); | 1199 ScriptState* currentState = ScriptState::current(); |
| 1200 if (!currentState) | 1200 if (!currentState) |
| 1201 return v8Undefined(); | 1201 return v8Undefined(); |
| 1202 ScriptState& state = *currentState; | 1202 ScriptState& state = *currentState; |
| 1203 ExecutionContext* scriptContext = getExecutionContext(); | 1203 ExecutionContext* scriptContext = getExecutionContext(); |
| 1204 RefPtr<TestObj> jsValue = imp->withExecutionContextAndScriptStateAttributeRa
ises(&state, scriptContext, es); | 1204 RefPtr<TestObj> jsValue = imp->withExecutionContextAndScriptStateAttributeRa
ises(&state, scriptContext, es); |
| 1205 if (UNLIKELY(es.throwIfNeeded())) | 1205 if (UNLIKELY(es.throwIfNeeded())) |
| 1206 return; | 1206 return; |
| 1207 if (state.hadException()) { | 1207 if (state.hadException()) { |
| 1208 throwError(state.exception(), info.GetIsolate()); | 1208 throwError(state.exception(), info.GetIsolate()); |
| (...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1810 static void messagePortArrayAttributeSetterCallback(v8::Local<v8::String>, v8::L
ocal<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) | 1810 static void messagePortArrayAttributeSetterCallback(v8::Local<v8::String>, v8::L
ocal<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) |
| 1811 { | 1811 { |
| 1812 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 1812 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 1813 TestObjV8Internal::messagePortArrayAttributeSetter(jsValue, info); | 1813 TestObjV8Internal::messagePortArrayAttributeSetter(jsValue, info); |
| 1814 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 1814 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 1815 } | 1815 } |
| 1816 | 1816 |
| 1817 static void contentDocumentAttributeGetter(const v8::PropertyCallbackInfo<v8::Va
lue>& info) | 1817 static void contentDocumentAttributeGetter(const v8::PropertyCallbackInfo<v8::Va
lue>& info) |
| 1818 { | 1818 { |
| 1819 TestObj* imp = V8TestObject::toNative(info.Holder()); | 1819 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 1820 ExceptionState es(info.GetIsolate()); | 1820 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 1821 if (!BindingSecurity::shouldAllowAccessToNode(imp->contentDocument(), es)) { | 1821 if (!BindingSecurity::shouldAllowAccessToNode(imp->contentDocument(), es)) { |
| 1822 v8SetReturnValueNull(info); | 1822 v8SetReturnValueNull(info); |
| 1823 es.throwIfNeeded(); | 1823 es.throwIfNeeded(); |
| 1824 return; | 1824 return; |
| 1825 } | 1825 } |
| 1826 v8SetReturnValueFast(info, imp->contentDocument(), imp); | 1826 v8SetReturnValueFast(info, imp->contentDocument(), imp); |
| 1827 } | 1827 } |
| 1828 | 1828 |
| 1829 static void contentDocumentAttributeGetterCallback(v8::Local<v8::String>, const
v8::PropertyCallbackInfo<v8::Value>& info) | 1829 static void contentDocumentAttributeGetterCallback(v8::Local<v8::String>, const
v8::PropertyCallbackInfo<v8::Value>& info) |
| 1830 { | 1830 { |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2067 static void nullableLongSettableAttributeAttributeSetterCallback(v8::Local<v8::S
tring>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info
) | 2067 static void nullableLongSettableAttributeAttributeSetterCallback(v8::Local<v8::S
tring>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info
) |
| 2068 { | 2068 { |
| 2069 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 2069 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 2070 TestObjV8Internal::nullableLongSettableAttributeAttributeSetter(jsValue, inf
o); | 2070 TestObjV8Internal::nullableLongSettableAttributeAttributeSetter(jsValue, inf
o); |
| 2071 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 2071 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 2072 } | 2072 } |
| 2073 | 2073 |
| 2074 static void nullableStringValueAttributeGetter(const v8::PropertyCallbackInfo<v8
::Value>& info) | 2074 static void nullableStringValueAttributeGetter(const v8::PropertyCallbackInfo<v8
::Value>& info) |
| 2075 { | 2075 { |
| 2076 TestObj* imp = V8TestObject::toNative(info.Holder()); | 2076 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 2077 ExceptionState es(info.GetIsolate()); | 2077 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 2078 bool isNull = false; | 2078 bool isNull = false; |
| 2079 int jsValue = imp->nullableStringValue(isNull, es); | 2079 int jsValue = imp->nullableStringValue(isNull, es); |
| 2080 if (isNull) { | 2080 if (isNull) { |
| 2081 v8SetReturnValueNull(info); | 2081 v8SetReturnValueNull(info); |
| 2082 return; | 2082 return; |
| 2083 } | 2083 } |
| 2084 if (UNLIKELY(es.throwIfNeeded())) | 2084 if (UNLIKELY(es.throwIfNeeded())) |
| 2085 return; | 2085 return; |
| 2086 v8SetReturnValueInt(info, jsValue); | 2086 v8SetReturnValueInt(info, jsValue); |
| 2087 } | 2087 } |
| (...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2796 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 2796 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 2797 } | 2797 } |
| 2798 | 2798 |
| 2799 static void locationWithExceptionAttributeSetter(v8::Local<v8::Value> jsValue, c
onst v8::PropertyCallbackInfo<void>& info) | 2799 static void locationWithExceptionAttributeSetter(v8::Local<v8::Value> jsValue, c
onst v8::PropertyCallbackInfo<void>& info) |
| 2800 { | 2800 { |
| 2801 TestObj* proxyImp = V8TestObject::toNative(info.Holder()); | 2801 TestObj* proxyImp = V8TestObject::toNative(info.Holder()); |
| 2802 TestNode* imp = proxyImp->locationWithException(); | 2802 TestNode* imp = proxyImp->locationWithException(); |
| 2803 if (!imp) | 2803 if (!imp) |
| 2804 return; | 2804 return; |
| 2805 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue); | 2805 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue); |
| 2806 ExceptionState es(info.GetIsolate()); | 2806 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 2807 imp->setHrefThrows(cppValue, es); | 2807 imp->setHrefThrows(cppValue, es); |
| 2808 es.throwIfNeeded(); | 2808 es.throwIfNeeded(); |
| 2809 } | 2809 } |
| 2810 | 2810 |
| 2811 static void locationWithExceptionAttributeSetterCallback(v8::Local<v8::String>,
v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) | 2811 static void locationWithExceptionAttributeSetterCallback(v8::Local<v8::String>,
v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) |
| 2812 { | 2812 { |
| 2813 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 2813 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 2814 TestObjV8Internal::locationWithExceptionAttributeSetter(jsValue, info); | 2814 TestObjV8Internal::locationWithExceptionAttributeSetter(jsValue, info); |
| 2815 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 2815 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 2816 } | 2816 } |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2994 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 2994 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 2995 } | 2995 } |
| 2996 | 2996 |
| 2997 static void methodThatRequiresAllArgsAndThrowsMethod(const v8::FunctionCallbackI
nfo<v8::Value>& info) | 2997 static void methodThatRequiresAllArgsAndThrowsMethod(const v8::FunctionCallbackI
nfo<v8::Value>& info) |
| 2998 { | 2998 { |
| 2999 if (UNLIKELY(info.Length() < 2)) { | 2999 if (UNLIKELY(info.Length() < 2)) { |
| 3000 throwTypeError(ExceptionMessages::failedToExecute("methodThatRequiresAll
ArgsAndThrows", "TestObject", ExceptionMessages::notEnoughArguments(2, info.Leng
th())), info.GetIsolate()); | 3000 throwTypeError(ExceptionMessages::failedToExecute("methodThatRequiresAll
ArgsAndThrows", "TestObject", ExceptionMessages::notEnoughArguments(2, info.Leng
th())), info.GetIsolate()); |
| 3001 return; | 3001 return; |
| 3002 } | 3002 } |
| 3003 TestObj* imp = V8TestObject::toNative(info.Holder()); | 3003 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 3004 ExceptionState es(info.GetIsolate()); | 3004 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 3005 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, strArg, info[0]); | 3005 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, strArg, info[0]); |
| 3006 V8TRYCATCH_VOID(TestObj*, objArg, V8TestObject::HasInstance(info[1], info.Ge
tIsolate(), worldType(info.GetIsolate())) ? V8TestObject::toNative(v8::Handle<v8
::Object>::Cast(info[1])) : 0); | 3006 V8TRYCATCH_VOID(TestObj*, objArg, V8TestObject::HasInstance(info[1], info.Ge
tIsolate(), worldType(info.GetIsolate())) ? V8TestObject::toNative(v8::Handle<v8
::Object>::Cast(info[1])) : 0); |
| 3007 RefPtr<TestObj> result = imp->methodThatRequiresAllArgsAndThrows(strArg, obj
Arg, es); | 3007 RefPtr<TestObj> result = imp->methodThatRequiresAllArgsAndThrows(strArg, obj
Arg, es); |
| 3008 if (es.throwIfNeeded()) | 3008 if (es.throwIfNeeded()) |
| 3009 return; | 3009 return; |
| 3010 v8SetReturnValue(info, result.release()); | 3010 v8SetReturnValue(info, result.release()); |
| 3011 } | 3011 } |
| 3012 | 3012 |
| 3013 static void methodThatRequiresAllArgsAndThrowsMethodCallback(const v8::FunctionC
allbackInfo<v8::Value>& info) | 3013 static void methodThatRequiresAllArgsAndThrowsMethodCallback(const v8::FunctionC
allbackInfo<v8::Value>& info) |
| 3014 { | 3014 { |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3061 static void optionsObjectMethodCallback(const v8::FunctionCallbackInfo<v8::Value
>& info) | 3061 static void optionsObjectMethodCallback(const v8::FunctionCallbackInfo<v8::Value
>& info) |
| 3062 { | 3062 { |
| 3063 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 3063 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 3064 TestObjV8Internal::optionsObjectMethod(info); | 3064 TestObjV8Internal::optionsObjectMethod(info); |
| 3065 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 3065 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 3066 } | 3066 } |
| 3067 | 3067 |
| 3068 static void methodWithExceptionMethod(const v8::FunctionCallbackInfo<v8::Value>&
info) | 3068 static void methodWithExceptionMethod(const v8::FunctionCallbackInfo<v8::Value>&
info) |
| 3069 { | 3069 { |
| 3070 TestObj* imp = V8TestObject::toNative(info.Holder()); | 3070 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 3071 ExceptionState es(info.GetIsolate()); | 3071 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 3072 imp->methodWithException(es); | 3072 imp->methodWithException(es); |
| 3073 if (es.throwIfNeeded()) | 3073 if (es.throwIfNeeded()) |
| 3074 return; | 3074 return; |
| 3075 } | 3075 } |
| 3076 | 3076 |
| 3077 static void methodWithExceptionMethodCallback(const v8::FunctionCallbackInfo<v8:
:Value>& info) | 3077 static void methodWithExceptionMethodCallback(const v8::FunctionCallbackInfo<v8:
:Value>& info) |
| 3078 { | 3078 { |
| 3079 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 3079 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 3080 TestObjV8Internal::methodWithExceptionMethod(info); | 3080 TestObjV8Internal::methodWithExceptionMethod(info); |
| 3081 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 3081 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 3093 { | 3093 { |
| 3094 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 3094 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 3095 V8TestObject::customMethodWithArgsMethodCustom(info); | 3095 V8TestObject::customMethodWithArgsMethodCustom(info); |
| 3096 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 3096 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 3097 } | 3097 } |
| 3098 | 3098 |
| 3099 static void addEventListenerMethod(const v8::FunctionCallbackInfo<v8::Value>& in
fo) | 3099 static void addEventListenerMethod(const v8::FunctionCallbackInfo<v8::Value>& in
fo) |
| 3100 { | 3100 { |
| 3101 EventTarget* impl = V8TestObject::toNative(info.Holder()); | 3101 EventTarget* impl = V8TestObject::toNative(info.Holder()); |
| 3102 if (DOMWindow* window = impl->toDOMWindow()) { | 3102 if (DOMWindow* window = impl->toDOMWindow()) { |
| 3103 ExceptionState es(info.GetIsolate()); | 3103 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 3104 if (!BindingSecurity::shouldAllowAccessToFrame(window->frame(), es)) { | 3104 if (!BindingSecurity::shouldAllowAccessToFrame(window->frame(), es)) { |
| 3105 es.throwIfNeeded(); | 3105 es.throwIfNeeded(); |
| 3106 return; | 3106 return; |
| 3107 } | 3107 } |
| 3108 | 3108 |
| 3109 if (!window->document()) | 3109 if (!window->document()) |
| 3110 return; | 3110 return; |
| 3111 } | 3111 } |
| 3112 | 3112 |
| 3113 RefPtr<EventListener> listener = V8EventListenerList::getEventListener(info[
1], false, ListenerFindOrCreate); | 3113 RefPtr<EventListener> listener = V8EventListenerList::getEventListener(info[
1], false, ListenerFindOrCreate); |
| 3114 if (listener) { | 3114 if (listener) { |
| 3115 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<WithNullCheck>, st
ringResource, info[0]); | 3115 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<WithNullCheck>, st
ringResource, info[0]); |
| 3116 impl->addEventListener(stringResource, listener, info[2]->BooleanValue()
); | 3116 impl->addEventListener(stringResource, listener, info[2]->BooleanValue()
); |
| 3117 if (!impl->toNode()) | 3117 if (!impl->toNode()) |
| 3118 createHiddenDependency(info.Holder(), info[1], V8TestObject::eventLi
stenerCacheIndex, info.GetIsolate()); | 3118 createHiddenDependency(info.Holder(), info[1], V8TestObject::eventLi
stenerCacheIndex, info.GetIsolate()); |
| 3119 } | 3119 } |
| 3120 } | 3120 } |
| 3121 | 3121 |
| 3122 static void addEventListenerMethodCallback(const v8::FunctionCallbackInfo<v8::Va
lue>& info) | 3122 static void addEventListenerMethodCallback(const v8::FunctionCallbackInfo<v8::Va
lue>& info) |
| 3123 { | 3123 { |
| 3124 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 3124 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 3125 TestObjV8Internal::addEventListenerMethod(info); | 3125 TestObjV8Internal::addEventListenerMethod(info); |
| 3126 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 3126 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 3127 } | 3127 } |
| 3128 | 3128 |
| 3129 static void removeEventListenerMethod(const v8::FunctionCallbackInfo<v8::Value>&
info) | 3129 static void removeEventListenerMethod(const v8::FunctionCallbackInfo<v8::Value>&
info) |
| 3130 { | 3130 { |
| 3131 EventTarget* impl = V8TestObject::toNative(info.Holder()); | 3131 EventTarget* impl = V8TestObject::toNative(info.Holder()); |
| 3132 if (DOMWindow* window = impl->toDOMWindow()) { | 3132 if (DOMWindow* window = impl->toDOMWindow()) { |
| 3133 ExceptionState es(info.GetIsolate()); | 3133 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 3134 if (!BindingSecurity::shouldAllowAccessToFrame(window->frame(), es)) { | 3134 if (!BindingSecurity::shouldAllowAccessToFrame(window->frame(), es)) { |
| 3135 es.throwIfNeeded(); | 3135 es.throwIfNeeded(); |
| 3136 return; | 3136 return; |
| 3137 } | 3137 } |
| 3138 | 3138 |
| 3139 if (!window->document()) | 3139 if (!window->document()) |
| 3140 return; | 3140 return; |
| 3141 } | 3141 } |
| 3142 | 3142 |
| 3143 RefPtr<EventListener> listener = V8EventListenerList::getEventListener(info[
1], false, ListenerFindOnly); | 3143 RefPtr<EventListener> listener = V8EventListenerList::getEventListener(info[
1], false, ListenerFindOnly); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3199 static void withScriptStateObjMethodCallback(const v8::FunctionCallbackInfo<v8::
Value>& info) | 3199 static void withScriptStateObjMethodCallback(const v8::FunctionCallbackInfo<v8::
Value>& info) |
| 3200 { | 3200 { |
| 3201 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 3201 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 3202 TestObjV8Internal::withScriptStateObjMethod(info); | 3202 TestObjV8Internal::withScriptStateObjMethod(info); |
| 3203 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 3203 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 3204 } | 3204 } |
| 3205 | 3205 |
| 3206 static void withScriptStateVoidExceptionMethod(const v8::FunctionCallbackInfo<v8
::Value>& info) | 3206 static void withScriptStateVoidExceptionMethod(const v8::FunctionCallbackInfo<v8
::Value>& info) |
| 3207 { | 3207 { |
| 3208 TestObj* imp = V8TestObject::toNative(info.Holder()); | 3208 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 3209 ExceptionState es(info.GetIsolate()); | 3209 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 3210 ScriptState* currentState = ScriptState::current(); | 3210 ScriptState* currentState = ScriptState::current(); |
| 3211 if (!currentState) | 3211 if (!currentState) |
| 3212 return; | 3212 return; |
| 3213 ScriptState& state = *currentState; | 3213 ScriptState& state = *currentState; |
| 3214 imp->withScriptStateVoidException(&state, es); | 3214 imp->withScriptStateVoidException(&state, es); |
| 3215 if (es.throwIfNeeded()) | 3215 if (es.throwIfNeeded()) |
| 3216 return; | 3216 return; |
| 3217 if (state.hadException()) { | 3217 if (state.hadException()) { |
| 3218 v8::Local<v8::Value> exception = state.exception(); | 3218 v8::Local<v8::Value> exception = state.exception(); |
| 3219 state.clearException(); | 3219 state.clearException(); |
| 3220 throwError(exception, info.GetIsolate()); | 3220 throwError(exception, info.GetIsolate()); |
| 3221 return; | 3221 return; |
| 3222 } | 3222 } |
| 3223 } | 3223 } |
| 3224 | 3224 |
| 3225 static void withScriptStateVoidExceptionMethodCallback(const v8::FunctionCallbac
kInfo<v8::Value>& info) | 3225 static void withScriptStateVoidExceptionMethodCallback(const v8::FunctionCallbac
kInfo<v8::Value>& info) |
| 3226 { | 3226 { |
| 3227 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 3227 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 3228 TestObjV8Internal::withScriptStateVoidExceptionMethod(info); | 3228 TestObjV8Internal::withScriptStateVoidExceptionMethod(info); |
| 3229 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 3229 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 3230 } | 3230 } |
| 3231 | 3231 |
| 3232 static void withScriptStateObjExceptionMethod(const v8::FunctionCallbackInfo<v8:
:Value>& info) | 3232 static void withScriptStateObjExceptionMethod(const v8::FunctionCallbackInfo<v8:
:Value>& info) |
| 3233 { | 3233 { |
| 3234 TestObj* imp = V8TestObject::toNative(info.Holder()); | 3234 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 3235 ExceptionState es(info.GetIsolate()); | 3235 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 3236 ScriptState* currentState = ScriptState::current(); | 3236 ScriptState* currentState = ScriptState::current(); |
| 3237 if (!currentState) | 3237 if (!currentState) |
| 3238 return; | 3238 return; |
| 3239 ScriptState& state = *currentState; | 3239 ScriptState& state = *currentState; |
| 3240 RefPtr<TestObj> result = imp->withScriptStateObjException(&state, es); | 3240 RefPtr<TestObj> result = imp->withScriptStateObjException(&state, es); |
| 3241 if (es.throwIfNeeded()) | 3241 if (es.throwIfNeeded()) |
| 3242 return; | 3242 return; |
| 3243 if (state.hadException()) { | 3243 if (state.hadException()) { |
| 3244 v8::Local<v8::Value> exception = state.exception(); | 3244 v8::Local<v8::Value> exception = state.exception(); |
| 3245 state.clearException(); | 3245 state.clearException(); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3290 static void withExecutionContextAndScriptStateMethodCallback(const v8::FunctionC
allbackInfo<v8::Value>& info) | 3290 static void withExecutionContextAndScriptStateMethodCallback(const v8::FunctionC
allbackInfo<v8::Value>& info) |
| 3291 { | 3291 { |
| 3292 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 3292 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 3293 TestObjV8Internal::withExecutionContextAndScriptStateMethod(info); | 3293 TestObjV8Internal::withExecutionContextAndScriptStateMethod(info); |
| 3294 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 3294 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 3295 } | 3295 } |
| 3296 | 3296 |
| 3297 static void withExecutionContextAndScriptStateObjExceptionMethod(const v8::Funct
ionCallbackInfo<v8::Value>& info) | 3297 static void withExecutionContextAndScriptStateObjExceptionMethod(const v8::Funct
ionCallbackInfo<v8::Value>& info) |
| 3298 { | 3298 { |
| 3299 TestObj* imp = V8TestObject::toNative(info.Holder()); | 3299 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 3300 ExceptionState es(info.GetIsolate()); | 3300 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 3301 ScriptState* currentState = ScriptState::current(); | 3301 ScriptState* currentState = ScriptState::current(); |
| 3302 if (!currentState) | 3302 if (!currentState) |
| 3303 return; | 3303 return; |
| 3304 ScriptState& state = *currentState; | 3304 ScriptState& state = *currentState; |
| 3305 ExecutionContext* scriptContext = getExecutionContext(); | 3305 ExecutionContext* scriptContext = getExecutionContext(); |
| 3306 RefPtr<TestObj> result = imp->withExecutionContextAndScriptStateObjException
(&state, scriptContext, es); | 3306 RefPtr<TestObj> result = imp->withExecutionContextAndScriptStateObjException
(&state, scriptContext, es); |
| 3307 if (es.throwIfNeeded()) | 3307 if (es.throwIfNeeded()) |
| 3308 return; | 3308 return; |
| 3309 if (state.hadException()) { | 3309 if (state.hadException()) { |
| 3310 v8::Local<v8::Value> exception = state.exception(); | 3310 v8::Local<v8::Value> exception = state.exception(); |
| (...skipping 880 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4191 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 4191 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 4192 } | 4192 } |
| 4193 | 4193 |
| 4194 static void stringArrayFunctionMethod(const v8::FunctionCallbackInfo<v8::Value>&
info) | 4194 static void stringArrayFunctionMethod(const v8::FunctionCallbackInfo<v8::Value>&
info) |
| 4195 { | 4195 { |
| 4196 if (UNLIKELY(info.Length() < 1)) { | 4196 if (UNLIKELY(info.Length() < 1)) { |
| 4197 throwTypeError(ExceptionMessages::failedToExecute("stringArrayFunction",
"TestObject", ExceptionMessages::notEnoughArguments(1, info.Length())), info.Ge
tIsolate()); | 4197 throwTypeError(ExceptionMessages::failedToExecute("stringArrayFunction",
"TestObject", ExceptionMessages::notEnoughArguments(1, info.Length())), info.Ge
tIsolate()); |
| 4198 return; | 4198 return; |
| 4199 } | 4199 } |
| 4200 TestObj* imp = V8TestObject::toNative(info.Holder()); | 4200 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 4201 ExceptionState es(info.GetIsolate()); | 4201 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 4202 V8TRYCATCH_VOID(Vector<String>, values, toNativeArray<String>(info[0], 1, in
fo.GetIsolate())); | 4202 V8TRYCATCH_VOID(Vector<String>, values, toNativeArray<String>(info[0], 1, in
fo.GetIsolate())); |
| 4203 Vector<String> result = imp->stringArrayFunction(values, es); | 4203 Vector<String> result = imp->stringArrayFunction(values, es); |
| 4204 if (es.throwIfNeeded()) | 4204 if (es.throwIfNeeded()) |
| 4205 return; | 4205 return; |
| 4206 v8SetReturnValue(info, v8Array(result, info.GetIsolate())); | 4206 v8SetReturnValue(info, v8Array(result, info.GetIsolate())); |
| 4207 } | 4207 } |
| 4208 | 4208 |
| 4209 static void stringArrayFunctionMethodCallback(const v8::FunctionCallbackInfo<v8:
:Value>& info) | 4209 static void stringArrayFunctionMethodCallback(const v8::FunctionCallbackInfo<v8:
:Value>& info) |
| 4210 { | 4210 { |
| 4211 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 4211 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 4212 TestObjV8Internal::stringArrayFunctionMethod(info); | 4212 TestObjV8Internal::stringArrayFunctionMethod(info); |
| 4213 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 4213 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 4214 } | 4214 } |
| 4215 | 4215 |
| 4216 static void domStringListFunctionMethod(const v8::FunctionCallbackInfo<v8::Value
>& info) | 4216 static void domStringListFunctionMethod(const v8::FunctionCallbackInfo<v8::Value
>& info) |
| 4217 { | 4217 { |
| 4218 if (UNLIKELY(info.Length() < 1)) { | 4218 if (UNLIKELY(info.Length() < 1)) { |
| 4219 throwTypeError(ExceptionMessages::failedToExecute("domStringListFunction
", "TestObject", ExceptionMessages::notEnoughArguments(1, info.Length())), info.
GetIsolate()); | 4219 throwTypeError(ExceptionMessages::failedToExecute("domStringListFunction
", "TestObject", ExceptionMessages::notEnoughArguments(1, info.Length())), info.
GetIsolate()); |
| 4220 return; | 4220 return; |
| 4221 } | 4221 } |
| 4222 TestObj* imp = V8TestObject::toNative(info.Holder()); | 4222 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 4223 ExceptionState es(info.GetIsolate()); | 4223 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 4224 V8TRYCATCH_VOID(DOMStringList*, values, V8DOMStringList::HasInstance(info[0]
, info.GetIsolate(), worldType(info.GetIsolate())) ? V8DOMStringList::toNative(v
8::Handle<v8::Object>::Cast(info[0])) : 0); | 4224 V8TRYCATCH_VOID(DOMStringList*, values, V8DOMStringList::HasInstance(info[0]
, info.GetIsolate(), worldType(info.GetIsolate())) ? V8DOMStringList::toNative(v
8::Handle<v8::Object>::Cast(info[0])) : 0); |
| 4225 RefPtr<DOMStringList> result = imp->domStringListFunction(values, es); | 4225 RefPtr<DOMStringList> result = imp->domStringListFunction(values, es); |
| 4226 if (es.throwIfNeeded()) | 4226 if (es.throwIfNeeded()) |
| 4227 return; | 4227 return; |
| 4228 v8SetReturnValue(info, result.release()); | 4228 v8SetReturnValue(info, result.release()); |
| 4229 } | 4229 } |
| 4230 | 4230 |
| 4231 static void domStringListFunctionMethodCallback(const v8::FunctionCallbackInfo<v
8::Value>& info) | 4231 static void domStringListFunctionMethodCallback(const v8::FunctionCallbackInfo<v
8::Value>& info) |
| 4232 { | 4232 { |
| 4233 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 4233 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 4234 TestObjV8Internal::domStringListFunctionMethod(info); | 4234 TestObjV8Internal::domStringListFunctionMethod(info); |
| 4235 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 4235 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 4236 } | 4236 } |
| 4237 | 4237 |
| 4238 static void getSVGDocumentMethod(const v8::FunctionCallbackInfo<v8::Value>& info
) | 4238 static void getSVGDocumentMethod(const v8::FunctionCallbackInfo<v8::Value>& info
) |
| 4239 { | 4239 { |
| 4240 TestObj* imp = V8TestObject::toNative(info.Holder()); | 4240 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 4241 ExceptionState es(info.GetIsolate()); | 4241 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 4242 if (!BindingSecurity::shouldAllowAccessToNode(imp->getSVGDocument(es), es))
{ | 4242 if (!BindingSecurity::shouldAllowAccessToNode(imp->getSVGDocument(es), es))
{ |
| 4243 v8SetReturnValueNull(info); | 4243 v8SetReturnValueNull(info); |
| 4244 es.throwIfNeeded(); | 4244 es.throwIfNeeded(); |
| 4245 return; | 4245 return; |
| 4246 } | 4246 } |
| 4247 RefPtr<SVGDocument> result = imp->getSVGDocument(es); | 4247 RefPtr<SVGDocument> result = imp->getSVGDocument(es); |
| 4248 if (es.throwIfNeeded()) | 4248 if (es.throwIfNeeded()) |
| 4249 return; | 4249 return; |
| 4250 v8SetReturnValue(info, result.release()); | 4250 v8SetReturnValue(info, result.release()); |
| 4251 } | 4251 } |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4342 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 4342 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 4343 } | 4343 } |
| 4344 | 4344 |
| 4345 static void strictSVGPointMethodMethod(const v8::FunctionCallbackInfo<v8::Value>
& info) | 4345 static void strictSVGPointMethodMethod(const v8::FunctionCallbackInfo<v8::Value>
& info) |
| 4346 { | 4346 { |
| 4347 if (UNLIKELY(info.Length() < 2)) { | 4347 if (UNLIKELY(info.Length() < 2)) { |
| 4348 throwTypeError(ExceptionMessages::failedToExecute("strictSVGPointMethod"
, "TestObject", ExceptionMessages::notEnoughArguments(2, info.Length())), info.G
etIsolate()); | 4348 throwTypeError(ExceptionMessages::failedToExecute("strictSVGPointMethod"
, "TestObject", ExceptionMessages::notEnoughArguments(2, info.Length())), info.G
etIsolate()); |
| 4349 return; | 4349 return; |
| 4350 } | 4350 } |
| 4351 TestObj* imp = V8TestObject::toNative(info.Holder()); | 4351 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 4352 ExceptionState es(info.GetIsolate()); | 4352 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 4353 if (info.Length() > 0 && !isUndefinedOrNull(info[0]) && !V8SVGPoint::HasInst
ance(info[0], info.GetIsolate(), worldType(info.GetIsolate()))) { | 4353 if (info.Length() > 0 && !isUndefinedOrNull(info[0]) && !V8SVGPoint::HasInst
ance(info[0], info.GetIsolate(), worldType(info.GetIsolate()))) { |
| 4354 throwTypeError(ExceptionMessages::failedToExecute("strictSVGPointMethod"
, "TestObject", "parameter 1 is not of type 'SVGPoint'."), info.GetIsolate()); | 4354 throwTypeError(ExceptionMessages::failedToExecute("strictSVGPointMethod"
, "TestObject", "parameter 1 is not of type 'SVGPoint'."), info.GetIsolate()); |
| 4355 return; | 4355 return; |
| 4356 } | 4356 } |
| 4357 V8TRYCATCH_VOID(RefPtr<SVGPropertyTearOff<SVGPoint> >, item, V8SVGPoint::Has
Instance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8SVGPoint:
:toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0); | 4357 V8TRYCATCH_VOID(RefPtr<SVGPropertyTearOff<SVGPoint> >, item, V8SVGPoint::Has
Instance(info[0], info.GetIsolate(), worldType(info.GetIsolate())) ? V8SVGPoint:
:toNative(v8::Handle<v8::Object>::Cast(info[0])) : 0); |
| 4358 V8TRYCATCH_VOID(unsigned, index, toUInt32(info[1])); | 4358 V8TRYCATCH_VOID(unsigned, index, toUInt32(info[1])); |
| 4359 if (!item) { | 4359 if (!item) { |
| 4360 throwUninformativeAndGenericTypeError(info.GetIsolate()); | 4360 throwUninformativeAndGenericTypeError(info.GetIsolate()); |
| 4361 return; | 4361 return; |
| 4362 } | 4362 } |
| (...skipping 23 matching lines...) Expand all Loading... |
| 4386 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 4386 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 4387 } | 4387 } |
| 4388 | 4388 |
| 4389 static void strictFunctionMethod(const v8::FunctionCallbackInfo<v8::Value>& info
) | 4389 static void strictFunctionMethod(const v8::FunctionCallbackInfo<v8::Value>& info
) |
| 4390 { | 4390 { |
| 4391 if (UNLIKELY(info.Length() < 3)) { | 4391 if (UNLIKELY(info.Length() < 3)) { |
| 4392 throwTypeError(ExceptionMessages::failedToExecute("strictFunction", "Tes
tObject", ExceptionMessages::notEnoughArguments(3, info.Length())), info.GetIsol
ate()); | 4392 throwTypeError(ExceptionMessages::failedToExecute("strictFunction", "Tes
tObject", ExceptionMessages::notEnoughArguments(3, info.Length())), info.GetIsol
ate()); |
| 4393 return; | 4393 return; |
| 4394 } | 4394 } |
| 4395 TestObj* imp = V8TestObject::toNative(info.Holder()); | 4395 TestObj* imp = V8TestObject::toNative(info.Holder()); |
| 4396 ExceptionState es(info.GetIsolate()); | 4396 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 4397 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, str, info[0]); | 4397 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, str, info[0]); |
| 4398 V8TRYCATCH_VOID(float, a, static_cast<float>(info[1]->NumberValue())); | 4398 V8TRYCATCH_VOID(float, a, static_cast<float>(info[1]->NumberValue())); |
| 4399 V8TRYCATCH_VOID(int, b, toInt32(info[2])); | 4399 V8TRYCATCH_VOID(int, b, toInt32(info[2])); |
| 4400 bool result = imp->strictFunction(str, a, b, es); | 4400 bool result = imp->strictFunction(str, a, b, es); |
| 4401 if (es.throwIfNeeded()) | 4401 if (es.throwIfNeeded()) |
| 4402 return; | 4402 return; |
| 4403 v8SetReturnValueBool(info, result); | 4403 v8SetReturnValueBool(info, result); |
| 4404 } | 4404 } |
| 4405 | 4405 |
| 4406 static void strictFunctionMethodCallback(const v8::FunctionCallbackInfo<v8::Valu
e>& info) | 4406 static void strictFunctionMethodCallback(const v8::FunctionCallbackInfo<v8::Valu
e>& info) |
| (...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4920 | 4920 |
| 4921 static void namedPropertyGetterCallback(v8::Local<v8::String> name, const v8::Pr
opertyCallbackInfo<v8::Value>& info) | 4921 static void namedPropertyGetterCallback(v8::Local<v8::String> name, const v8::Pr
opertyCallbackInfo<v8::Value>& info) |
| 4922 { | 4922 { |
| 4923 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMNamedProperty"); | 4923 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMNamedProperty"); |
| 4924 TestObjV8Internal::namedPropertyGetter(name, info); | 4924 TestObjV8Internal::namedPropertyGetter(name, info); |
| 4925 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); | 4925 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); |
| 4926 } | 4926 } |
| 4927 | 4927 |
| 4928 static void namedPropertyEnumerator(const v8::PropertyCallbackInfo<v8::Array>& i
nfo) | 4928 static void namedPropertyEnumerator(const v8::PropertyCallbackInfo<v8::Array>& i
nfo) |
| 4929 { | 4929 { |
| 4930 ExceptionState es(info.GetIsolate()); | 4930 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 4931 TestObj* collection = V8TestObject::toNative(info.Holder()); | 4931 TestObj* collection = V8TestObject::toNative(info.Holder()); |
| 4932 Vector<String> names; | 4932 Vector<String> names; |
| 4933 collection->namedPropertyEnumerator(names, es); | 4933 collection->namedPropertyEnumerator(names, es); |
| 4934 if (es.throwIfNeeded()) | 4934 if (es.throwIfNeeded()) |
| 4935 return; | 4935 return; |
| 4936 v8::Handle<v8::Array> v8names = v8::Array::New(names.size()); | 4936 v8::Handle<v8::Array> v8names = v8::Array::New(names.size()); |
| 4937 for (size_t i = 0; i < names.size(); ++i) | 4937 for (size_t i = 0; i < names.size(); ++i) |
| 4938 v8names->Set(v8::Integer::New(i, info.GetIsolate()), v8String(names[i],
info.GetIsolate())); | 4938 v8names->Set(v8::Integer::New(i, info.GetIsolate()), v8String(names[i],
info.GetIsolate())); |
| 4939 v8SetReturnValue(info, v8names); | 4939 v8SetReturnValue(info, v8names); |
| 4940 } | 4940 } |
| 4941 | 4941 |
| 4942 static void namedPropertyQuery(v8::Local<v8::String> name, const v8::PropertyCal
lbackInfo<v8::Integer>& info) | 4942 static void namedPropertyQuery(v8::Local<v8::String> name, const v8::PropertyCal
lbackInfo<v8::Integer>& info) |
| 4943 { | 4943 { |
| 4944 TestObj* collection = V8TestObject::toNative(info.Holder()); | 4944 TestObj* collection = V8TestObject::toNative(info.Holder()); |
| 4945 AtomicString propertyName = toWebCoreAtomicString(name); | 4945 AtomicString propertyName = toWebCoreAtomicString(name); |
| 4946 ExceptionState es(info.GetIsolate()); | 4946 ExceptionState es(info.Holder(), info.GetIsolate()); |
| 4947 bool result = collection->namedPropertyQuery(propertyName, es); | 4947 bool result = collection->namedPropertyQuery(propertyName, es); |
| 4948 if (es.throwIfNeeded()) | 4948 if (es.throwIfNeeded()) |
| 4949 return; | 4949 return; |
| 4950 if (!result) | 4950 if (!result) |
| 4951 return; | 4951 return; |
| 4952 v8SetReturnValueInt(info, v8::None); | 4952 v8SetReturnValueInt(info, v8::None); |
| 4953 } | 4953 } |
| 4954 | 4954 |
| 4955 static void namedPropertyEnumeratorCallback(const v8::PropertyCallbackInfo<v8::A
rray>& info) | 4955 static void namedPropertyEnumeratorCallback(const v8::PropertyCallbackInfo<v8::A
rray>& info) |
| 4956 { | 4956 { |
| (...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5337 V8DOMWrapper::associateObjectWithWrapper<V8TestObject>(impl, &wrapperTypeInf
o, wrapper, isolate, WrapperConfiguration::Independent); | 5337 V8DOMWrapper::associateObjectWithWrapper<V8TestObject>(impl, &wrapperTypeInf
o, wrapper, isolate, WrapperConfiguration::Independent); |
| 5338 return wrapper; | 5338 return wrapper; |
| 5339 } | 5339 } |
| 5340 | 5340 |
| 5341 void V8TestObject::derefObject(void* object) | 5341 void V8TestObject::derefObject(void* object) |
| 5342 { | 5342 { |
| 5343 fromInternalPointer(object)->deref(); | 5343 fromInternalPointer(object)->deref(); |
| 5344 } | 5344 } |
| 5345 | 5345 |
| 5346 } // namespace WebCore | 5346 } // namespace WebCore |
| OLD | NEW |