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

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

Issue 1196443002: Revert "cps-ir: Support foreign code." (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 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
« no previous file with comments | « no previous file | pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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.ir_builder; 5 library dart2js.ir_builder;
6 6
7 import '../compile_time_constants.dart' show BackendConstantEnvironment; 7 import '../compile_time_constants.dart' show BackendConstantEnvironment;
8 import '../constants/constant_system.dart'; 8 import '../constants/constant_system.dart';
9 import '../constants/expressions.dart'; 9 import '../constants/expressions.dart';
10 import '../constants/values.dart' show ConstantValue, PrimitiveConstantValue; 10 import '../constants/values.dart' show ConstantValue, PrimitiveConstantValue;
11 import '../dart_types.dart'; 11 import '../dart_types.dart';
12 import '../dart2jslib.dart'; 12 import '../dart2jslib.dart';
13 import '../elements/elements.dart'; 13 import '../elements/elements.dart';
14 import '../io/source_information.dart'; 14 import '../io/source_information.dart';
15 import '../tree/tree.dart' as ast; 15 import '../tree/tree.dart' as ast;
16 import '../types/types.dart' show TypeMask; 16 import '../types/types.dart' show TypeMask;
17 import '../closure.dart' hide ClosureScope; 17 import '../closure.dart' hide ClosureScope;
18 import '../universe/universe.dart' show SelectorKind; 18 import '../universe/universe.dart' show SelectorKind;
19 import 'cps_ir_nodes.dart' as ir; 19 import 'cps_ir_nodes.dart' as ir;
20 import 'cps_ir_builder_task.dart' show DartCapturedVariables, 20 import 'cps_ir_builder_task.dart' show DartCapturedVariables,
21 GlobalProgramInformation; 21 GlobalProgramInformation;
22 22
23 import '../common.dart' as types show TypeMask;
24 import '../js/js.dart' as js show Template;
25 import '../native/native.dart' show NativeBehavior;
26
27 /// A mapping from variable elements to their compile-time values. 23 /// A mapping from variable elements to their compile-time values.
28 /// 24 ///
29 /// Map elements denoted by parameters and local variables to the 25 /// Map elements denoted by parameters and local variables to the
30 /// [ir.Primitive] that is their value. Parameters and locals are 26 /// [ir.Primitive] that is their value. Parameters and locals are
31 /// assigned indexes which can be used to refer to them. 27 /// assigned indexes which can be used to refer to them.
32 class Environment { 28 class Environment {
33 /// A map from locals to their environment index. 29 /// A map from locals to their environment index.
34 final Map<Local, int> variable2index; 30 final Map<Local, int> variable2index;
35 31
36 /// A reverse map from environment indexes to the variable. 32 /// A reverse map from environment indexes to the variable.
(...skipping 2371 matching lines...) Expand 10 before | Expand all | Expand 10 after
2408 ir.Primitive buildReifyTypeVariable(TypeVariableType variable) { 2404 ir.Primitive buildReifyTypeVariable(TypeVariableType variable) {
2409 ir.Primitive typeArgument = buildTypeVariableAccess(variable); 2405 ir.Primitive typeArgument = buildTypeVariableAccess(variable);
2410 return addPrimitive(new ir.ReifyRuntimeType(typeArgument)); 2406 return addPrimitive(new ir.ReifyRuntimeType(typeArgument));
2411 } 2407 }
2412 2408
2413 ir.Primitive buildInvocationMirror(Selector selector, 2409 ir.Primitive buildInvocationMirror(Selector selector,
2414 List<ir.Primitive> arguments) { 2410 List<ir.Primitive> arguments) {
2415 return addPrimitive(new ir.CreateInvocationMirror(selector, arguments)); 2411 return addPrimitive(new ir.CreateInvocationMirror(selector, arguments));
2416 } 2412 }
2417 2413
2418 ir.Primitive buildForeignCode(js.Template codeTemplate,
2419 List<ir.Primitive> arguments,
2420 NativeBehavior behavior,
2421 {Element dependency}) {
2422 types.TypeMask type = program.getTypeMaskForForeign(behavior);
2423 if (codeTemplate.isExpression) {
2424 return _continueWithExpression((k) => new ir.ForeignCode(
2425 codeTemplate,
2426 type,
2427 arguments,
2428 behavior,
2429 continuation: k,
2430 dependency: dependency));
2431 } else {
2432 assert(isOpen);
2433 add(new ir.ForeignCode(codeTemplate, type, arguments, behavior,
2434 dependency: dependency));
2435 _current = null;
2436 }
2437 }
2438
2439 @override 2414 @override
2440 ir.Primitive buildTypeOperator(ir.Primitive value, 2415 ir.Primitive buildTypeOperator(ir.Primitive value,
2441 DartType type, 2416 DartType type,
2442 {bool isTypeTest}) { 2417 {bool isTypeTest}) {
2443 assert(isOpen); 2418 assert(isOpen);
2444 assert(isTypeTest != null); 2419 assert(isTypeTest != null);
2445 2420
2446 type = program.unaliasType(type); 2421 type = program.unaliasType(type);
2447 2422
2448 if (type.isMalformed) { 2423 if (type.isMalformed) {
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
2569 final DartType type; 2544 final DartType type;
2570 final LocalVariableElement exceptionVariable; 2545 final LocalVariableElement exceptionVariable;
2571 final LocalVariableElement stackTraceVariable; 2546 final LocalVariableElement stackTraceVariable;
2572 final SubbuildFunction buildCatchBlock; 2547 final SubbuildFunction buildCatchBlock;
2573 2548
2574 CatchClauseInfo({this.type, 2549 CatchClauseInfo({this.type,
2575 this.exceptionVariable, 2550 this.exceptionVariable,
2576 this.stackTraceVariable, 2551 this.stackTraceVariable,
2577 this.buildCatchBlock}); 2552 this.buildCatchBlock});
2578 } 2553 }
OLDNEW
« no previous file with comments | « no previous file | pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698