| 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 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 500 } | 500 } |
| 501 | 501 |
| 502 visitStaticGet(StaticGet node) { | 502 visitStaticGet(StaticGet node) { |
| 503 writeByte(Tag.StaticGet); | 503 writeByte(Tag.StaticGet); |
| 504 writeOffset(node, node.fileOffset); | 504 writeOffset(node, node.fileOffset); |
| 505 writeMemberReference(node.target); | 505 writeMemberReference(node.target); |
| 506 } | 506 } |
| 507 | 507 |
| 508 visitStaticSet(StaticSet node) { | 508 visitStaticSet(StaticSet node) { |
| 509 writeByte(Tag.StaticSet); | 509 writeByte(Tag.StaticSet); |
| 510 writeOffset(node, node.fileOffset); |
| 510 writeMemberReference(node.target); | 511 writeMemberReference(node.target); |
| 511 writeNode(node.value); | 512 writeNode(node.value); |
| 512 } | 513 } |
| 513 | 514 |
| 514 visitMethodInvocation(MethodInvocation node) { | 515 visitMethodInvocation(MethodInvocation node) { |
| 515 writeByte(Tag.MethodInvocation); | 516 writeByte(Tag.MethodInvocation); |
| 516 writeOffset(node, node.fileOffset); | 517 writeOffset(node, node.fileOffset); |
| 517 writeNode(node.receiver); | 518 writeNode(node.receiver); |
| 518 writeName(node.name); | 519 writeName(node.name); |
| 519 writeNode(node.arguments); | 520 writeNode(node.arguments); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 600 | 601 |
| 601 visitIsExpression(IsExpression node) { | 602 visitIsExpression(IsExpression node) { |
| 602 writeByte(Tag.IsExpression); | 603 writeByte(Tag.IsExpression); |
| 603 writeOffset(node, node.fileOffset); | 604 writeOffset(node, node.fileOffset); |
| 604 writeNode(node.operand); | 605 writeNode(node.operand); |
| 605 writeNode(node.type); | 606 writeNode(node.type); |
| 606 } | 607 } |
| 607 | 608 |
| 608 visitAsExpression(AsExpression node) { | 609 visitAsExpression(AsExpression node) { |
| 609 writeByte(Tag.AsExpression); | 610 writeByte(Tag.AsExpression); |
| 611 writeOffset(node, node.fileOffset); |
| 610 writeNode(node.operand); | 612 writeNode(node.operand); |
| 611 writeNode(node.type); | 613 writeNode(node.type); |
| 612 } | 614 } |
| 613 | 615 |
| 614 visitStringLiteral(StringLiteral node) { | 616 visitStringLiteral(StringLiteral node) { |
| 615 writeByte(Tag.StringLiteral); | 617 writeByte(Tag.StringLiteral); |
| 616 writeStringReference(node.value); | 618 writeStringReference(node.value); |
| 617 } | 619 } |
| 618 | 620 |
| 619 visitIntLiteral(IntLiteral node) { | 621 visitIntLiteral(IntLiteral node) { |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 660 writeByte(Tag.TypeLiteral); | 662 writeByte(Tag.TypeLiteral); |
| 661 writeNode(node.type); | 663 writeNode(node.type); |
| 662 } | 664 } |
| 663 | 665 |
| 664 visitThisExpression(ThisExpression node) { | 666 visitThisExpression(ThisExpression node) { |
| 665 writeByte(Tag.ThisExpression); | 667 writeByte(Tag.ThisExpression); |
| 666 } | 668 } |
| 667 | 669 |
| 668 visitRethrow(Rethrow node) { | 670 visitRethrow(Rethrow node) { |
| 669 writeByte(Tag.Rethrow); | 671 writeByte(Tag.Rethrow); |
| 672 writeOffset(node, node.fileOffset); |
| 670 } | 673 } |
| 671 | 674 |
| 672 visitThrow(Throw node) { | 675 visitThrow(Throw node) { |
| 673 writeByte(Tag.Throw); | 676 writeByte(Tag.Throw); |
| 674 writeOffset(node, node.fileOffset); | 677 writeOffset(node, node.fileOffset); |
| 675 writeNode(node.expression); | 678 writeNode(node.expression); |
| 676 } | 679 } |
| 677 | 680 |
| 678 visitListLiteral(ListLiteral node) { | 681 visitListLiteral(ListLiteral node) { |
| 679 writeByte(node.isConst ? Tag.ConstListLiteral : Tag.ListLiteral); | 682 writeByte(node.isConst ? Tag.ConstListLiteral : Tag.ListLiteral); |
| 683 writeOffset(node, node.fileOffset); |
| 680 writeNode(node.typeArgument); | 684 writeNode(node.typeArgument); |
| 681 writeNodeList(node.expressions); | 685 writeNodeList(node.expressions); |
| 682 } | 686 } |
| 683 | 687 |
| 684 visitMapLiteral(MapLiteral node) { | 688 visitMapLiteral(MapLiteral node) { |
| 685 writeByte(node.isConst ? Tag.ConstMapLiteral : Tag.MapLiteral); | 689 writeByte(node.isConst ? Tag.ConstMapLiteral : Tag.MapLiteral); |
| 686 writeOffset(node, node.fileOffset); | 690 writeOffset(node, node.fileOffset); |
| 687 writeNode(node.keyType); | 691 writeNode(node.keyType); |
| 688 writeNode(node.valueType); | 692 writeNode(node.valueType); |
| 689 writeNodeList(node.entries); | 693 writeNodeList(node.entries); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 748 | 752 |
| 749 visitLabeledStatement(LabeledStatement node) { | 753 visitLabeledStatement(LabeledStatement node) { |
| 750 _labelIndexer.enter(node); | 754 _labelIndexer.enter(node); |
| 751 writeByte(Tag.LabeledStatement); | 755 writeByte(Tag.LabeledStatement); |
| 752 writeNode(node.body); | 756 writeNode(node.body); |
| 753 _labelIndexer.exit(); | 757 _labelIndexer.exit(); |
| 754 } | 758 } |
| 755 | 759 |
| 756 visitBreakStatement(BreakStatement node) { | 760 visitBreakStatement(BreakStatement node) { |
| 757 writeByte(Tag.BreakStatement); | 761 writeByte(Tag.BreakStatement); |
| 762 writeOffset(node, node.fileOffset); |
| 758 writeUInt30(_labelIndexer[node.target]); | 763 writeUInt30(_labelIndexer[node.target]); |
| 759 } | 764 } |
| 760 | 765 |
| 761 visitWhileStatement(WhileStatement node) { | 766 visitWhileStatement(WhileStatement node) { |
| 762 writeByte(Tag.WhileStatement); | 767 writeByte(Tag.WhileStatement); |
| 763 writeNode(node.condition); | 768 writeNode(node.condition); |
| 764 writeNode(node.body); | 769 writeNode(node.body); |
| 765 } | 770 } |
| 766 | 771 |
| 767 visitDoStatement(DoStatement node) { | 772 visitDoStatement(DoStatement node) { |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 851 writeNode(node.expression); | 856 writeNode(node.expression); |
| 852 } | 857 } |
| 853 | 858 |
| 854 visitVariableDeclaration(VariableDeclaration node) { | 859 visitVariableDeclaration(VariableDeclaration node) { |
| 855 writeByte(Tag.VariableDeclaration); | 860 writeByte(Tag.VariableDeclaration); |
| 856 writeVariableDeclaration(node); | 861 writeVariableDeclaration(node); |
| 857 } | 862 } |
| 858 | 863 |
| 859 void writeVariableDeclaration(VariableDeclaration node) { | 864 void writeVariableDeclaration(VariableDeclaration node) { |
| 860 writeOffset(node, node.fileOffset); | 865 writeOffset(node, node.fileOffset); |
| 866 writeOffset(node, node.fileEqualsOffset); |
| 861 writeByte(node.flags); | 867 writeByte(node.flags); |
| 862 writeStringReference(node.name ?? ''); | 868 writeStringReference(node.name ?? ''); |
| 863 writeNode(node.type); | 869 writeNode(node.type); |
| 864 writeOptionalInferredValue(node.inferredValue); | 870 writeOptionalInferredValue(node.inferredValue); |
| 865 writeOptionalNode(node.initializer); | 871 writeOptionalNode(node.initializer); |
| 866 // Declare the variable after its initializer. It is not in scope in its | 872 // Declare the variable after its initializer. It is not in scope in its |
| 867 // own initializer. | 873 // own initializer. |
| 868 _variableIndexer.declare(node); | 874 _variableIndexer.declare(node); |
| 869 } | 875 } |
| 870 | 876 |
| (...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1241 void flush() { | 1247 void flush() { |
| 1242 _sink.add(_buffer.sublist(0, length)); | 1248 _sink.add(_buffer.sublist(0, length)); |
| 1243 _buffer = new Uint8List(SIZE); | 1249 _buffer = new Uint8List(SIZE); |
| 1244 length = 0; | 1250 length = 0; |
| 1245 } | 1251 } |
| 1246 | 1252 |
| 1247 void flushAndDestroy() { | 1253 void flushAndDestroy() { |
| 1248 _sink.add(_buffer.sublist(0, length)); | 1254 _sink.add(_buffer.sublist(0, length)); |
| 1249 } | 1255 } |
| 1250 } | 1256 } |
| OLD | NEW |