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

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

Issue 2983413002: Resynthesize constructor initializers from Kernel. (Closed)
Patch Set: Created 3 years, 5 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 457 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 writeName(node.name); 468 writeName(node.name);
469 writeUriReference(node.fileUri ?? ''); 469 writeUriReference(node.fileUri ?? '');
470 writeAnnotationList(node.annotations); 470 writeAnnotationList(node.annotations);
471 writeNode(node.type); 471 writeNode(node.type);
472 writeOptionalNode(node.initializer); 472 writeOptionalNode(node.initializer);
473 _variableIndexer = null; 473 _variableIndexer = null;
474 } 474 }
475 475
476 visitInvalidInitializer(InvalidInitializer node) { 476 visitInvalidInitializer(InvalidInitializer node) {
477 writeByte(Tag.InvalidInitializer); 477 writeByte(Tag.InvalidInitializer);
478 writeByte(node.isSynthetic ? 1 : 0);
478 } 479 }
479 480
480 visitFieldInitializer(FieldInitializer node) { 481 visitFieldInitializer(FieldInitializer node) {
481 writeByte(Tag.FieldInitializer); 482 writeByte(Tag.FieldInitializer);
483 writeByte(node.isSynthetic ? 1 : 0);
482 writeReference(node.fieldReference); 484 writeReference(node.fieldReference);
483 writeNode(node.value); 485 writeNode(node.value);
484 } 486 }
485 487
486 visitSuperInitializer(SuperInitializer node) { 488 visitSuperInitializer(SuperInitializer node) {
487 writeByte(Tag.SuperInitializer); 489 writeByte(Tag.SuperInitializer);
490 writeByte(node.isSynthetic ? 1 : 0);
488 writeReference(node.targetReference); 491 writeReference(node.targetReference);
489 writeNode(node.arguments); 492 writeNode(node.arguments);
490 } 493 }
491 494
492 visitRedirectingInitializer(RedirectingInitializer node) { 495 visitRedirectingInitializer(RedirectingInitializer node) {
493 writeByte(Tag.RedirectingInitializer); 496 writeByte(Tag.RedirectingInitializer);
497 writeByte(node.isSynthetic ? 1 : 0);
494 writeReference(node.targetReference); 498 writeReference(node.targetReference);
495 writeNode(node.arguments); 499 writeNode(node.arguments);
496 } 500 }
497 501
498 visitLocalInitializer(LocalInitializer node) { 502 visitLocalInitializer(LocalInitializer node) {
499 writeByte(Tag.LocalInitializer); 503 writeByte(Tag.LocalInitializer);
504 writeByte(node.isSynthetic ? 1 : 0);
500 writeVariableDeclaration(node.variable); 505 writeVariableDeclaration(node.variable);
501 } 506 }
502 507
503 visitFunctionNode(FunctionNode node) { 508 visitFunctionNode(FunctionNode node) {
504 writeByte(Tag.FunctionNode); 509 writeByte(Tag.FunctionNode);
505 assert(_variableIndexer != null); 510 assert(_variableIndexer != null);
506 _variableIndexer.pushScope(); 511 _variableIndexer.pushScope();
507 var oldLabels = _labelIndexer; 512 var oldLabels = _labelIndexer;
508 _labelIndexer = new LabelIndexer(); 513 _labelIndexer = new LabelIndexer();
509 var oldCases = _switchCaseIndexer; 514 var oldCases = _switchCaseIndexer;
(...skipping 999 matching lines...) Expand 10 before | Expand all | Expand 10 after
1509 _sink.add(_buffer.sublist(0, length)); 1514 _sink.add(_buffer.sublist(0, length));
1510 _buffer = new Uint8List(SIZE); 1515 _buffer = new Uint8List(SIZE);
1511 flushedLength += length; 1516 flushedLength += length;
1512 length = 0; 1517 length = 0;
1513 } 1518 }
1514 1519
1515 void flushAndDestroy() { 1520 void flushAndDestroy() {
1516 _sink.add(_buffer.sublist(0, length)); 1521 _sink.add(_buffer.sublist(0, length));
1517 } 1522 }
1518 } 1523 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698