Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(187)

Side by Side Diff: third_party/WebKit/Source/bindings/tests/results/core/V8TestInterfaceEventInit.cpp

Issue 2751263002: [Bindings] Cache handles for dictionary keys on V8PerIsolateData. (Closed)
Patch Set: const Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file has been auto-generated by code_generator_v8.py. 5 // This file has been auto-generated by code_generator_v8.py.
6 // DO NOT MODIFY! 6 // DO NOT MODIFY!
7 7
8 // This file has been generated from the Jinja2 template in 8 // This file has been generated from the Jinja2 template in
9 // third_party/WebKit/Source/bindings/templates/dictionary_v8.cpp.tmpl 9 // third_party/WebKit/Source/bindings/templates/dictionary_v8.cpp.tmpl
10 10
11 // clang-format off 11 // clang-format off
12 #include "V8TestInterfaceEventInit.h" 12 #include "V8TestInterfaceEventInit.h"
13 13
14 #include "bindings/core/v8/ExceptionState.h" 14 #include "bindings/core/v8/ExceptionState.h"
15 #include "bindings/core/v8/IDLTypes.h" 15 #include "bindings/core/v8/IDLTypes.h"
16 #include "bindings/core/v8/NativeValueTraitsImpl.h" 16 #include "bindings/core/v8/NativeValueTraitsImpl.h"
17 #include "bindings/core/v8/V8EventInit.h" 17 #include "bindings/core/v8/V8EventInit.h"
18 18
19 namespace blink { 19 namespace blink {
20 20
21 static const v8::Eternal<v8::Name>* eternalV8TestInterfaceEventInitKeys(v8::Isol ate* isolate) {
22 static const char* const kKeys[] = {
23 "stringMember",
24 };
25 return V8PerIsolateData::from(isolate)->findOrCreateKeys(
26 kKeys, kKeys, WTF_ARRAY_LENGTH(kKeys));
27 }
28
21 void V8TestInterfaceEventInit::toImpl(v8::Isolate* isolate, v8::Local<v8::Value> v8Value, TestInterfaceEventInit& impl, ExceptionState& exceptionState) { 29 void V8TestInterfaceEventInit::toImpl(v8::Isolate* isolate, v8::Local<v8::Value> v8Value, TestInterfaceEventInit& impl, ExceptionState& exceptionState) {
22 if (isUndefinedOrNull(v8Value)) { 30 if (isUndefinedOrNull(v8Value)) {
23 return; 31 return;
24 } 32 }
25 if (!v8Value->IsObject()) { 33 if (!v8Value->IsObject()) {
26 exceptionState.throwTypeError("cannot convert to dictionary."); 34 exceptionState.throwTypeError("cannot convert to dictionary.");
27 return; 35 return;
28 } 36 }
29 v8::Local<v8::Object> v8Object = v8Value.As<v8::Object>(); 37 v8::Local<v8::Object> v8Object = v8Value.As<v8::Object>();
30 ALLOW_UNUSED_LOCAL(v8Object); 38 ALLOW_UNUSED_LOCAL(v8Object);
31 39
32 V8EventInit::toImpl(isolate, v8Value, impl, exceptionState); 40 V8EventInit::toImpl(isolate, v8Value, impl, exceptionState);
33 if (exceptionState.hadException()) 41 if (exceptionState.hadException())
34 return; 42 return;
35 43
44 const v8::Eternal<v8::Name>* keys = eternalV8TestInterfaceEventInitKeys(isolat e);
36 v8::TryCatch block(isolate); 45 v8::TryCatch block(isolate);
46 v8::Local<v8::Context> context = isolate->GetCurrentContext();
37 v8::Local<v8::Value> stringMemberValue; 47 v8::Local<v8::Value> stringMemberValue;
38 if (!v8Object->Get(isolate->GetCurrentContext(), v8AtomicString(isolate, "stri ngMember")).ToLocal(&stringMemberValue)) { 48 if (!v8Object->Get(context, keys[0].Get(isolate)).ToLocal(&stringMemberValue)) {
39 exceptionState.rethrowV8Exception(block.Exception()); 49 exceptionState.rethrowV8Exception(block.Exception());
40 return; 50 return;
41 } 51 }
42 if (stringMemberValue.IsEmpty() || stringMemberValue->IsUndefined()) { 52 if (stringMemberValue.IsEmpty() || stringMemberValue->IsUndefined()) {
43 // Do nothing. 53 // Do nothing.
44 } else { 54 } else {
45 V8StringResource<> stringMember = stringMemberValue; 55 V8StringResource<> stringMember = stringMemberValue;
46 if (!stringMember.prepare(exceptionState)) 56 if (!stringMember.prepare(exceptionState))
47 return; 57 return;
48 impl.setStringMember(stringMember); 58 impl.setStringMember(stringMember);
49 } 59 }
50 } 60 }
51 61
52 v8::Local<v8::Value> TestInterfaceEventInit::toV8Impl(v8::Local<v8::Object> crea tionContext, v8::Isolate* isolate) const { 62 v8::Local<v8::Value> TestInterfaceEventInit::toV8Impl(v8::Local<v8::Object> crea tionContext, v8::Isolate* isolate) const {
53 v8::Local<v8::Object> v8Object = v8::Object::New(isolate); 63 v8::Local<v8::Object> v8Object = v8::Object::New(isolate);
54 if (!toV8TestInterfaceEventInit(*this, v8Object, creationContext, isolate)) 64 if (!toV8TestInterfaceEventInit(*this, v8Object, creationContext, isolate))
55 return v8::Undefined(isolate); 65 return v8::Undefined(isolate);
56 return v8Object; 66 return v8Object;
57 } 67 }
58 68
59 bool toV8TestInterfaceEventInit(const TestInterfaceEventInit& impl, v8::Local<v8 ::Object> dictionary, v8::Local<v8::Object> creationContext, v8::Isolate* isolat e) { 69 bool toV8TestInterfaceEventInit(const TestInterfaceEventInit& impl, v8::Local<v8 ::Object> dictionary, v8::Local<v8::Object> creationContext, v8::Isolate* isolat e) {
60 if (!toV8EventInit(impl, dictionary, creationContext, isolate)) 70 if (!toV8EventInit(impl, dictionary, creationContext, isolate))
61 return false; 71 return false;
62 72
73 const v8::Eternal<v8::Name>* keys = eternalV8TestInterfaceEventInitKeys(isolat e);
74 v8::Local<v8::Context> context = isolate->GetCurrentContext();
63 if (impl.hasStringMember()) { 75 if (impl.hasStringMember()) {
64 if (!v8CallBoolean(dictionary->CreateDataProperty(isolate->GetCurrentContext (), v8AtomicString(isolate, "stringMember"), v8String(isolate, impl.stringMember ())))) 76 if (!v8CallBoolean(dictionary->CreateDataProperty(context, keys[0].Get(isola te), v8String(isolate, impl.stringMember()))))
65 return false; 77 return false;
66 } 78 }
67 79
68 return true; 80 return true;
69 } 81 }
70 82
71 TestInterfaceEventInit NativeValueTraits<TestInterfaceEventInit>::nativeValue(v8 ::Isolate* isolate, v8::Local<v8::Value> value, ExceptionState& exceptionState) { 83 TestInterfaceEventInit NativeValueTraits<TestInterfaceEventInit>::nativeValue(v8 ::Isolate* isolate, v8::Local<v8::Value> value, ExceptionState& exceptionState) {
72 TestInterfaceEventInit impl; 84 TestInterfaceEventInit impl;
73 V8TestInterfaceEventInit::toImpl(isolate, value, impl, exceptionState); 85 V8TestInterfaceEventInit::toImpl(isolate, value, impl, exceptionState);
74 return impl; 86 return impl;
75 } 87 }
76 88
77 } // namespace blink 89 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698