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

Side by Side Diff: pkg/compiler/lib/src/js_backend/backend.dart

Issue 2937203002: Add J-elements (Closed)
Patch Set: Updated cf. comments Created 3 years, 6 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 library js_backend.backend; 5 library js_backend.backend;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../common/backend_api.dart' 8 import '../common/backend_api.dart'
9 show ForeignResolver, NativeRegistry, ImpactTransformer; 9 show ForeignResolver, NativeRegistry, ImpactTransformer;
10 import '../common/codegen.dart' show CodegenWorkItem; 10 import '../common/codegen.dart' show CodegenWorkItem;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 import 'native_data.dart'; 71 import 'native_data.dart';
72 import 'no_such_method_registry.dart'; 72 import 'no_such_method_registry.dart';
73 import 'patch_resolver.dart'; 73 import 'patch_resolver.dart';
74 import 'resolution_listener.dart'; 74 import 'resolution_listener.dart';
75 import 'runtime_types.dart'; 75 import 'runtime_types.dart';
76 import 'type_variable_handler.dart'; 76 import 'type_variable_handler.dart';
77 77
78 const VERBOSE_OPTIMIZER_HINTS = false; 78 const VERBOSE_OPTIMIZER_HINTS = false;
79 79
80 abstract class FunctionCompiler { 80 abstract class FunctionCompiler {
81 void onCodegenStart();
82
81 /// Generates JavaScript code for `work.element`. 83 /// Generates JavaScript code for `work.element`.
82 jsAst.Fun compile(CodegenWorkItem work, ClosedWorld closedWorld); 84 jsAst.Fun compile(CodegenWorkItem work, ClosedWorld closedWorld);
83 85
84 Iterable get tasks; 86 Iterable get tasks;
85 } 87 }
86 88
87 /* 89 /*
88 * Invariants: 90 * Invariants:
89 * canInline(function) implies canInline(function, insideLoop:true) 91 * canInline(function) implies canInline(function, insideLoop:true)
90 * !canInline(function, insideLoop: true) implies !canInline(function) 92 * !canInline(function, insideLoop: true) implies !canInline(function)
(...skipping 964 matching lines...) Expand 10 before | Expand all | Expand 10 after
1055 ..add(commonElements.objectClass) 1057 ..add(commonElements.objectClass)
1056 ..add(commonElements.jsInterceptorClass) 1058 ..add(commonElements.jsInterceptorClass)
1057 ..add(commonElements.jsNullClass); 1059 ..add(commonElements.jsNullClass);
1058 } 1060 }
1059 } 1061 }
1060 1062
1061 /// Called when the compiler starts running the codegen enqueuer. The 1063 /// Called when the compiler starts running the codegen enqueuer. The
1062 /// [WorldImpact] of enabled backend features is returned. 1064 /// [WorldImpact] of enabled backend features is returned.
1063 WorldImpact onCodegenStart( 1065 WorldImpact onCodegenStart(
1064 ClosedWorld closedWorld, CodegenWorldBuilder codegenWorldBuilder) { 1066 ClosedWorld closedWorld, CodegenWorldBuilder codegenWorldBuilder) {
1067 functionCompiler.onCodegenStart();
1065 _oneShotInterceptorData = new OneShotInterceptorData( 1068 _oneShotInterceptorData = new OneShotInterceptorData(
1066 closedWorld.interceptorData, closedWorld.commonElements); 1069 closedWorld.interceptorData, closedWorld.commonElements);
1067 _namer = determineNamer(closedWorld, codegenWorldBuilder); 1070 _namer = determineNamer(closedWorld, codegenWorldBuilder);
1068 tracer = new Tracer(closedWorld, namer, compiler); 1071 tracer = new Tracer(closedWorld, namer, compiler);
1069 _rtiEncoder = _namer.rtiEncoder = new RuntimeTypesEncoderImpl( 1072 _rtiEncoder = _namer.rtiEncoder = new RuntimeTypesEncoderImpl(
1070 namer, closedWorld.elementEnvironment, closedWorld.commonElements); 1073 namer, closedWorld.elementEnvironment, closedWorld.commonElements);
1071 emitter.createEmitter(namer, closedWorld, codegenWorldBuilder); 1074 emitter.createEmitter(namer, closedWorld, codegenWorldBuilder);
1072 _codegenImpactTransformer = new CodegenImpactTransformer( 1075 _codegenImpactTransformer = new CodegenImpactTransformer(
1073 compiler.options, 1076 compiler.options,
1074 closedWorld.elementEnvironment, 1077 closedWorld.elementEnvironment,
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
1394 1397
1395 bool canUseAliasedSuperMember(MemberEntity member, Selector selector) { 1398 bool canUseAliasedSuperMember(MemberEntity member, Selector selector) {
1396 return !selector.isGetter; 1399 return !selector.isGetter;
1397 } 1400 }
1398 1401
1399 /// Returns `true` if [member] is called from a subclass via `super`. 1402 /// Returns `true` if [member] is called from a subclass via `super`.
1400 bool isAliasedSuperMember(MemberEntity member) { 1403 bool isAliasedSuperMember(MemberEntity member) {
1401 return _aliasedSuperMembers.contains(member); 1404 return _aliasedSuperMembers.contains(member);
1402 } 1405 }
1403 } 1406 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/inferrer/builder_kernel.dart ('k') | pkg/compiler/lib/src/js_backend/element_strategy.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698