| 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 519 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 530 } | 530 } |
| 531 | 531 |
| 532 visitStaticGet(StaticGet node) { | 532 visitStaticGet(StaticGet node) { |
| 533 writeByte(Tag.StaticGet); | 533 writeByte(Tag.StaticGet); |
| 534 writeOffset(node, node.fileOffset); | 534 writeOffset(node, node.fileOffset); |
| 535 writeMemberReference(node.target); | 535 writeMemberReference(node.target); |
| 536 } | 536 } |
| 537 | 537 |
| 538 visitStaticSet(StaticSet node) { | 538 visitStaticSet(StaticSet node) { |
| 539 writeByte(Tag.StaticSet); | 539 writeByte(Tag.StaticSet); |
| 540 writeOffset(node, node.fileOffset); |
| 540 writeMemberReference(node.target); | 541 writeMemberReference(node.target); |
| 541 writeNode(node.value); | 542 writeNode(node.value); |
| 542 } | 543 } |
| 543 | 544 |
| 544 visitMethodInvocation(MethodInvocation node) { | 545 visitMethodInvocation(MethodInvocation node) { |
| 545 writeByte(Tag.MethodInvocation); | 546 writeByte(Tag.MethodInvocation); |
| 546 writeOffset(node, node.fileOffset); | 547 writeOffset(node, node.fileOffset); |
| 547 writeNode(node.receiver); | 548 writeNode(node.receiver); |
| 548 writeName(node.name); | 549 writeName(node.name); |
| 549 writeNode(node.arguments); | 550 writeNode(node.arguments); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 630 | 631 |
| 631 visitIsExpression(IsExpression node) { | 632 visitIsExpression(IsExpression node) { |
| 632 writeByte(Tag.IsExpression); | 633 writeByte(Tag.IsExpression); |
| 633 writeOffset(node, node.fileOffset); | 634 writeOffset(node, node.fileOffset); |
| 634 writeNode(node.operand); | 635 writeNode(node.operand); |
| 635 writeNode(node.type); | 636 writeNode(node.type); |
| 636 } | 637 } |
| 637 | 638 |
| 638 visitAsExpression(AsExpression node) { | 639 visitAsExpression(AsExpression node) { |
| 639 writeByte(Tag.AsExpression); | 640 writeByte(Tag.AsExpression); |
| 641 writeOffset(node, node.fileOffset); |
| 640 writeNode(node.operand); | 642 writeNode(node.operand); |
| 641 writeNode(node.type); | 643 writeNode(node.type); |
| 642 } | 644 } |
| 643 | 645 |
| 644 visitStringLiteral(StringLiteral node) { | 646 visitStringLiteral(StringLiteral node) { |
| 645 writeByte(Tag.StringLiteral); | 647 writeByte(Tag.StringLiteral); |
| 646 writeStringReference(node.value); | 648 writeStringReference(node.value); |
| 647 } | 649 } |
| 648 | 650 |
| 649 visitIntLiteral(IntLiteral node) { | 651 visitIntLiteral(IntLiteral node) { |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 690 writeByte(Tag.TypeLiteral); | 692 writeByte(Tag.TypeLiteral); |
| 691 writeNode(node.type); | 693 writeNode(node.type); |
| 692 } | 694 } |
| 693 | 695 |
| 694 visitThisExpression(ThisExpression node) { | 696 visitThisExpression(ThisExpression node) { |
| 695 writeByte(Tag.ThisExpression); | 697 writeByte(Tag.ThisExpression); |
| 696 } | 698 } |
| 697 | 699 |
| 698 visitRethrow(Rethrow node) { | 700 visitRethrow(Rethrow node) { |
| 699 writeByte(Tag.Rethrow); | 701 writeByte(Tag.Rethrow); |
| 702 writeOffset(node, node.fileOffset); |
| 700 } | 703 } |
| 701 | 704 |
| 702 visitThrow(Throw node) { | 705 visitThrow(Throw node) { |
| 703 writeByte(Tag.Throw); | 706 writeByte(Tag.Throw); |
| 704 writeOffset(node, node.fileOffset); | 707 writeOffset(node, node.fileOffset); |
| 705 writeNode(node.expression); | 708 writeNode(node.expression); |
| 706 } | 709 } |
| 707 | 710 |
| 708 visitListLiteral(ListLiteral node) { | 711 visitListLiteral(ListLiteral node) { |
| 709 writeByte(node.isConst ? Tag.ConstListLiteral : Tag.ListLiteral); | 712 writeByte(node.isConst ? Tag.ConstListLiteral : Tag.ListLiteral); |
| 713 writeOffset(node, node.fileOffset); |
| 710 writeNode(node.typeArgument); | 714 writeNode(node.typeArgument); |
| 711 writeNodeList(node.expressions); | 715 writeNodeList(node.expressions); |
| 712 } | 716 } |
| 713 | 717 |
| 714 visitMapLiteral(MapLiteral node) { | 718 visitMapLiteral(MapLiteral node) { |
| 715 writeByte(node.isConst ? Tag.ConstMapLiteral : Tag.MapLiteral); | 719 writeByte(node.isConst ? Tag.ConstMapLiteral : Tag.MapLiteral); |
| 716 writeOffset(node, node.fileOffset); | 720 writeOffset(node, node.fileOffset); |
| 717 writeNode(node.keyType); | 721 writeNode(node.keyType); |
| 718 writeNode(node.valueType); | 722 writeNode(node.valueType); |
| 719 writeNodeList(node.entries); | 723 writeNodeList(node.entries); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 788 | 792 |
| 789 visitLabeledStatement(LabeledStatement node) { | 793 visitLabeledStatement(LabeledStatement node) { |
| 790 _labelIndexer.enter(node); | 794 _labelIndexer.enter(node); |
| 791 writeByte(Tag.LabeledStatement); | 795 writeByte(Tag.LabeledStatement); |
| 792 writeNode(node.body); | 796 writeNode(node.body); |
| 793 _labelIndexer.exit(); | 797 _labelIndexer.exit(); |
| 794 } | 798 } |
| 795 | 799 |
| 796 visitBreakStatement(BreakStatement node) { | 800 visitBreakStatement(BreakStatement node) { |
| 797 writeByte(Tag.BreakStatement); | 801 writeByte(Tag.BreakStatement); |
| 802 writeOffset(node, node.fileOffset); |
| 798 writeUInt30(_labelIndexer[node.target]); | 803 writeUInt30(_labelIndexer[node.target]); |
| 799 } | 804 } |
| 800 | 805 |
| 801 visitWhileStatement(WhileStatement node) { | 806 visitWhileStatement(WhileStatement node) { |
| 802 writeByte(Tag.WhileStatement); | 807 writeByte(Tag.WhileStatement); |
| 803 writeNode(node.condition); | 808 writeNode(node.condition); |
| 804 writeNode(node.body); | 809 writeNode(node.body); |
| 805 } | 810 } |
| 806 | 811 |
| 807 visitDoStatement(DoStatement node) { | 812 visitDoStatement(DoStatement node) { |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 891 writeNode(node.expression); | 896 writeNode(node.expression); |
| 892 } | 897 } |
| 893 | 898 |
| 894 visitVariableDeclaration(VariableDeclaration node) { | 899 visitVariableDeclaration(VariableDeclaration node) { |
| 895 writeByte(Tag.VariableDeclaration); | 900 writeByte(Tag.VariableDeclaration); |
| 896 writeVariableDeclaration(node); | 901 writeVariableDeclaration(node); |
| 897 } | 902 } |
| 898 | 903 |
| 899 void writeVariableDeclaration(VariableDeclaration node) { | 904 void writeVariableDeclaration(VariableDeclaration node) { |
| 900 writeOffset(node, node.fileOffset); | 905 writeOffset(node, node.fileOffset); |
| 906 writeOffset(node, node.fileEqualsOffset); |
| 901 writeByte(node.flags); | 907 writeByte(node.flags); |
| 902 writeStringReference(node.name ?? ''); | 908 writeStringReference(node.name ?? ''); |
| 903 writeNode(node.type); | 909 writeNode(node.type); |
| 904 writeOptionalInferredValue(node.inferredValue); | 910 writeOptionalInferredValue(node.inferredValue); |
| 905 writeOptionalNode(node.initializer); | 911 writeOptionalNode(node.initializer); |
| 906 // Declare the variable after its initializer. It is not in scope in its | 912 // Declare the variable after its initializer. It is not in scope in its |
| 907 // own initializer. | 913 // own initializer. |
| 908 _variableIndexer.declare(node); | 914 _variableIndexer.declare(node); |
| 909 } | 915 } |
| 910 | 916 |
| (...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1285 void flush() { | 1291 void flush() { |
| 1286 _sink.add(_buffer.sublist(0, length)); | 1292 _sink.add(_buffer.sublist(0, length)); |
| 1287 _buffer = new Uint8List(SIZE); | 1293 _buffer = new Uint8List(SIZE); |
| 1288 length = 0; | 1294 length = 0; |
| 1289 } | 1295 } |
| 1290 | 1296 |
| 1291 void flushAndDestroy() { | 1297 void flushAndDestroy() { |
| 1292 _sink.add(_buffer.sublist(0, length)); | 1298 _sink.add(_buffer.sublist(0, length)); |
| 1293 } | 1299 } |
| 1294 } | 1300 } |
| OLD | NEW |