| Index: lib/src/utils.dart | 
| diff --git a/lib/src/utils.dart b/lib/src/utils.dart | 
| index c276858f9de752f8232769d639399bd96c04691e..7fc38a0d1beabdd58a28ad67efc4feeffea8e722 100644 | 
| --- a/lib/src/utils.dart | 
| +++ b/lib/src/utils.dart | 
| @@ -298,4 +298,20 @@ String computeHash(String contents) { | 
| return CryptoUtils.bytesToHex((new MD5()..add(contents.codeUnits)).close()); | 
| } | 
|  | 
| -String resourceOutputPath(Uri resourceUri) => resourceUri.path; | 
| +String resourceOutputPath(Uri resourceUri) { | 
| +  if (resourceUri.scheme == 'package') return resourceUri.path; | 
| + | 
| +  // Only support file:/// urls for resources in the dev_compiler package | 
| +  if (resourceUri.scheme != 'file') return null; | 
| +  var segments = resourceUri.pathSegments; | 
| +  var len = segments.length; | 
| +  if (segments.length < 4 || | 
| +      segments[len - 2] != 'runtime' || | 
| +      segments[len - 3] != 'lib' || | 
| +      // If loaded from sources this will be exactly dev_compiler, otherwise it | 
| +      // can be the name in the pub cache (typically dev_compiler-version). | 
| +      !segments[len - 4].startsWith('dev_compiler')) { | 
| +    return null; | 
| +  } | 
| +  return path.joinAll(['dev_compiler']..addAll(segments.skip(len - 2))); | 
| +} | 
|  |