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

Side by Side Diff: tests/compiler/dart2js/backend_dart/sexpr_unstringifier.dart

Issue 1240263002: dart2js cps: Streamline expressions and primitives. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 5 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) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 // SExpressionUnstringifier implements the inverse operation to 5 // SExpressionUnstringifier implements the inverse operation to
6 // [SExpressionStringifier]. 6 // [SExpressionStringifier].
7 7
8 library sexpr_unstringifier; 8 library sexpr_unstringifier;
9 9
10 import 'package:compiler/src/constants/expressions.dart'; 10 import 'package:compiler/src/constants/expressions.dart';
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 static const String GET_MUTABLE_VARIABLE = "GetMutableVariable"; 146 static const String GET_MUTABLE_VARIABLE = "GetMutableVariable";
147 static const String LITERAL_LIST = "LiteralList"; 147 static const String LITERAL_LIST = "LiteralList";
148 static const String LITERAL_MAP = "LiteralMap"; 148 static const String LITERAL_MAP = "LiteralMap";
149 static const String REIFY_TYPE_VAR = "ReifyTypeVar"; 149 static const String REIFY_TYPE_VAR = "ReifyTypeVar";
150 static const String GET_STATIC = "GetStatic"; 150 static const String GET_STATIC = "GetStatic";
151 static const String TYPE_TEST = "TypeTest"; 151 static const String TYPE_TEST = "TypeTest";
152 static const String APPLY_BUILTIN_OPERATOR = "ApplyBuiltinOperator"; 152 static const String APPLY_BUILTIN_OPERATOR = "ApplyBuiltinOperator";
153 static const String GET_LENGTH = "GetLength"; 153 static const String GET_LENGTH = "GetLength";
154 static const String GET_INDEX = "GetIndex"; 154 static const String GET_INDEX = "GetIndex";
155 static const String SET_INDEX = "SetIndex"; 155 static const String SET_INDEX = "SetIndex";
156 static const String GET_FIELD = "GetField";
157 static const String SET_FIELD = "SetField";
156 158
157 // Other 159 // Other
158 static const String FUNCTION_DEFINITION = "FunctionDefinition"; 160 static const String FUNCTION_DEFINITION = "FunctionDefinition";
159 static const String IS_TRUE = "IsTrue"; 161 static const String IS_TRUE = "IsTrue";
160 162
161 // Constants 163 // Constants
162 static const String BOOL = "Bool"; 164 static const String BOOL = "Bool";
163 static const String DOUBLE = "Double"; 165 static const String DOUBLE = "Double";
164 static const String INT = "Int"; 166 static const String INT = "Int";
165 static const String NULL = "Null"; 167 static const String NULL = "Null";
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 case INVOKE_STATIC: 246 case INVOKE_STATIC:
245 return parseInvokeStatic(); 247 return parseInvokeStatic();
246 case INVOKE_METHOD_DIRECTLY: 248 case INVOKE_METHOD_DIRECTLY:
247 return parseInvokeMethodDirectly(); 249 return parseInvokeMethodDirectly();
248 case LET_PRIM: 250 case LET_PRIM:
249 return parseLetPrim(); 251 return parseLetPrim();
250 case LET_CONT: 252 case LET_CONT:
251 return parseLetCont(); 253 return parseLetCont();
252 case LET_MUTABLE: 254 case LET_MUTABLE:
253 return parseLetMutable(); 255 return parseLetMutable();
254 case SET_MUTABLE_VARIABLE:
255 return parseSetMutableVariable();
256 case TYPE_CAST: 256 case TYPE_CAST:
257 return parseTypeCast(); 257 return parseTypeCast();
258 case SET_STATIC:
259 return parseSetStatic();
260 case GET_LAZY_STATIC: 258 case GET_LAZY_STATIC:
261 return parseGetLazyStatic(); 259 return parseGetLazyStatic();
262 case UNREACHABLE: 260 case UNREACHABLE:
263 return parseUnreachable(); 261 return parseUnreachable();
264 default: 262 default:
265 assert(false); 263 assert(false);
266 } 264 }
267 265
268 return null; 266 return null;
269 } 267 }
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 String name = tokens.read(); 537 String name = tokens.read();
540 MutableVariable local = addMutableVariable(name); 538 MutableVariable local = addMutableVariable(name);
541 Primitive value = name2variable[tokens.read()]; 539 Primitive value = name2variable[tokens.read()];
542 tokens.consumeEnd(); 540 tokens.consumeEnd();
543 541
544 Expression body = parseExpression(); 542 Expression body = parseExpression();
545 tokens.consumeEnd(); 543 tokens.consumeEnd();
546 return new LetMutable(local, value)..plug(body); 544 return new LetMutable(local, value)..plug(body);
547 } 545 }
548 546
549 /// (SetMutableVariable name value body) 547 /// (SetMutableVariable name value)
550 SetMutableVariable parseSetMutableVariable() { 548 SetMutableVariable parseSetMutableVariable() {
551 tokens.consumeStart(SET_MUTABLE_VARIABLE); 549 tokens.consumeStart(SET_MUTABLE_VARIABLE);
552 550
553 MutableVariable local = name2variable[tokens.read()]; 551 MutableVariable local = name2variable[tokens.read()];
554 Primitive value = name2variable[tokens.read()]; 552 Primitive value = name2variable[tokens.read()];
555 assert(value != null); 553 assert(value != null);
556 554
557 Expression body = parseExpression();
558
559 tokens.consumeEnd(); 555 tokens.consumeEnd();
560 return new SetMutableVariable(local, value) 556 return new SetMutableVariable(local, value);
561 ..plug(body);
562 } 557 }
563 558
564 /// (TypeCast value type args cont) 559 /// (TypeCast value type args cont)
565 TypeCast parseTypeCast() { 560 TypeCast parseTypeCast() {
566 tokens.consumeStart(TYPE_CAST); 561 tokens.consumeStart(TYPE_CAST);
567 562
568 Primitive value = name2variable[tokens.read()]; 563 Primitive value = name2variable[tokens.read()];
569 assert(value != null); 564 assert(value != null);
570 565
571 dart_types.DartType type = new DummyNamedType(tokens.read()); 566 dart_types.DartType type = new DummyNamedType(tokens.read());
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 /// (SetIndex object index value) 628 /// (SetIndex object index value)
634 SetIndex parseSetIndex() { 629 SetIndex parseSetIndex() {
635 tokens.consumeStart(SET_INDEX); 630 tokens.consumeStart(SET_INDEX);
636 Primitive object = name2variable[tokens.read()]; 631 Primitive object = name2variable[tokens.read()];
637 Primitive index = name2variable[tokens.read()]; 632 Primitive index = name2variable[tokens.read()];
638 Primitive value = name2variable[tokens.read()]; 633 Primitive value = name2variable[tokens.read()];
639 tokens.consumeEnd(); 634 tokens.consumeEnd();
640 return new SetIndex(object, index, value); 635 return new SetIndex(object, index, value);
641 } 636 }
642 637
643 /// (SetStatic field value body) 638 /// (SetStatic field value)
644 SetStatic parseSetStatic() { 639 SetStatic parseSetStatic() {
645 tokens.consumeStart(SET_STATIC); 640 tokens.consumeStart(SET_STATIC);
646 641
647 Element fieldElement = new DummyElement(tokens.read()); 642 Element fieldElement = new DummyElement(tokens.read());
648 Primitive value = name2variable[tokens.read()]; 643 Primitive value = name2variable[tokens.read()];
649 assert(value != null); 644 assert(value != null);
650 Expression body = parseExpression();
651 645
652 tokens.consumeEnd(); 646 tokens.consumeEnd();
653 return new SetStatic(fieldElement, value, null)..plug(body); 647 return new SetStatic(fieldElement, value, null);
654 } 648 }
655 649
656 /// (GetLazyStatic field cont) 650 /// (GetLazyStatic field cont)
657 GetLazyStatic parseGetLazyStatic() { 651 GetLazyStatic parseGetLazyStatic() {
658 tokens.consumeStart(GET_LAZY_STATIC); 652 tokens.consumeStart(GET_LAZY_STATIC);
659 653
660 Element fieldElement = new DummyElement(tokens.read()); 654 Element fieldElement = new DummyElement(tokens.read());
661 Continuation cont = name2variable[tokens.read()]; 655 Continuation cont = name2variable[tokens.read()];
662 assert(cont != null); 656 assert(cont != null);
663 657
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 case TYPE_TEST: 707 case TYPE_TEST:
714 return parseTypeTest(); 708 return parseTypeTest();
715 case APPLY_BUILTIN_OPERATOR: 709 case APPLY_BUILTIN_OPERATOR:
716 return parseApplyBuiltinOperator(); 710 return parseApplyBuiltinOperator();
717 case GET_LENGTH: 711 case GET_LENGTH:
718 return parseGetLength(); 712 return parseGetLength();
719 case GET_INDEX: 713 case GET_INDEX:
720 return parseGetIndex(); 714 return parseGetIndex();
721 case SET_INDEX: 715 case SET_INDEX:
722 return parseSetIndex(); 716 return parseSetIndex();
717 case SET_MUTABLE_VARIABLE:
718 return parseSetMutableVariable();
719 case SET_STATIC:
720 return parseSetStatic();
721 case GET_FIELD:
722 return parseGetField();
723 case SET_FIELD:
724 return parseSetField();
723 default: 725 default:
724 assert(false); 726 assert(false);
725 } 727 }
726 728
727 return null; 729 return null;
728 } 730 }
729 731
730 /// (Constant (constant)) 732 /// (Constant (constant))
731 Constant parseConstant() { 733 Constant parseConstant() {
732 tokens.consumeStart(CONSTANT); 734 tokens.consumeStart(CONSTANT);
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
848 850
849 /// (GetStatic field) 851 /// (GetStatic field)
850 GetStatic parseGetStatic() { 852 GetStatic parseGetStatic() {
851 tokens.consumeStart(GET_STATIC); 853 tokens.consumeStart(GET_STATIC);
852 854
853 Element field = new DummyElement(tokens.read()); 855 Element field = new DummyElement(tokens.read());
854 856
855 tokens.consumeEnd(); 857 tokens.consumeEnd();
856 return new GetStatic(field, null); 858 return new GetStatic(field, null);
857 } 859 }
860
861 /// (GetField object field)
862 GetField parseGetField() {
863 tokens.consumeStart(GET_FIELD);
864
865 Primitive object = name2variable[tokens.read()];
866 Element field = new DummyElement(tokens.read());
867
868 tokens.consumeEnd();
869 return new GetField(object, field);
870 }
871
872 /// (SetField object field value)
873 SetField parseSetField() {
874 tokens.consumeStart(SET_FIELD);
875
876 Primitive object = name2variable[tokens.read()];
877 Element field = new DummyElement(tokens.read());
878 Primitive value = name2variable[tokens.read()];
879
880 tokens.consumeEnd();
881 return new SetField(object, field, value);
882 }
asgerf 2015/07/20 13:35:23 These cases we simply missing from the parser befo
858 } 883 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698