| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 library kernel.ast_to_binary; | 4 library kernel.ast_to_binary; |
| 5 | 5 |
| 6 import '../ast.dart'; | 6 import '../ast.dart'; |
| 7 import '../import_table.dart'; | 7 import '../import_table.dart'; |
| 8 import 'tag.dart'; | 8 import 'tag.dart'; |
| 9 import 'dart:convert'; | 9 import 'dart:convert'; |
| 10 import 'dart:typed_data'; | 10 import 'dart:typed_data'; |
| (...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 508 } | 508 } |
| 509 | 509 |
| 510 visitStaticGet(StaticGet node) { | 510 visitStaticGet(StaticGet node) { |
| 511 writeByte(Tag.StaticGet); | 511 writeByte(Tag.StaticGet); |
| 512 writeOffset(node, node.fileOffset); | 512 writeOffset(node, node.fileOffset); |
| 513 writeReference(node.targetReference); | 513 writeReference(node.targetReference); |
| 514 } | 514 } |
| 515 | 515 |
| 516 visitStaticSet(StaticSet node) { | 516 visitStaticSet(StaticSet node) { |
| 517 writeByte(Tag.StaticSet); | 517 writeByte(Tag.StaticSet); |
| 518 writeOffset(node, node.fileOffset); |
| 518 writeReference(node.targetReference); | 519 writeReference(node.targetReference); |
| 519 writeNode(node.value); | 520 writeNode(node.value); |
| 520 } | 521 } |
| 521 | 522 |
| 522 visitMethodInvocation(MethodInvocation node) { | 523 visitMethodInvocation(MethodInvocation node) { |
| 523 writeByte(Tag.MethodInvocation); | 524 writeByte(Tag.MethodInvocation); |
| 524 writeOffset(node, node.fileOffset); | 525 writeOffset(node, node.fileOffset); |
| 525 writeNode(node.receiver); | 526 writeNode(node.receiver); |
| 526 writeName(node.name); | 527 writeName(node.name); |
| 527 writeNode(node.arguments); | 528 writeNode(node.arguments); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 608 | 609 |
| 609 visitIsExpression(IsExpression node) { | 610 visitIsExpression(IsExpression node) { |
| 610 writeByte(Tag.IsExpression); | 611 writeByte(Tag.IsExpression); |
| 611 writeOffset(node, node.fileOffset); | 612 writeOffset(node, node.fileOffset); |
| 612 writeNode(node.operand); | 613 writeNode(node.operand); |
| 613 writeNode(node.type); | 614 writeNode(node.type); |
| 614 } | 615 } |
| 615 | 616 |
| 616 visitAsExpression(AsExpression node) { | 617 visitAsExpression(AsExpression node) { |
| 617 writeByte(Tag.AsExpression); | 618 writeByte(Tag.AsExpression); |
| 619 writeOffset(node, node.fileOffset); |
| 618 writeNode(node.operand); | 620 writeNode(node.operand); |
| 619 writeNode(node.type); | 621 writeNode(node.type); |
| 620 } | 622 } |
| 621 | 623 |
| 622 visitStringLiteral(StringLiteral node) { | 624 visitStringLiteral(StringLiteral node) { |
| 623 writeByte(Tag.StringLiteral); | 625 writeByte(Tag.StringLiteral); |
| 624 writeStringReference(node.value); | 626 writeStringReference(node.value); |
| 625 } | 627 } |
| 626 | 628 |
| 627 visitIntLiteral(IntLiteral node) { | 629 visitIntLiteral(IntLiteral node) { |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 668 writeByte(Tag.TypeLiteral); | 670 writeByte(Tag.TypeLiteral); |
| 669 writeNode(node.type); | 671 writeNode(node.type); |
| 670 } | 672 } |
| 671 | 673 |
| 672 visitThisExpression(ThisExpression node) { | 674 visitThisExpression(ThisExpression node) { |
| 673 writeByte(Tag.ThisExpression); | 675 writeByte(Tag.ThisExpression); |
| 674 } | 676 } |
| 675 | 677 |
| 676 visitRethrow(Rethrow node) { | 678 visitRethrow(Rethrow node) { |
| 677 writeByte(Tag.Rethrow); | 679 writeByte(Tag.Rethrow); |
| 680 writeOffset(node, node.fileOffset); |
| 678 } | 681 } |
| 679 | 682 |
| 680 visitThrow(Throw node) { | 683 visitThrow(Throw node) { |
| 681 writeByte(Tag.Throw); | 684 writeByte(Tag.Throw); |
| 682 writeOffset(node, node.fileOffset); | 685 writeOffset(node, node.fileOffset); |
| 683 writeNode(node.expression); | 686 writeNode(node.expression); |
| 684 } | 687 } |
| 685 | 688 |
| 686 visitListLiteral(ListLiteral node) { | 689 visitListLiteral(ListLiteral node) { |
| 687 writeByte(node.isConst ? Tag.ConstListLiteral : Tag.ListLiteral); | 690 writeByte(node.isConst ? Tag.ConstListLiteral : Tag.ListLiteral); |
| 691 writeOffset(node, node.fileOffset); |
| 688 writeNode(node.typeArgument); | 692 writeNode(node.typeArgument); |
| 689 writeNodeList(node.expressions); | 693 writeNodeList(node.expressions); |
| 690 } | 694 } |
| 691 | 695 |
| 692 visitMapLiteral(MapLiteral node) { | 696 visitMapLiteral(MapLiteral node) { |
| 693 writeByte(node.isConst ? Tag.ConstMapLiteral : Tag.MapLiteral); | 697 writeByte(node.isConst ? Tag.ConstMapLiteral : Tag.MapLiteral); |
| 694 writeOffset(node, node.fileOffset); | 698 writeOffset(node, node.fileOffset); |
| 695 writeNode(node.keyType); | 699 writeNode(node.keyType); |
| 696 writeNode(node.valueType); | 700 writeNode(node.valueType); |
| 697 writeNodeList(node.entries); | 701 writeNodeList(node.entries); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 766 | 770 |
| 767 visitLabeledStatement(LabeledStatement node) { | 771 visitLabeledStatement(LabeledStatement node) { |
| 768 _labelIndexer.enter(node); | 772 _labelIndexer.enter(node); |
| 769 writeByte(Tag.LabeledStatement); | 773 writeByte(Tag.LabeledStatement); |
| 770 writeNode(node.body); | 774 writeNode(node.body); |
| 771 _labelIndexer.exit(); | 775 _labelIndexer.exit(); |
| 772 } | 776 } |
| 773 | 777 |
| 774 visitBreakStatement(BreakStatement node) { | 778 visitBreakStatement(BreakStatement node) { |
| 775 writeByte(Tag.BreakStatement); | 779 writeByte(Tag.BreakStatement); |
| 780 writeOffset(node, node.fileOffset); |
| 776 writeUInt30(_labelIndexer[node.target]); | 781 writeUInt30(_labelIndexer[node.target]); |
| 777 } | 782 } |
| 778 | 783 |
| 779 visitWhileStatement(WhileStatement node) { | 784 visitWhileStatement(WhileStatement node) { |
| 780 writeByte(Tag.WhileStatement); | 785 writeByte(Tag.WhileStatement); |
| 781 writeNode(node.condition); | 786 writeNode(node.condition); |
| 782 writeNode(node.body); | 787 writeNode(node.body); |
| 783 } | 788 } |
| 784 | 789 |
| 785 visitDoStatement(DoStatement node) { | 790 visitDoStatement(DoStatement node) { |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 869 writeNode(node.expression); | 874 writeNode(node.expression); |
| 870 } | 875 } |
| 871 | 876 |
| 872 visitVariableDeclaration(VariableDeclaration node) { | 877 visitVariableDeclaration(VariableDeclaration node) { |
| 873 writeByte(Tag.VariableDeclaration); | 878 writeByte(Tag.VariableDeclaration); |
| 874 writeVariableDeclaration(node); | 879 writeVariableDeclaration(node); |
| 875 } | 880 } |
| 876 | 881 |
| 877 void writeVariableDeclaration(VariableDeclaration node) { | 882 void writeVariableDeclaration(VariableDeclaration node) { |
| 878 writeOffset(node, node.fileOffset); | 883 writeOffset(node, node.fileOffset); |
| 884 writeOffset(node, node.fileEqualsOffset); |
| 879 writeByte(node.flags); | 885 writeByte(node.flags); |
| 880 writeStringReference(node.name ?? ''); | 886 writeStringReference(node.name ?? ''); |
| 881 writeNode(node.type); | 887 writeNode(node.type); |
| 882 writeOptionalInferredValue(node.inferredValue); | 888 writeOptionalInferredValue(node.inferredValue); |
| 883 writeOptionalNode(node.initializer); | 889 writeOptionalNode(node.initializer); |
| 884 // Declare the variable after its initializer. It is not in scope in its | 890 // Declare the variable after its initializer. It is not in scope in its |
| 885 // own initializer. | 891 // own initializer. |
| 886 _variableIndexer.declare(node); | 892 _variableIndexer.declare(node); |
| 887 } | 893 } |
| 888 | 894 |
| (...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1269 void flush() { | 1275 void flush() { |
| 1270 _sink.add(_buffer.sublist(0, length)); | 1276 _sink.add(_buffer.sublist(0, length)); |
| 1271 _buffer = new Uint8List(SIZE); | 1277 _buffer = new Uint8List(SIZE); |
| 1272 length = 0; | 1278 length = 0; |
| 1273 } | 1279 } |
| 1274 | 1280 |
| 1275 void flushAndDestroy() { | 1281 void flushAndDestroy() { |
| 1276 _sink.add(_buffer.sublist(0, length)); | 1282 _sink.add(_buffer.sublist(0, length)); |
| 1277 } | 1283 } |
| 1278 } | 1284 } |
| OLD | NEW |