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

Side by Side Diff: pkg/compiler/lib/src/cps_ir/inline.dart

Issue 1919143002: Store constant variable initializers in elements. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments. Created 4 years, 8 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 library cps_ir.optimization.inline; 5 library cps_ir.optimization.inline;
6 6
7 import 'package:js_ast/js_ast.dart' as js; 7 import 'package:js_ast/js_ast.dart' as js;
8 8
9 import '../dart_types.dart' show DartType, GenericType; 9 import '../dart_types.dart' show DartType, GenericType;
10 import '../elements/elements.dart'; 10 import '../elements/elements.dart';
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 node.selector.callStructure.getOrderedNamedArguments(); 370 node.selector.callStructure.getOrderedNamedArguments();
371 List<String> outgoingNames = <String>[]; 371 List<String> outgoingNames = <String>[];
372 int nameIndex = 0; 372 int nameIndex = 0;
373 signature.orderedOptionalParameters.forEach((ParameterElement formal) { 373 signature.orderedOptionalParameters.forEach((ParameterElement formal) {
374 if (nameIndex < incomingNames.length && 374 if (nameIndex < incomingNames.length &&
375 formal.name == incomingNames[nameIndex]) { 375 formal.name == incomingNames[nameIndex]) {
376 arguments.add(parameters[parameterIndex++]); 376 arguments.add(parameters[parameterIndex++]);
377 ++nameIndex; 377 ++nameIndex;
378 } else { 378 } else {
379 Constant defaultValue = cps.makeConstant( 379 Constant defaultValue = cps.makeConstant(
380 backend.constants.getConstantValueForVariable(formal)); 380 backend.constants.getConstantValue(formal.constant));
381 defaultValue.type = typeSystem.getParameterType(formal); 381 defaultValue.type = typeSystem.getParameterType(formal);
382 arguments.add(defaultValue); 382 arguments.add(defaultValue);
383 } 383 }
384 outgoingNames.add(formal.name); 384 outgoingNames.add(formal.name);
385 }); 385 });
386 newCallStructure = 386 newCallStructure =
387 new CallStructure(signature.parameterCount, outgoingNames); 387 new CallStructure(signature.parameterCount, outgoingNames);
388 } else { 388 } else {
389 signature.forEachOptionalParameter((ParameterElement formal) { 389 signature.forEachOptionalParameter((ParameterElement formal) {
390 if (parameterIndex < parameters.length) { 390 if (parameterIndex < parameters.length) {
391 arguments.add(parameters[parameterIndex++]); 391 arguments.add(parameters[parameterIndex++]);
392 } else { 392 } else {
393 Constant defaultValue = cps.makeConstant( 393 Constant defaultValue = cps.makeConstant(
394 backend.constants.getConstantValueForVariable(formal)); 394 backend.constants.getConstantValue(formal.constant));
395 defaultValue.type = typeSystem.getParameterType(formal); 395 defaultValue.type = typeSystem.getParameterType(formal);
396 arguments.add(defaultValue); 396 arguments.add(defaultValue);
397 } 397 }
398 }); 398 });
399 newCallStructure = new CallStructure(signature.parameterCount); 399 newCallStructure = new CallStructure(signature.parameterCount);
400 } 400 }
401 401
402 Selector newSelector = new Selector( 402 Selector newSelector = new Selector(
403 node.selector.kind, node.selector.memberName, newCallStructure); 403 node.selector.kind, node.selector.memberName, newCallStructure);
404 Primitive result = cps.invokeMethod( 404 Primitive result = cps.invokeMethod(
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
604 (enclosingClass == backend.helpers.jsNumberClass || 604 (enclosingClass == backend.helpers.jsNumberClass ||
605 enclosingClass == backend.helpers.jsDoubleClass || 605 enclosingClass == backend.helpers.jsDoubleClass ||
606 enclosingClass == backend.helpers.jsIntClass)) { 606 enclosingClass == backend.helpers.jsIntClass)) {
607 // These should be handled by operator specialization. 607 // These should be handled by operator specialization.
608 return true; 608 return true;
609 } 609 }
610 if (target == backend.helpers.stringInterpolationHelper) return true; 610 if (target == backend.helpers.stringInterpolationHelper) return true;
611 return false; 611 return false;
612 } 612 }
613 } 613 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart ('k') | pkg/compiler/lib/src/dart_backend/backend.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698