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

Side by Side Diff: pkg/compiler/lib/src/kernel/element_map_impl.dart

Issue 2995113002: Share locals between members (Closed)
Patch Set: Rebased Created 3 years, 4 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) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, 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 dart2js.kernel.element_map; 5 library dart2js.kernel.element_map;
6 6
7 import 'package:kernel/ast.dart' as ir; 7 import 'package:kernel/ast.dart' as ir;
8 8
9 import '../closure.dart' show BoxLocal; 9 import '../closure.dart' show BoxLocal;
10 import '../common.dart'; 10 import '../common.dart';
(...skipping 2159 matching lines...) Expand 10 before | Expand all | Expand 10 after
2170 KernelClosureClass constructClosureClass( 2170 KernelClosureClass constructClosureClass(
2171 MemberEntity member, 2171 MemberEntity member,
2172 ir.FunctionNode node, 2172 ir.FunctionNode node,
2173 JLibrary enclosingLibrary, 2173 JLibrary enclosingLibrary,
2174 KernelScopeInfo info, 2174 KernelScopeInfo info,
2175 ir.Location location, 2175 ir.Location location,
2176 KernelToLocalsMap localsMap, 2176 KernelToLocalsMap localsMap,
2177 InterfaceType supertype) { 2177 InterfaceType supertype) {
2178 String name = _computeClosureName(node); 2178 String name = _computeClosureName(node);
2179 JClass classEntity = 2179 JClass classEntity =
2180 new JClosureClass(localsMap, enclosingLibrary, _classEnvs.length, name); 2180 new JClosureClass(enclosingLibrary, _classEnvs.length, name);
2181 _classList.add(classEntity); 2181 _classList.add(classEntity);
2182 Map<String, MemberEntity> memberMap = <String, MemberEntity>{}; 2182 Map<String, MemberEntity> memberMap = <String, MemberEntity>{};
2183 _classEnvs.add(new ClosureClassEnv(memberMap)); 2183 _classEnvs.add(new ClosureClassEnv(memberMap));
2184 2184
2185 // Create a classData and set up the interfaces and subclass 2185 // Create a classData and set up the interfaces and subclass
2186 // relationships that _ensureSupertypes and _ensureThisAndRawType are doing 2186 // relationships that _ensureSupertypes and _ensureThisAndRawType are doing
2187 var closureData = new ClassData( 2187 var closureData = new ClassData(
2188 null, 2188 null,
2189 new ClosureClassDefinition( 2189 new ClosureClassDefinition(
2190 classEntity, computeSourceSpanFromTreeNode(node))); 2190 classEntity, computeSourceSpanFromTreeNode(node)));
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
2321 /// 2321 ///
2322 /// These names are not used in generated code, just as element name. 2322 /// These names are not used in generated code, just as element name.
2323 String _getClosureVariableName(String name, int id) { 2323 String _getClosureVariableName(String name, int id) {
2324 return "_captured_${name}_$id"; 2324 return "_captured_${name}_$id";
2325 } 2325 }
2326 2326
2327 String getDeferredUri(ir.LibraryDependency node) { 2327 String getDeferredUri(ir.LibraryDependency node) {
2328 throw new UnimplementedError('JsKernelToElementMap.getDeferredUri'); 2328 throw new UnimplementedError('JsKernelToElementMap.getDeferredUri');
2329 } 2329 }
2330 } 2330 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/kernel/element_map.dart ('k') | pkg/compiler/lib/src/ssa/builder_kernel.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698