| 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 | 4 |
| 5 library dart2js.serialization.resolved_ast; | 5 library dart2js.serialization.resolved_ast; |
| 6 | 6 |
| 7 import 'package:front_end/src/fasta/parser.dart' show Parser, ParserError; | 7 import 'package:front_end/src/fasta/parser.dart' show Parser, ParserError; |
| 8 import 'package:front_end/src/fasta/scanner.dart'; | 8 import 'package:front_end/src/fasta/scanner.dart'; |
| 9 | 9 |
| 10 import '../common.dart'; | 10 import '../common.dart'; |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 serializeLabelDefinition(labelDefinition, list.createObject()); | 171 serializeLabelDefinition(labelDefinition, list.createObject()); |
| 172 } | 172 } |
| 173 } | 173 } |
| 174 | 174 |
| 175 if (element is FunctionElement) { | 175 if (element is FunctionElement) { |
| 176 serializeParameterNodes(element); | 176 serializeParameterNodes(element); |
| 177 } | 177 } |
| 178 } | 178 } |
| 179 | 179 |
| 180 void serializeParameterNodes(FunctionElement function) { | 180 void serializeParameterNodes(FunctionElement function) { |
| 181 function.functionSignature.forEachParameter((ParameterElement parameter) { | 181 function.functionSignature.forEachParameter((_parameter) { |
| 182 ParameterElement parameter = _parameter; |
| 182 ParameterElement parameterImpl = parameter.implementation; | 183 ParameterElement parameterImpl = parameter.implementation; |
| 183 // TODO(johnniwinther): Should we support element->node mapping as well? | 184 // TODO(johnniwinther): Should we support element->node mapping as well? |
| 184 getNodeDataEncoder(parameterImpl.node) | 185 getNodeDataEncoder(parameterImpl.node) |
| 185 .setElement(PARAMETER_NODE, parameter); | 186 .setElement(PARAMETER_NODE, parameter); |
| 186 if (parameter.initializer != null) { | 187 if (parameter.initializer != null) { |
| 187 getNodeDataEncoder(parameterImpl.initializer) | 188 getNodeDataEncoder(parameterImpl.initializer) |
| 188 .setElement(PARAMETER_INITIALIZER, parameter); | 189 .setElement(PARAMETER_INITIALIZER, parameter); |
| 189 } | 190 } |
| 190 }); | 191 }); |
| 191 } | 192 } |
| (...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 598 String labelName = decoder.getString(Key.NAME); | 599 String labelName = decoder.getString(Key.NAME); |
| 599 JumpTarget target = jumpTargets[decoder.getInt(Key.JUMP_TARGET)]; | 600 JumpTarget target = jumpTargets[decoder.getInt(Key.JUMP_TARGET)]; |
| 600 LabelDefinitionX labelDefinition = | 601 LabelDefinitionX labelDefinition = |
| 601 new LabelDefinitionX(label, labelName, target); | 602 new LabelDefinitionX(label, labelName, target); |
| 602 labelDefinition.isBreakTarget = decoder.getBool(Key.IS_BREAK_TARGET); | 603 labelDefinition.isBreakTarget = decoder.getBool(Key.IS_BREAK_TARGET); |
| 603 labelDefinition.isContinueTarget = | 604 labelDefinition.isContinueTarget = |
| 604 decoder.getBool(Key.IS_CONTINUE_TARGET); | 605 decoder.getBool(Key.IS_CONTINUE_TARGET); |
| 605 labelDefinitions.add(labelDefinition); | 606 labelDefinitions.add(labelDefinition); |
| 606 } | 607 } |
| 607 } | 608 } |
| 608 jumpTargetLabels.forEach((JumpTargetX jumpTarget, List<int> labelIds) { | 609 jumpTargetLabels.forEach((JumpTarget jumpTarget, List<int> labelIds) { |
| 609 if (labelIds.isEmpty) return; | 610 if (labelIds.isEmpty) return; |
| 610 List<LabelDefinition> labels = <LabelDefinition>[]; | 611 List<LabelDefinition> labels = <LabelDefinition>[]; |
| 611 for (int labelId in labelIds) { | 612 for (int labelId in labelIds) { |
| 612 labels.add(labelDefinitions[labelId]); | 613 labels.add(labelDefinitions[labelId]); |
| 613 } | 614 } |
| 614 jumpTarget.labels = labels; | 615 JumpTargetX target = jumpTarget; |
| 616 target.labels = labels; |
| 615 }); | 617 }); |
| 616 | 618 |
| 617 ListDecoder dataDecoder = objectDecoder.getList(Key.DATA, isOptional: true); | 619 ListDecoder dataDecoder = objectDecoder.getList(Key.DATA, isOptional: true); |
| 618 if (dataDecoder != null) { | 620 if (dataDecoder != null) { |
| 619 for (int i = 0; i < dataDecoder.length; i++) { | 621 for (int i = 0; i < dataDecoder.length; i++) { |
| 620 ObjectDecoder objectDecoder = dataDecoder.getObject(i); | 622 ObjectDecoder objectDecoder = dataDecoder.getObject(i); |
| 621 int id = objectDecoder.getInt(Key.ID); | 623 int id = objectDecoder.getInt(Key.ID); |
| 622 Node node = nodeList[id]; | 624 Node node = nodeList[id]; |
| 623 Element nodeElement = deserializeElementReference( | 625 Element nodeElement = deserializeElementReference( |
| 624 element, Key.ELEMENT, Key.NAME, objectDecoder, | 626 element, Key.ELEMENT, Key.NAME, objectDecoder, |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 707 } | 709 } |
| 708 } | 710 } |
| 709 } | 711 } |
| 710 element.resolvedAst = | 712 element.resolvedAst = |
| 711 new ParsedResolvedAst(element, root, body, elements, uri); | 713 new ParsedResolvedAst(element, root, body, elements, uri); |
| 712 } | 714 } |
| 713 } | 715 } |
| 714 | 716 |
| 715 const Key PARAMETER_NODE = const Key('parameter.node'); | 717 const Key PARAMETER_NODE = const Key('parameter.node'); |
| 716 const Key PARAMETER_INITIALIZER = const Key('parameter.initializer'); | 718 const Key PARAMETER_INITIALIZER = const Key('parameter.initializer'); |
| OLD | NEW |