*Properly* fix that package-root bug.

It turns out internally we expect the package root to be a path, so we
should only convert it at the boundary to dart2js.

R=kevmoo@google.com

Review URL: https://codereview.chromium.org//1051133002
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f859781..2913c8a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+### 0.12.0-beta.4
+
+* Fix a package-root bug.
+
 ### 0.12.0-beta.3
 
 * Add support for `shelf` `0.6.0`.
diff --git a/lib/src/runner/browser/compiler_pool.dart b/lib/src/runner/browser/compiler_pool.dart
index 7ccecf8..e5ba056 100644
--- a/lib/src/runner/browser/compiler_pool.dart
+++ b/lib/src/runner/browser/compiler_pool.dart
@@ -73,7 +73,7 @@
         var args = ["--checked", wrapperPath, "--out=$jsPath"];
 
         if (packageRoot != null) {
-          args.add("--package-root=${p.absolute(packageRoot)}");
+          args.add("--package-root=${p.toUri(p.absolute(packageRoot))}");
         }
 
         if (_color) args.add("--enable-diagnostic-colors");
diff --git a/lib/src/util/io.dart b/lib/src/util/io.dart
index 4fd8c7e..39c336a 100644
--- a/lib/src/util/io.dart
+++ b/lib/src/util/io.dart
@@ -100,7 +100,7 @@
     throw new LoadException(path, "Directory $packageRoot does not exist.");
   }
 
-  return p.toUri(packageRoot).toString();
+  return packageRoot;
 }
 
 /// The library name must be globally unique, or the wrong library path may be
diff --git a/pubspec.yaml b/pubspec.yaml
index 590e9fd..577cd58 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: test
-version: 0.12.0-beta.3
+version: 0.12.0-beta.4
 author: Dart Team <misc@dartlang.org>
 description: A library for writing dart unit tests.
 homepage: https://github.com/dart-lang/test