2bb32ec55a
Change-Id: Ib1afd38a7d3694c2e5ed591132f41b147f76d75a Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/427560 Reviewed-by: Stephen Adams <sra@google.com> Commit-Queue: Mayank Patke <fishythefish@google.com>
84 lines
3.3 KiB
Dart
84 lines
3.3 KiB
Dart
// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
import 'dart:convert';
|
|
import 'package:expect/expect.dart';
|
|
import 'package:source_maps/source_maps.dart';
|
|
import 'tools/load.dart';
|
|
import 'tools/save.dart';
|
|
import 'package:compiler/src/util/memory_compiler.dart';
|
|
|
|
String SOURCEMAP =
|
|
'''
|
|
{
|
|
"version": 3,
|
|
"file": "out.js",
|
|
"sourceRoot": "",
|
|
"sources":
|
|
["$sdkPath/_internal/compiler/js_lib/js_primitives.dart","hello_world.dart","$sdkPath/_internal/compiler/js_lib/internal_patch.dart"],
|
|
"names": ["printString","main","printToConsole"],
|
|
"mappings": "A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;;eAoBAA;;;AAIIA;;;;AAOAA;;;AAKAA;;;AAMAA;;;GAOJA;;sC;;QC5CAC;;ICYEC;GDRFD;;;;A;A;A;;;A;;;A;A;A;A;A;A;A;;;;;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;C;;;;;;;;;;;;;;;;;;;;;;;;;;;;A"
|
|
}''';
|
|
|
|
const String HUMAN_READABLE_SOURCE_MAP = '''
|
|
{
|
|
"file": "out.js",
|
|
"sourceRoot": "",
|
|
"sources": {
|
|
"0": "out.js.map",
|
|
"1": "test.dart",
|
|
"2": "out.js"
|
|
},
|
|
"lines": [
|
|
{"target": "3,3-", "source": "1:2,17"},
|
|
{"target": "4,3-", "source": "1:3,17"},
|
|
{"target": "5,3-15", "source": "1:4,17"},
|
|
{"target": "5,15-20", "source": "1:5,17"},
|
|
{"target": "5,20-", "source": "1:6,4"},
|
|
{"target": "6,3-", "source": "1:7,17"},
|
|
{"target": "7,3-", "source": "1:8,17"},
|
|
{"target": "8,1-", "source": "1:9,1"},
|
|
{"target": "10,3-", "source": "1:11,17"},
|
|
{"target": "11,3-", "source": "1:12,17"},
|
|
{"target": "12,3-", "source": "1:13,17"},
|
|
{"target": "13,3-", "source": "1:14,17"},
|
|
{"target": "14,1-", "source": "1:15,4"}
|
|
]
|
|
}''';
|
|
|
|
void main() {
|
|
testReadWrite();
|
|
testWriteRead();
|
|
}
|
|
|
|
void testReadWrite() {
|
|
SingleMapping sourceMap = SingleMapping.fromJson(json.decode(SOURCEMAP));
|
|
String humanReadable = convertToHumanReadableSourceMap(sourceMap);
|
|
SingleMapping sourceMap2 = convertFromHumanReadableSourceMap(humanReadable);
|
|
String humanReadable2 = convertToHumanReadableSourceMap(sourceMap2);
|
|
SingleMapping sourceMap3 = convertFromHumanReadableSourceMap(humanReadable2);
|
|
String humanReadable3 = convertToHumanReadableSourceMap(sourceMap3);
|
|
|
|
// Target line entries without sourceUrl are removed.
|
|
//Expect.deepEquals(sourceMap.toJson(), sourceMap2.toJson());
|
|
Expect.deepEquals(sourceMap2.toJson(), sourceMap3.toJson());
|
|
Expect.deepEquals(json.decode(humanReadable), json.decode(humanReadable2));
|
|
Expect.deepEquals(json.decode(humanReadable2), json.decode(humanReadable3));
|
|
}
|
|
|
|
void testWriteRead() {
|
|
SingleMapping sourceMap = convertFromHumanReadableSourceMap(
|
|
HUMAN_READABLE_SOURCE_MAP,
|
|
);
|
|
print(sourceMap);
|
|
String humanReadable = convertToHumanReadableSourceMap(sourceMap);
|
|
print(humanReadable);
|
|
SingleMapping sourceMap2 = convertFromHumanReadableSourceMap(humanReadable);
|
|
Expect.deepEquals(
|
|
json.decode(HUMAN_READABLE_SOURCE_MAP),
|
|
json.decode(humanReadable),
|
|
);
|
|
Expect.deepEquals(sourceMap.toJson(), sourceMap2.toJson());
|
|
}
|