Skip to content

Commit 834587a

Browse files
vsmenoncommit-bot@chromium.org
authored andcommitted
[dartdevc] fix import/export declarations for es6 to add extension
d8 assumes a '.js' extension - e.g.,: ``` import { core, dart, dartx } from 'dart_sdk.js'; ``` Note: this will enable Siggi's modular compilation framework to run DDC tests on d8. Change-Id: I1167a36e1454950149fecb8abc793728a16e4591 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103780 Reviewed-by: Nicholas Shahan <[email protected]> Commit-Queue: Vijay Menon <[email protected]>
1 parent d06592b commit 834587a

File tree

5 files changed

+13
-4
lines changed

5 files changed

+13
-4
lines changed

pkg/dev_compiler/lib/src/js_ast/printer.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1306,7 +1306,7 @@ class Printer implements NodeVisitor {
13061306
if (from != null) {
13071307
out(' from');
13081308
spaceOut();
1309-
visit(from);
1309+
out("'${from.valueWithoutQuotes}.js'");
13101310
}
13111311
}
13121312

pkg/dev_compiler/test/sourcemap/ddc_common.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ void createHtmlWrapper(File sdkJsFile, Uri outputFile, String jsContent,
167167
var sdkFile = File(path.relative(sdkJsFile.path, from: sdkRoot.path));
168168
String jsRootDart = "/root_dart/${sdkFile.uri}";
169169
File.fromUri(outputFile.resolve("$outputFilename.html.js")).writeAsStringSync(
170-
jsContent.replaceFirst("from 'dart_sdk'", "from '$jsRootDart'"));
170+
jsContent.replaceFirst("from 'dart_sdk.js'", "from '$jsRootDart'"));
171171
File.fromUri(outputFile.resolve("$outputFilename.html.html"))
172172
.writeAsStringSync(getWrapperHtmlContent(
173173
jsRootDart, "/root_build/$outputFilename.html.js"));

pkg/dev_compiler/test/sourcemap/sourcemaps_ddc_suite.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ class DevCompilerRunner implements CompilerRunner {
7070

7171
var jsContent = File.fromUri(outputFile).readAsStringSync();
7272
File.fromUri(outputFile).writeAsStringSync(jsContent.replaceFirst(
73-
"from 'dart_sdk'", "from '${uriPathForwardSlashed(jsSdkPath)}'"));
73+
"from 'dart_sdk.js'", "from '${uriPathForwardSlashed(jsSdkPath)}'"));
7474

7575
if (debugging) {
7676
createHtmlWrapper(

pkg/dev_compiler/test/sourcemap/sourcemaps_ddk_suite.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ class DevCompilerRunner implements CompilerRunner {
8989

9090
var jsContent = File.fromUri(outputFile).readAsStringSync();
9191
File.fromUri(outputFile).writeAsStringSync(jsContent.replaceFirst(
92-
"from 'dart_sdk'", "from '${uriPathForwardSlashed(jsSdkPath)}'"));
92+
"from 'dart_sdk.js'", "from '${uriPathForwardSlashed(jsSdkPath)}'"));
9393

9494
if (debugging) {
9595
createHtmlWrapper(

pkg/dev_compiler/tool/ddb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,15 @@ void main(List<String> args) async {
236236
nodeBinary, ['--inspect=localhost:$port', nodeFile],
237237
environment: {'NODE_PATH': nodePath});
238238
} else if (d8) {
239+
// Fix SDK import. `d8` doesn't let us set paths, so we need a full path
240+
// to the SDK.
241+
242+
var jsFile = File('$libRoot/$basename.js');
243+
var jsContents = jsFile.readAsStringSync();
244+
jsContents = jsContents.replaceFirst(
245+
"from 'dart_sdk.js'", "from '$sdkJsPath/dart_sdk.js'");
246+
jsFile.writeAsStringSync(jsContents);
247+
239248
var runjs = '''
240249
import { dart, _isolate_helper } from '$sdkJsPath/dart_sdk.js';
241250
import { $basename } from '$basename.js';

0 commit comments

Comments
 (0)