| 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 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 670 } | 672 } |
| 671 | 673 |
| 672 visitThrow(Throw node) { | 674 visitThrow(Throw node) { |
| 673 writeByte(Tag.Throw); | 675 writeByte(Tag.Throw); |
| 674 writeOffset(node, node.fileOffset); | 676 writeOffset(node, node.fileOffset); |
| 675 writeNode(node.expression); | 677 writeNode(node.expression); |
| 676 } | 678 } |
| 677 | 679 |
| 678 visitListLiteral(ListLiteral node) { | 680 visitListLiteral(ListLiteral node) { |
| 679 writeByte(node.isConst ? Tag.ConstListLiteral : Tag.ListLiteral); | 681 writeByte(node.isConst ? Tag.ConstListLiteral : Tag.ListLiteral); |
| 682 writeOffset(node, node.fileOffset); |
| 680 writeNode(node.typeArgument); | 683 writeNode(node.typeArgument); |
| 681 writeNodeList(node.expressions); | 684 writeNodeList(node.expressions); |
| 682 } | 685 } |
| 683 | 686 |
| 684 visitMapLiteral(MapLiteral node) { | 687 visitMapLiteral(MapLiteral node) { |
| 685 writeByte(node.isConst ? Tag.ConstMapLiteral : Tag.MapLiteral); | 688 writeByte(node.isConst ? Tag.ConstMapLiteral : Tag.MapLiteral); |
| 686 writeOffset(node, node.fileOffset); | 689 writeOffset(node, node.fileOffset); |
| 687 writeNode(node.keyType); | 690 writeNode(node.keyType); |
| 688 writeNode(node.valueType); | 691 writeNode(node.valueType); |
| 689 writeNodeList(node.entries); | 692 writeNodeList(node.entries); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 748 | 751 |
| 749 visitLabeledStatement(LabeledStatement node) { | 752 visitLabeledStatement(LabeledStatement node) { |
| 750 _labelIndexer.enter(node); | 753 _labelIndexer.enter(node); |
| 751 writeByte(Tag.LabeledStatement); | 754 writeByte(Tag.LabeledStatement); |
| 752 writeNode(node.body); | 755 writeNode(node.body); |
| 753 _labelIndexer.exit(); | 756 _labelIndexer.exit(); |
| 754 } | 757 } |
| 755 | 758 |
| 756 visitBreakStatement(BreakStatement node) { | 759 visitBreakStatement(BreakStatement node) { |
| 757 writeByte(Tag.BreakStatement); | 760 writeByte(Tag.BreakStatement); |
| 761 writeOffset(node, node.fileOffset); |
| 758 writeUInt30(_labelIndexer[node.target]); | 762 writeUInt30(_labelIndexer[node.target]); |
| 759 } | 763 } |
| 760 | 764 |
| 761 visitWhileStatement(WhileStatement node) { | 765 visitWhileStatement(WhileStatement node) { |
| 762 writeByte(Tag.WhileStatement); | 766 writeByte(Tag.WhileStatement); |
| 763 writeNode(node.condition); | 767 writeNode(node.condition); |
| 764 writeNode(node.body); | 768 writeNode(node.body); |
| 765 } | 769 } |
| 766 | 770 |
| 767 visitDoStatement(DoStatement node) { | 771 visitDoStatement(DoStatement node) { |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 851 writeNode(node.expression); | 855 writeNode(node.expression); |
| 852 } | 856 } |
| 853 | 857 |
| 854 visitVariableDeclaration(VariableDeclaration node) { | 858 visitVariableDeclaration(VariableDeclaration node) { |
| 855 writeByte(Tag.VariableDeclaration); | 859 writeByte(Tag.VariableDeclaration); |
| 856 writeVariableDeclaration(node); | 860 writeVariableDeclaration(node); |
| 857 } | 861 } |
| 858 | 862 |
| 859 void writeVariableDeclaration(VariableDeclaration node) { | 863 void writeVariableDeclaration(VariableDeclaration node) { |
| 860 writeOffset(node, node.fileOffset); | 864 writeOffset(node, node.fileOffset); |
| 865 writeOffset(node, node.fileEqualsOffset); |
| 861 writeByte(node.flags); | 866 writeByte(node.flags); |
| 862 writeStringReference(node.name ?? ''); | 867 writeStringReference(node.name ?? ''); |
| 863 writeNode(node.type); | 868 writeNode(node.type); |
| 864 writeOptionalInferredValue(node.inferredValue); | 869 writeOptionalInferredValue(node.inferredValue); |
| 865 writeOptionalNode(node.initializer); | 870 writeOptionalNode(node.initializer); |
| 866 // Declare the variable after its initializer. It is not in scope in its | 871 // Declare the variable after its initializer. It is not in scope in its |
| 867 // own initializer. | 872 // own initializer. |
| 868 _variableIndexer.declare(node); | 873 _variableIndexer.declare(node); |
| 869 } | 874 } |
| 870 | 875 |
| (...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1241 void flush() { | 1246 void flush() { |
| 1242 _sink.add(_buffer.sublist(0, length)); | 1247 _sink.add(_buffer.sublist(0, length)); |
| 1243 _buffer = new Uint8List(SIZE); | 1248 _buffer = new Uint8List(SIZE); |
| 1244 length = 0; | 1249 length = 0; |
| 1245 } | 1250 } |
| 1246 | 1251 |
| 1247 void flushAndDestroy() { | 1252 void flushAndDestroy() { |
| 1248 _sink.add(_buffer.sublist(0, length)); | 1253 _sink.add(_buffer.sublist(0, length)); |
| 1249 } | 1254 } |
| 1250 } | 1255 } |
| OLD | NEW |