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

Side by Side Diff: pkg/kernel/lib/binary/ast_to_binary.dart

Issue 2680303002: Kernel debugging; service tests (Closed)
Patch Set: Correct file offset when calling on field (mind the rebase) Created 3 years, 10 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) 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
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
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
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698