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

Side by Side Diff: Source/bindings/tests/results/modules/V8TestInterfacePartial.cpp

Issue 946973005: IDL: Drop value conversion (V8 -> C++) macros from generated code (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 10 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. DO NOT MODIFY! 5 // This file has been auto-generated by code_generator_v8.py. DO NOT MODIFY!
6 6
7 #include "config.h" 7 #include "config.h"
8 #if ENABLE(CONDITION) 8 #if ENABLE(CONDITION)
9 #include "V8TestInterfacePartial.h" 9 #include "V8TestInterfacePartial.h"
10 10
(...skipping 21 matching lines...) Expand all
32 32
33 namespace blink { 33 namespace blink {
34 34
35 namespace TestInterfaceImplementationPartialV8Internal { 35 namespace TestInterfaceImplementationPartialV8Internal {
36 36
37 static void voidMethodPartialOverload3Method(const v8::FunctionCallbackInfo<v8:: Value>& info) 37 static void voidMethodPartialOverload3Method(const v8::FunctionCallbackInfo<v8:: Value>& info)
38 { 38 {
39 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); 39 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder());
40 V8StringResource<> value; 40 V8StringResource<> value;
41 { 41 {
42 TOSTRING_VOID_INTERNAL(value, info[0]); 42 TONATIVE_CONVERT((value = info[0]).prepare(), return);
43 } 43 }
44 TestPartialInterfaceImplementation3::voidMethodPartialOverload(*impl, value) ; 44 TestPartialInterfaceImplementation3::voidMethodPartialOverload(*impl, value) ;
45 } 45 }
46 46
47 static void voidMethodPartialOverloadMethod(const v8::FunctionCallbackInfo<v8::V alue>& info) 47 static void voidMethodPartialOverloadMethod(const v8::FunctionCallbackInfo<v8::V alue>& info)
48 { 48 {
49 ExceptionState exceptionState(ExceptionState::ExecutionContext, "voidMethodP artialOverload", "TestInterface", info.Holder(), info.GetIsolate()); 49 ExceptionState exceptionState(ExceptionState::ExecutionContext, "voidMethodP artialOverload", "TestInterface", info.Holder(), info.GetIsolate());
50 switch (std::min(1, info.Length())) { 50 switch (std::min(1, info.Length())) {
51 case 0: 51 case 0:
52 break; 52 break;
53 case 1: 53 case 1:
54 if (true) { 54 if (true) {
55 voidMethodPartialOverload3Method(info); 55 voidMethodPartialOverload3Method(info);
56 return; 56 return;
57 } 57 }
58 break; 58 break;
59 default: 59 default:
60 break; 60 break;
61 } 61 }
62 exceptionState.throwTypeError("No function was found that matched the signat ure provided."); 62 exceptionState.throwTypeError("No function was found that matched the signat ure provided.");
63 exceptionState.throwIfNeeded(); 63 exceptionState.throwIfNeeded();
64 return;
64 } 65 }
65 66
66 static void staticVoidMethodPartialOverload2Method(const v8::FunctionCallbackInf o<v8::Value>& info) 67 static void staticVoidMethodPartialOverload2Method(const v8::FunctionCallbackInf o<v8::Value>& info)
67 { 68 {
68 V8StringResource<> value; 69 V8StringResource<> value;
69 { 70 {
70 TOSTRING_VOID_INTERNAL(value, info[0]); 71 TONATIVE_CONVERT((value = info[0]).prepare(), return);
71 } 72 }
72 TestPartialInterfaceImplementation3::staticVoidMethodPartialOverload(value); 73 TestPartialInterfaceImplementation3::staticVoidMethodPartialOverload(value);
73 } 74 }
74 75
75 static void staticVoidMethodPartialOverloadMethod(const v8::FunctionCallbackInfo <v8::Value>& info) 76 static void staticVoidMethodPartialOverloadMethod(const v8::FunctionCallbackInfo <v8::Value>& info)
76 { 77 {
77 ExceptionState exceptionState(ExceptionState::ExecutionContext, "staticVoidM ethodPartialOverload", "TestInterface", info.Holder(), info.GetIsolate()); 78 ExceptionState exceptionState(ExceptionState::ExecutionContext, "staticVoidM ethodPartialOverload", "TestInterface", info.Holder(), info.GetIsolate());
78 switch (std::min(1, info.Length())) { 79 switch (std::min(1, info.Length())) {
79 case 0: 80 case 0:
80 break; 81 break;
81 case 1: 82 case 1:
82 if (true) { 83 if (true) {
83 staticVoidMethodPartialOverload2Method(info); 84 staticVoidMethodPartialOverload2Method(info);
84 return; 85 return;
85 } 86 }
86 break; 87 break;
87 default: 88 default:
88 break; 89 break;
89 } 90 }
90 exceptionState.throwTypeError("No function was found that matched the signat ure provided."); 91 exceptionState.throwTypeError("No function was found that matched the signat ure provided.");
91 exceptionState.throwIfNeeded(); 92 exceptionState.throwIfNeeded();
93 return;
92 } 94 }
93 95
94 static void promiseMethodPartialOverload3Method(const v8::FunctionCallbackInfo<v 8::Value>& info) 96 static void promiseMethodPartialOverload3Method(const v8::FunctionCallbackInfo<v 8::Value>& info)
95 { 97 {
96 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); 98 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder());
97 Document* document; 99 Document* document;
98 { 100 {
99 document = V8Document::toImplWithTypeCheck(info.GetIsolate(), info[0]); 101 document = V8Document::toImplWithTypeCheck(info.GetIsolate(), info[0]);
100 if (!document) { 102 if (!document) {
101 v8SetReturnValue(info, ScriptPromise::rejectRaw(info.GetIsolate(), V 8ThrowException::createTypeError(info.GetIsolate(), ExceptionMessages::failedToE xecute("promiseMethodPartialOverload", "TestInterface", "parameter 1 is not of t ype 'Document'.")))); 103 v8SetReturnValue(info, ScriptPromise::rejectRaw(info.GetIsolate(), V 8ThrowException::createTypeError(info.GetIsolate(), ExceptionMessages::failedToE xecute("promiseMethodPartialOverload", "TestInterface", "parameter 1 is not of t ype 'Document'."))));
(...skipping 13 matching lines...) Expand all
115 if (V8Document::hasInstance(info[0], info.GetIsolate())) { 117 if (V8Document::hasInstance(info[0], info.GetIsolate())) {
116 promiseMethodPartialOverload3Method(info); 118 promiseMethodPartialOverload3Method(info);
117 return; 119 return;
118 } 120 }
119 break; 121 break;
120 default: 122 default:
121 break; 123 break;
122 } 124 }
123 exceptionState.throwTypeError("No function was found that matched the signat ure provided."); 125 exceptionState.throwTypeError("No function was found that matched the signat ure provided.");
124 v8SetReturnValue(info, exceptionState.reject(ScriptState::current(info.GetIs olate())).v8Value()); 126 v8SetReturnValue(info, exceptionState.reject(ScriptState::current(info.GetIs olate())).v8Value());
127 return;
128 }
129
130 static void staticPromiseMethodPartialOverload2MethodPromise(const v8::FunctionC allbackInfo<v8::Value>& info, ExceptionState& exceptionState)
131 {
132 V8StringResource<> value;
133 {
134 TONATIVE_CONVERT((value = info[0]).prepare(exceptionState), return);
135 }
136 v8SetReturnValue(info, TestPartialInterfaceImplementation3::staticPromiseMet hodPartialOverload(value).v8Value());
125 } 137 }
126 138
127 static void staticPromiseMethodPartialOverload2Method(const v8::FunctionCallback Info<v8::Value>& info) 139 static void staticPromiseMethodPartialOverload2Method(const v8::FunctionCallback Info<v8::Value>& info)
128 { 140 {
129 ExceptionState exceptionState(ExceptionState::ExecutionContext, "staticPromi seMethodPartialOverload", "TestInterface", info.Holder(), info.GetIsolate()); 141 ExceptionState exceptionState(ExceptionState::ExecutionContext, "staticPromi seMethodPartialOverload", "TestInterface", info.Holder(), info.GetIsolate());
130 V8StringResource<> value; 142 staticPromiseMethodPartialOverload2MethodPromise(info, exceptionState);
131 { 143 if (exceptionState.hadException())
132 TOSTRING_VOID_EXCEPTIONSTATE_PROMISE_INTERNAL(value, info[0], exceptionS tate, info, ScriptState::current(info.GetIsolate())); 144 v8SetReturnValue(info, exceptionState.reject(ScriptState::current(info.G etIsolate())).v8Value());
133 }
134 v8SetReturnValue(info, TestPartialInterfaceImplementation3::staticPromiseMet hodPartialOverload(value).v8Value());
135 } 145 }
136 146
137 static void staticPromiseMethodPartialOverloadMethod(const v8::FunctionCallbackI nfo<v8::Value>& info) 147 static void staticPromiseMethodPartialOverloadMethod(const v8::FunctionCallbackI nfo<v8::Value>& info)
138 { 148 {
139 ExceptionState exceptionState(ExceptionState::ExecutionContext, "staticPromi seMethodPartialOverload", "TestInterface", info.Holder(), info.GetIsolate()); 149 ExceptionState exceptionState(ExceptionState::ExecutionContext, "staticPromi seMethodPartialOverload", "TestInterface", info.Holder(), info.GetIsolate());
140 switch (std::min(1, info.Length())) { 150 switch (std::min(1, info.Length())) {
141 case 0: 151 case 0:
142 break; 152 break;
143 case 1: 153 case 1:
144 if (true) { 154 if (true) {
145 staticPromiseMethodPartialOverload2Method(info); 155 staticPromiseMethodPartialOverload2Method(info);
146 return; 156 return;
147 } 157 }
148 break; 158 break;
149 default: 159 default:
150 break; 160 break;
151 } 161 }
152 exceptionState.throwTypeError("No function was found that matched the signat ure provided."); 162 exceptionState.throwTypeError("No function was found that matched the signat ure provided.");
153 v8SetReturnValue(info, exceptionState.reject(ScriptState::current(info.GetIs olate())).v8Value()); 163 v8SetReturnValue(info, exceptionState.reject(ScriptState::current(info.GetIs olate())).v8Value());
164 return;
154 } 165 }
155 166
156 static void partial2VoidMethod2Method(const v8::FunctionCallbackInfo<v8::Value>& info) 167 static void partial2VoidMethod2Method(const v8::FunctionCallbackInfo<v8::Value>& info)
157 { 168 {
158 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); 169 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder());
159 V8StringResource<> value; 170 V8StringResource<> value;
160 { 171 {
161 TOSTRING_VOID_INTERNAL(value, info[0]); 172 TONATIVE_CONVERT((value = info[0]).prepare(), return);
162 } 173 }
163 TestPartialInterfaceImplementation3::partial2VoidMethod(*impl, value); 174 TestPartialInterfaceImplementation3::partial2VoidMethod(*impl, value);
164 } 175 }
165 176
166 static void partial2VoidMethod3Method(const v8::FunctionCallbackInfo<v8::Value>& info) 177 static void partial2VoidMethod3Method(const v8::FunctionCallbackInfo<v8::Value>& info)
167 { 178 {
168 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); 179 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder());
169 Node* node; 180 Node* node;
170 { 181 {
171 node = V8Node::toImplWithTypeCheck(info.GetIsolate(), info[0]); 182 node = V8Node::toImplWithTypeCheck(info.GetIsolate(), info[0]);
(...skipping 19 matching lines...) Expand all
191 if (true) { 202 if (true) {
192 partial2VoidMethod2Method(info); 203 partial2VoidMethod2Method(info);
193 return; 204 return;
194 } 205 }
195 break; 206 break;
196 default: 207 default:
197 break; 208 break;
198 } 209 }
199 exceptionState.throwTypeError("No function was found that matched the signat ure provided."); 210 exceptionState.throwTypeError("No function was found that matched the signat ure provided.");
200 exceptionState.throwIfNeeded(); 211 exceptionState.throwIfNeeded();
212 return;
201 } 213 }
202 214
203 static void partialVoidTestEnumModulesArgMethodMethod(const v8::FunctionCallback Info<v8::Value>& info) 215 static void partialVoidTestEnumModulesArgMethodMethod(const v8::FunctionCallback Info<v8::Value>& info)
204 { 216 {
205 if (UNLIKELY(info.Length() < 1)) { 217 if (UNLIKELY(info.Length() < 1)) {
206 V8ThrowException::throwException(createMinimumArityTypeErrorForMethod(in fo.GetIsolate(), "partialVoidTestEnumModulesArgMethod", "TestInterface", 1, info .Length()), info.GetIsolate()); 218 V8ThrowException::throwException(createMinimumArityTypeErrorForMethod(in fo.GetIsolate(), "partialVoidTestEnumModulesArgMethod", "TestInterface", 1, info .Length()), info.GetIsolate());
207 return; 219 return;
208 } 220 }
209 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); 221 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder());
210 V8StringResource<> arg; 222 V8StringResource<> arg;
211 { 223 {
212 TOSTRING_VOID_INTERNAL(arg, info[0]); 224 TONATIVE_CONVERT((arg = info[0]).prepare(), return);
213 String string = arg; 225 String string = arg;
214 if (!(string == "EnumModulesValue1" || string == "EnumModulesValue2")) { 226 if (!(string == "EnumModulesValue1" || string == "EnumModulesValue2")) {
215 V8ThrowException::throwTypeError(info.GetIsolate(), ExceptionMessage s::failedToExecute("partialVoidTestEnumModulesArgMethod", "TestInterface", "para meter 1 ('" + string + "') is not a valid enum value.")); 227 V8ThrowException::throwTypeError(info.GetIsolate(), ExceptionMessage s::failedToExecute("partialVoidTestEnumModulesArgMethod", "TestInterface", "para meter 1 ('" + string + "') is not a valid enum value."));
216 return; 228 return;
217 } 229 }
218 } 230 }
219 TestPartialInterfaceImplementation3::partialVoidTestEnumModulesArgMethod(*im pl, arg); 231 TestPartialInterfaceImplementation3::partialVoidTestEnumModulesArgMethod(*im pl, arg);
220 } 232 }
221 233
222 static void partialVoidTestEnumModulesArgMethodMethodCallback(const v8::Function CallbackInfo<v8::Value>& info) 234 static void partialVoidTestEnumModulesArgMethodMethodCallback(const v8::Function CallbackInfo<v8::Value>& info)
223 { 235 {
224 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); 236 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod");
225 TestInterfaceImplementationPartialV8Internal::partialVoidTestEnumModulesArgM ethodMethod(info); 237 TestInterfaceImplementationPartialV8Internal::partialVoidTestEnumModulesArgM ethodMethod(info);
226 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); 238 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution");
227 } 239 }
228 240
229 static void partial2StaticVoidMethod2Method(const v8::FunctionCallbackInfo<v8::V alue>& info) 241 static void partial2StaticVoidMethod2Method(const v8::FunctionCallbackInfo<v8::V alue>& info)
230 { 242 {
231 V8StringResource<> value; 243 V8StringResource<> value;
232 { 244 {
233 TOSTRING_VOID_INTERNAL(value, info[0]); 245 TONATIVE_CONVERT((value = info[0]).prepare(), return);
234 } 246 }
235 TestPartialInterfaceImplementation3::partial2StaticVoidMethod(value); 247 TestPartialInterfaceImplementation3::partial2StaticVoidMethod(value);
236 } 248 }
237 249
238 static void partial2StaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Va lue>& info) 250 static void partial2StaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Va lue>& info)
239 { 251 {
240 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partial2Sta ticVoidMethod", "TestInterface", info.Holder(), info.GetIsolate()); 252 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partial2Sta ticVoidMethod", "TestInterface", info.Holder(), info.GetIsolate());
241 switch (std::min(1, info.Length())) { 253 switch (std::min(1, info.Length())) {
242 case 0: 254 case 0:
243 break; 255 break;
244 case 1: 256 case 1:
245 if (true) { 257 if (true) {
246 partial2StaticVoidMethod2Method(info); 258 partial2StaticVoidMethod2Method(info);
247 return; 259 return;
248 } 260 }
249 break; 261 break;
250 default: 262 default:
251 break; 263 break;
252 } 264 }
253 exceptionState.throwTypeError("No function was found that matched the signat ure provided."); 265 exceptionState.throwTypeError("No function was found that matched the signat ure provided.");
254 exceptionState.throwIfNeeded(); 266 exceptionState.throwIfNeeded();
267 return;
255 } 268 }
256 269
257 } // namespace TestInterfaceImplementationPartialV8Internal 270 } // namespace TestInterfaceImplementationPartialV8Internal
258 271
259 void V8TestInterfacePartial::installV8TestInterfaceTemplate(v8::Local<v8::Functi onTemplate> functionTemplate, v8::Isolate* isolate) 272 void V8TestInterfacePartial::installV8TestInterfaceTemplate(v8::Local<v8::Functi onTemplate> functionTemplate, v8::Isolate* isolate)
260 { 273 {
261 V8TestInterface::installV8TestInterfaceTemplate(functionTemplate, isolate); 274 V8TestInterface::installV8TestInterfaceTemplate(functionTemplate, isolate);
262 275
263 v8::Local<v8::Signature> defaultSignature; 276 v8::Local<v8::Signature> defaultSignature;
264 if (!RuntimeEnabledFeatures::featureNameEnabled()) 277 if (!RuntimeEnabledFeatures::featureNameEnabled())
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 320
308 ScriptState::Scope scope(scriptState); 321 ScriptState::Scope scope(scriptState);
309 v8::Local<v8::Value> holder = toV8(holderImpl, scriptState->context()->Globa l(), scriptState->isolate()); 322 v8::Local<v8::Value> holder = toV8(holderImpl, scriptState->context()->Globa l(), scriptState->isolate());
310 323
311 v8::Local<v8::Value> valueHandle = v8::Integer::New(scriptState->isolate(), value); 324 v8::Local<v8::Value> valueHandle = v8::Integer::New(scriptState->isolate(), value);
312 v8::Local<v8::Value> argv[] = { valueHandle }; 325 v8::Local<v8::Value> argv[] = { valueHandle };
313 ExceptionState exceptionState(ExceptionState::ExecutionContext, "shortMethod WithShortArgumentImplementedInPrivateScript", "TestInterfaceImplementation", scr iptState->context()->Global(), scriptState->isolate()); 326 ExceptionState exceptionState(ExceptionState::ExecutionContext, "shortMethod WithShortArgumentImplementedInPrivateScript", "TestInterfaceImplementation", scr iptState->context()->Global(), scriptState->isolate());
314 v8::Local<v8::Value> v8Value = PrivateScriptRunner::runDOMMethod(scriptState , scriptStateInUserScript, "TestInterfaceImplementation", "shortMethodWithShortA rgumentImplementedInPrivateScript", holder, 1, argv); 327 v8::Local<v8::Value> v8Value = PrivateScriptRunner::runDOMMethod(scriptState , scriptStateInUserScript, "TestInterfaceImplementation", "shortMethodWithShortA rgumentImplementedInPrivateScript", holder, 1, argv);
315 if (v8Value.IsEmpty()) 328 if (v8Value.IsEmpty())
316 return false; 329 return false;
317 TONATIVE_DEFAULT_EXCEPTIONSTATE(int, cppValue, toInt16(v8Value, exceptionSta te), exceptionState, false); 330 TONATIVE_DECLARE(int, cppValue, convertAndThrow(cppValue = toInt16(v8Value, exceptionState), exceptionState), return false);
318 *result = cppValue; 331 *result = cppValue;
319 RELEASE_ASSERT(!exceptionState.hadException()); 332 RELEASE_ASSERT(!exceptionState.hadException());
320 return true; 333 return true;
321 } 334 }
322 335
323 void V8TestInterfacePartial::initialize() 336 void V8TestInterfacePartial::initialize()
324 { 337 {
325 // Should be invoked from initModules. 338 // Should be invoked from initModules.
326 V8TestInterface::updateWrapperTypeInfo( 339 V8TestInterface::updateWrapperTypeInfo(
327 &V8TestInterfacePartial::installV8TestInterfaceTemplate, 340 &V8TestInterfacePartial::installV8TestInterfaceTemplate,
328 &V8TestInterfacePartial::installConditionallyEnabledMethods); 341 &V8TestInterfacePartial::installConditionallyEnabledMethods);
329 V8TestInterface::registerVoidMethodPartialOverloadMethodForPartialInterface( &TestInterfaceImplementationPartialV8Internal::voidMethodPartialOverloadMethod); 342 V8TestInterface::registerVoidMethodPartialOverloadMethodForPartialInterface( &TestInterfaceImplementationPartialV8Internal::voidMethodPartialOverloadMethod);
330 V8TestInterface::registerStaticVoidMethodPartialOverloadMethodForPartialInte rface(&TestInterfaceImplementationPartialV8Internal::staticVoidMethodPartialOver loadMethod); 343 V8TestInterface::registerStaticVoidMethodPartialOverloadMethodForPartialInte rface(&TestInterfaceImplementationPartialV8Internal::staticVoidMethodPartialOver loadMethod);
331 V8TestInterface::registerPromiseMethodPartialOverloadMethodForPartialInterfa ce(&TestInterfaceImplementationPartialV8Internal::promiseMethodPartialOverloadMe thod); 344 V8TestInterface::registerPromiseMethodPartialOverloadMethodForPartialInterfa ce(&TestInterfaceImplementationPartialV8Internal::promiseMethodPartialOverloadMe thod);
332 V8TestInterface::registerStaticPromiseMethodPartialOverloadMethodForPartialI nterface(&TestInterfaceImplementationPartialV8Internal::staticPromiseMethodParti alOverloadMethod); 345 V8TestInterface::registerStaticPromiseMethodPartialOverloadMethodForPartialI nterface(&TestInterfaceImplementationPartialV8Internal::staticPromiseMethodParti alOverloadMethod);
333 V8TestInterface::registerPartial2VoidMethodMethodForPartialInterface(&TestIn terfaceImplementationPartialV8Internal::partial2VoidMethodMethod); 346 V8TestInterface::registerPartial2VoidMethodMethodForPartialInterface(&TestIn terfaceImplementationPartialV8Internal::partial2VoidMethodMethod);
334 V8TestInterface::registerPartial2StaticVoidMethodMethodForPartialInterface(& TestInterfaceImplementationPartialV8Internal::partial2StaticVoidMethodMethod); 347 V8TestInterface::registerPartial2StaticVoidMethodMethodForPartialInterface(& TestInterfaceImplementationPartialV8Internal::partial2StaticVoidMethodMethod);
335 } 348 }
336 349
337 } // namespace blink 350 } // namespace blink
338 #endif // ENABLE(CONDITION) 351 #endif // ENABLE(CONDITION)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698