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

Side by Side Diff: pkg/compiler/lib/src/js_emitter/interceptor_stub_generator.dart

Issue 2595493002: Merge CoreTypes and CoreClasses into CommonElements. (Closed)
Patch Set: Updated cf. comment Created 3 years, 12 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 (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of dart2js.js_emitter; 5 part of dart2js.js_emitter;
6 6
7 class InterceptorStubGenerator { 7 class InterceptorStubGenerator {
8 final Compiler compiler; 8 final Compiler compiler;
9 final Namer namer; 9 final Namer namer;
10 final JavaScriptBackend backend; 10 final JavaScriptBackend backend;
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 r'''{ 155 r'''{
156 if (typeof receiver != "object") { 156 if (typeof receiver != "object") {
157 if (typeof receiver == "function" ) return #; 157 if (typeof receiver == "function" ) return #;
158 return receiver; 158 return receiver;
159 } 159 }
160 if (receiver instanceof #) return receiver; 160 if (receiver instanceof #) return receiver;
161 return #(receiver); 161 return #(receiver);
162 }''', 162 }''',
163 [ 163 [
164 interceptorFor(helpers.jsJavaScriptFunctionClass), 164 interceptorFor(helpers.jsJavaScriptFunctionClass),
165 backend.emitter.constructorAccess(compiler.coreClasses.objectClass), 165 backend.emitter
166 .constructorAccess(compiler.commonElements.objectClass),
166 backend.emitter 167 backend.emitter
167 .staticFunctionAccess(helpers.getNativeInterceptorMethod) 168 .staticFunctionAccess(helpers.getNativeInterceptorMethod)
168 ])); 169 ]));
169 } else { 170 } else {
170 ClassElement jsUnknown = helpers.jsUnknownJavaScriptObjectClass; 171 ClassElement jsUnknown = helpers.jsUnknownJavaScriptObjectClass;
171 if (compiler.codegenWorld.directlyInstantiatedClasses 172 if (compiler.codegenWorld.directlyInstantiatedClasses
172 .contains(jsUnknown)) { 173 .contains(jsUnknown)) {
173 statements.add(js.statement('if (!(receiver instanceof #)) return #;', [ 174 statements.add(js.statement('if (!(receiver instanceof #)) return #;', [
174 backend.emitter.constructorAccess(compiler.coreClasses.objectClass), 175 backend.emitter
176 .constructorAccess(compiler.commonElements.objectClass),
175 interceptorFor(jsUnknown) 177 interceptorFor(jsUnknown)
176 ])); 178 ]));
177 } 179 }
178 180
179 statements.add(js.statement('return receiver')); 181 statements.add(js.statement('return receiver'));
180 } 182 }
181 183
182 return js('''function(receiver) { #; }''', new jsAst.Block(statements)); 184 return js('''function(receiver) { #; }''', new jsAst.Block(statements));
183 } 185 }
184 186
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 394
393 var map = new jsAst.ObjectInitializer(properties); 395 var map = new jsAst.ObjectInitializer(properties);
394 elements.add(map); 396 elements.add(map);
395 } 397 }
396 } 398 }
397 } 399 }
398 400
399 return new jsAst.ArrayInitializer(elements); 401 return new jsAst.ArrayInitializer(elements);
400 } 402 }
401 } 403 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698