| OLD | NEW |
| 1 {% extends 'interface_base.cpp' %} | 1 {% extends 'interface_base.cpp' %} |
| 2 | 2 |
| 3 | 3 |
| 4 {##############################################################################} | 4 {##############################################################################} |
| 5 {% block constructor_getter %} | 5 {% block constructor_getter %} |
| 6 {% if has_constructor_attributes %} | 6 {% if has_constructor_attributes %} |
| 7 static void {{cpp_class}}ConstructorGetter(v8::Local<v8::String>, const v8::Prop
ertyCallbackInfo<v8::Value>& info) | 7 static void {{cpp_class}}ConstructorGetter(v8::Local<v8::String>, const v8::Prop
ertyCallbackInfo<v8::Value>& info) |
| 8 { | 8 { |
| 9 v8::Handle<v8::Value> data = info.Data(); | 9 v8::Handle<v8::Value> data = info.Data(); |
| 10 ASSERT(data->IsExternal()); | 10 ASSERT(data->IsExternal()); |
| (...skipping 1123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1134 return v8::Local<v8::ObjectTemplate>::New(isolate, V8WindowShadowObjectC
acheForNonMainWorld); | 1134 return v8::Local<v8::ObjectTemplate>::New(isolate, V8WindowShadowObjectC
acheForNonMainWorld); |
| 1135 } | 1135 } |
| 1136 } | 1136 } |
| 1137 | 1137 |
| 1138 {% endif %} | 1138 {% endif %} |
| 1139 {% endblock %} | 1139 {% endblock %} |
| 1140 | 1140 |
| 1141 | 1141 |
| 1142 {##############################################################################} | 1142 {##############################################################################} |
| 1143 {% block wrap %} | 1143 {% block wrap %} |
| 1144 {% if not is_script_wrappable %} |
| 1144 {% if special_wrap_for or is_document %} | 1145 {% if special_wrap_for or is_document %} |
| 1145 v8::Handle<v8::Object> wrap({{cpp_class}}* impl, v8::Handle<v8::Object> creation
Context, v8::Isolate* isolate) | 1146 v8::Handle<v8::Object> wrap({{cpp_class}}* impl, v8::Handle<v8::Object> creation
Context, v8::Isolate* isolate) |
| 1146 { | 1147 { |
| 1147 ASSERT(impl); | 1148 ASSERT(impl); |
| 1148 {% for special_wrap_interface in special_wrap_for %} | 1149 {% for special_wrap_interface in special_wrap_for %} |
| 1149 if (impl->is{{special_wrap_interface}}()) | 1150 if (impl->is{{special_wrap_interface}}()) |
| 1150 return wrap(to{{special_wrap_interface}}(impl), creationContext, isolate
); | 1151 return wrap(to{{special_wrap_interface}}(impl), creationContext, isolate
); |
| 1151 {% endfor %} | 1152 {% endfor %} |
| 1152 v8::Handle<v8::Object> wrapper = {{v8_class}}::createWrapper(impl, creationC
ontext, isolate); | 1153 v8::Handle<v8::Object> wrapper = {{v8_class}}::createWrapper(impl, creationC
ontext, isolate); |
| 1153 {% if is_document %} | 1154 {% if is_document %} |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1164 | 1165 |
| 1165 {% elif not has_custom_to_v8 and not has_custom_wrap %} | 1166 {% elif not has_custom_to_v8 and not has_custom_wrap %} |
| 1166 v8::Handle<v8::Object> wrap({{cpp_class}}* impl, v8::Handle<v8::Object> creation
Context, v8::Isolate* isolate) | 1167 v8::Handle<v8::Object> wrap({{cpp_class}}* impl, v8::Handle<v8::Object> creation
Context, v8::Isolate* isolate) |
| 1167 { | 1168 { |
| 1168 ASSERT(impl); | 1169 ASSERT(impl); |
| 1169 ASSERT(!DOMDataStore::containsWrapper<{{v8_class}}>(impl, isolate)); | 1170 ASSERT(!DOMDataStore::containsWrapper<{{v8_class}}>(impl, isolate)); |
| 1170 return {{v8_class}}::createWrapper(impl, creationContext, isolate); | 1171 return {{v8_class}}::createWrapper(impl, creationContext, isolate); |
| 1171 } | 1172 } |
| 1172 | 1173 |
| 1173 {% endif %} | 1174 {% endif %} |
| 1175 {% endif %} |
| 1174 {% endblock %} | 1176 {% endblock %} |
| 1175 | 1177 |
| 1176 | 1178 |
| 1177 {##############################################################################} | 1179 {##############################################################################} |
| 1178 {% block create_wrapper %} | 1180 {% block create_wrapper %} |
| 1179 {% if not has_custom_to_v8 %} | 1181 {% if not has_custom_to_v8 and not is_script_wrappable %} |
| 1180 v8::Handle<v8::Object> {{v8_class}}::createWrapper({{pass_cpp_type}} impl, v8::H
andle<v8::Object> creationContext, v8::Isolate* isolate) | 1182 v8::Handle<v8::Object> {{v8_class}}::createWrapper({{pass_cpp_type}} impl, v8::H
andle<v8::Object> creationContext, v8::Isolate* isolate) |
| 1181 { | 1183 { |
| 1182 ASSERT(impl); | 1184 ASSERT(impl); |
| 1183 ASSERT(!DOMDataStore::containsWrapper<{{v8_class}}>(impl.get(), isolate)); | 1185 ASSERT(!DOMDataStore::containsWrapper<{{v8_class}}>(impl.get(), isolate)); |
| 1184 {% if is_script_wrappable %} | |
| 1185 const WrapperTypeInfo* actualInfo = impl->typeInfo(); | |
| 1186 // Might be a XXXConstructor::wrapperTypeInfo instead of an XXX::wrapperType
Info. These will both have | |
| 1187 // the same object de-ref functions, though, so use that as the basis of the
check. | |
| 1188 RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(actualInfo->derefObjectFunction ==
wrapperTypeInfo.derefObjectFunction); | |
| 1189 {% endif %} | |
| 1190 | 1186 |
| 1191 {% if is_document %} | 1187 {% if is_document %} |
| 1192 if (LocalFrame* frame = impl->frame()) { | 1188 if (LocalFrame* frame = impl->frame()) { |
| 1193 if (frame->script().initializeMainWorld()) { | 1189 if (frame->script().initializeMainWorld()) { |
| 1194 // initializeMainWorld may have created a wrapper for the object, re
try from the start. | 1190 // initializeMainWorld may have created a wrapper for the object, re
try from the start. |
| 1195 v8::Handle<v8::Object> wrapper = DOMDataStore::getWrapper<{{v8_class
}}>(impl.get(), isolate); | 1191 v8::Handle<v8::Object> wrapper = DOMDataStore::getWrapper<{{v8_class
}}>(impl.get(), isolate); |
| 1196 if (!wrapper.IsEmpty()) | 1192 if (!wrapper.IsEmpty()) |
| 1197 return wrapper; | 1193 return wrapper; |
| 1198 } | 1194 } |
| 1199 } | 1195 } |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1263 {% endif %} | 1259 {% endif %} |
| 1264 } | 1260 } |
| 1265 | 1261 |
| 1266 template<> | 1262 template<> |
| 1267 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c
reationContext, v8::Isolate* isolate) | 1263 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c
reationContext, v8::Isolate* isolate) |
| 1268 { | 1264 { |
| 1269 return toV8(impl, creationContext, isolate); | 1265 return toV8(impl, creationContext, isolate); |
| 1270 } | 1266 } |
| 1271 | 1267 |
| 1272 {% endblock %} | 1268 {% endblock %} |
| OLD | NEW |