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

Side by Side Diff: pkg/compiler/lib/src/js_model/closure.dart

Issue 3000233002: Remove KernelToLocalsMap.getLocalFunction (Closed)
Patch Set: 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
« no previous file with comments | « no previous file | pkg/compiler/lib/src/js_model/locals.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 import 'package:kernel/ast.dart' as ir; 5 import 'package:kernel/ast.dart' as ir;
6 6
7 import '../closure.dart'; 7 import '../closure.dart';
8 import '../common.dart'; 8 import '../common.dart';
9 import '../common/tasks.dart'; 9 import '../common/tasks.dart';
10 import '../constants/expressions.dart'; 10 import '../constants/expressions.dart';
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 final Local closureEntity; 364 final Local closureEntity;
365 final Local thisLocal; 365 final Local thisLocal;
366 final JClass closureClassEntity; 366 final JClass closureClassEntity;
367 367
368 final Map<Local, JField> localToFieldMap = new Map<Local, JField>(); 368 final Map<Local, JField> localToFieldMap = new Map<Local, JField>();
369 369
370 KernelClosureClass.fromScopeInfo( 370 KernelClosureClass.fromScopeInfo(
371 this.closureClassEntity, 371 this.closureClassEntity,
372 ir.FunctionNode closureSourceNode, 372 ir.FunctionNode closureSourceNode,
373 KernelScopeInfo info, 373 KernelScopeInfo info,
374 KernelToLocalsMap localsMap) 374 KernelToLocalsMap localsMap,
375 : closureEntity = closureSourceNode.parent is ir.Member 375 this.closureEntity,
376 ? null 376 this.thisLocal)
377 // TODO(johnniwinther,efortuna): This is the only place we call 377 : super.from(info, localsMap);
378 // [getLocalFunction]. Therefore the [closureEntity] doesn't need
379 // to be derived from the node.
380 //
381 // What we should do instead: If `closureSourceNode.parent` is
382 // an [ir.FunctionDeclaration] we should use the local for its
383 // variable. If `closureSourceNode.parent` is an
384 // [ir.FunctionExpression], we should create a fresh local.
385 : localsMap.getLocalFunction(closureSourceNode.parent),
386 thisLocal =
387 info.hasThisLocal ? new ThisLocal(localsMap.currentMember) : null,
388 super.from(info, localsMap);
389 378
390 List<Local> get createdFieldEntities => localToFieldMap.keys.toList(); 379 List<Local> get createdFieldEntities => localToFieldMap.keys.toList();
391 380
392 FieldEntity get thisFieldEntity => localToFieldMap[thisLocal]; 381 FieldEntity get thisFieldEntity => localToFieldMap[thisLocal];
393 382
394 void forEachCapturedVariable(f(Local from, JField to)) { 383 void forEachCapturedVariable(f(Local from, JField to)) {
395 localToFieldMap.forEach(f); 384 localToFieldMap.forEach(f);
396 } 385 }
397 386
398 @override 387 @override
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
570 KernelScopeInfo scopeInfo; 559 KernelScopeInfo scopeInfo;
571 560
572 /// Collected [CapturedScope] data for nodes. 561 /// Collected [CapturedScope] data for nodes.
573 Map<ir.Node, KernelCapturedScope> capturedScopesMap = 562 Map<ir.Node, KernelCapturedScope> capturedScopesMap =
574 <ir.Node, KernelCapturedScope>{}; 563 <ir.Node, KernelCapturedScope>{};
575 564
576 /// Collected [ScopeInfo] data for nodes. 565 /// Collected [ScopeInfo] data for nodes.
577 Map<ir.FunctionNode, KernelScopeInfo> closuresToGenerate = 566 Map<ir.FunctionNode, KernelScopeInfo> closuresToGenerate =
578 <ir.FunctionNode, KernelScopeInfo>{}; 567 <ir.FunctionNode, KernelScopeInfo>{};
579 } 568 }
OLDNEW
« no previous file with comments | « no previous file | pkg/compiler/lib/src/js_model/locals.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698