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

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

Issue 2872613003: Pass data objects directly to NativeEmitter (Closed)
Patch Set: Cleanup Created 3 years, 7 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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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.startup_emitter.model_emitter; 5 part of dart2js.js_emitter.startup_emitter.model_emitter;
6 6
7 /// The name of the property that stores the tear-off getter on a static 7 /// The name of the property that stores the tear-off getter on a static
8 /// function. 8 /// function.
9 /// 9 ///
10 /// This property is only used when isolates are used. 10 /// This property is only used when isolates are used.
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 * loaded dynamically when a deferred library is loaded. 436 * loaded dynamically when a deferred library is loaded.
437 * 437 *
438 * This class is stateless and can be reused for different fragments. 438 * This class is stateless and can be reused for different fragments.
439 */ 439 */
440 class FragmentEmitter { 440 class FragmentEmitter {
441 final Compiler compiler; 441 final Compiler compiler;
442 final Namer namer; 442 final Namer namer;
443 final JavaScriptBackend backend; 443 final JavaScriptBackend backend;
444 final ConstantEmitter constantEmitter; 444 final ConstantEmitter constantEmitter;
445 final ModelEmitter modelEmitter; 445 final ModelEmitter modelEmitter;
446 final InterceptorData _interceptorData;
446 447
447 FragmentEmitter(this.compiler, this.namer, this.backend, this.constantEmitter, 448 FragmentEmitter(this.compiler, this.namer, this.backend, this.constantEmitter,
448 this.modelEmitter); 449 this.modelEmitter, this._interceptorData);
449
450 InterceptorData get _interceptorData =>
451 // TODO(johnniwinther): Pass [InterceptorData] directly?
452 modelEmitter.nativeEmitter.interceptorData;
453 450
454 js.Expression generateEmbeddedGlobalAccess(String global) => 451 js.Expression generateEmbeddedGlobalAccess(String global) =>
455 modelEmitter.generateEmbeddedGlobalAccess(global); 452 modelEmitter.generateEmbeddedGlobalAccess(global);
456 453
457 js.Expression generateConstantReference(ConstantValue value) => 454 js.Expression generateConstantReference(ConstantValue value) =>
458 modelEmitter.generateConstantReference(value); 455 modelEmitter.generateConstantReference(value);
459 456
460 js.Expression classReference(Class cls) { 457 js.Expression classReference(Class cls) {
461 return js.js('#.#', [cls.holder.name, cls.name]); 458 return js.js('#.#', [cls.holder.name, cls.name]);
462 } 459 }
(...skipping 1008 matching lines...) Expand 10 before | Expand all | Expand 10 after
1471 } 1468 }
1472 statements.add(js.js.statement("setOrUpdateInterceptorsByTag(#);", 1469 statements.add(js.js.statement("setOrUpdateInterceptorsByTag(#);",
1473 js.objectLiteral(interceptorsByTag))); 1470 js.objectLiteral(interceptorsByTag)));
1474 statements.add( 1471 statements.add(
1475 js.js.statement("setOrUpdateLeafTags(#);", js.objectLiteral(leafTags))); 1472 js.js.statement("setOrUpdateLeafTags(#);", js.objectLiteral(leafTags)));
1476 statements.addAll(subclassAssignments); 1473 statements.addAll(subclassAssignments);
1477 1474
1478 return wrapPhase('nativeSupport', statements); 1475 return wrapPhase('nativeSupport', statements);
1479 } 1476 }
1480 } 1477 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698