@@ -66,10 +66,6 @@ void main(List<String> args) async {
6666 printUsage ();
6767 exit (1 );
6868 }
69- var entry = p.canonicalize (options.rest.first);
70- var libRoot = p.dirname (entry);
71- var basename = p.basenameWithoutExtension (entry);
72-
7369 var debug = options['debug' ] as bool ;
7470 var kernel = options['kernel' ] as bool ;
7571 var summarizeText = options['summarize-text' ] as bool ;
@@ -78,6 +74,14 @@ void main(List<String> args) async {
7874 var summaries = options['summary' ] as List ;
7975 var port = int .parse (options['port' ] as String );
8076
77+ var entry = p.canonicalize (options.rest.first);
78+ var libRoot = p.dirname (entry);
79+ var basename = p.basenameWithoutExtension (entry);
80+ var libname = kernel
81+ ? p.relative (p.withoutExtension (entry)).replaceAll ('/' , '__' )
82+ : basename;
83+ libname = libname.replaceAll ('-' , '_' );
84+
8185 // By default (no `-d`), we use the `dartdevc` binary on the user's path to
8286 // compute the SDK we use for execution. I.e., we assume that `dart` is
8387 // under `$DART_SDK/bin/dart` and use that to find `dartdevc` and related
@@ -200,7 +204,7 @@ void main(List<String> args) async {
200204 function(sdk, app) {
201205 'use strict';
202206 sdk._debugger.registerDevtoolsFormatter();
203- app.$basename .main();
207+ app.$libname .main();
204208 });
205209</script>
206210""" ;
@@ -225,7 +229,7 @@ void main(List<String> args) async {
225229 } catch(e) {
226230 }
227231 let sdk = require(\" dart_sdk\" );
228- let main = require(\" ./$basename \" ).$basename .main;
232+ let main = require(\" ./$basename \" ).$libname .main;
229233 try {
230234 sdk._isolate_helper.startRootIsolate(main, []);
231235 } catch(e) {
@@ -255,7 +259,7 @@ void main(List<String> args) async {
255259 var runjs = '''
256260 import { dart, _isolate_helper } from '$sdkJsPath /dart_sdk.js';
257261 import { $basename } from '$basename .js';
258- let main = $basename .main;
262+ let main = $libname .main;
259263 try {
260264 _isolate_helper.startRootIsolate(() => {}, []);
261265 main();
0 commit comments