Repository: flutter
Issue: Isolate.spawnUri() throws a confusing exception
Labels: c: crash,engine,dependency: dart,P2,team-engine,triaged-engine

@jason-simmons @abarth
From a closed issue #8084 it seems like `Isolate.spawnUri()` is not supported under flutter. However, the `IsolateSpawnException` thrown doesn't represent the not-implemented state of this method. Even when using `file://` URIs the exceptions states `Isolates must use file:// URIs`

Documentation for `Isolate.spawnUri()` also exists in the flutter documentation without mention that this method isn't supported: https://docs.flutter.io/flutter/dart-isolate/Isolate/spawnUri.html

## Steps to Reproduce

Use `Isolate.spawnUri()` with any URI.

## Logs

```
[ERROR:../../lib/tonic/logging/dart_error.cc(16)] Unhandled exception:
IsolateSpawnException: Unable to spawn isolate: Isolates must use file:// URIs
#0      Isolate.spawnUri (dart:isolate-patch/isolate_patch.dart:440)
<asynchronous suspension>
#1      _TestPageState._getHello (/lib/main.dart:140:19)
<asynchronous suspension>
#2      _TestPageState._onPressedHello (/lib/main.dart:123:5)
#3      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:229:14)
#4      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:67:24)
#5      TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:149:9)
#6      TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:92:7)
#7      PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:266:9)
#8      PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:73:12)
#9      PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:101:11)
#10     BindingBase&SchedulerBinding&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:127:19)
#11     BindingBase&SchedulerBinding&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:105:22)
#12     BindingBase&SchedulerBinding&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:86:7)
#13     BindingBase&SchedulerBinding&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:45:7)
#14     BindingBase&SchedulerBinding&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:38:5)
#15     _dispatchPointerDataPacket (file:///b/build/slave/Mac_Engine/build/src/flutter/lib/ui/hooks.dart:73)
```

## Flutter Doctor

```
[✓] Flutter (on Mac OS X 10.12.5 16F73, locale en-US, channel master)
    • Flutter at /Users/matthewhurst/Projects/flutter
    • Framework revision 3e645ee2db (7 hours ago), 2017-06-07 15:54:29 +0200
    • Engine revision 8686a45810
    • Tools Dart version 1.24.0-dev.3.0

[✓] Android toolchain - develop for Android devices (Android SDK 25.0.3)
    • Android SDK at /Users/matthewhurst/Library/Android/sdk
    • Platform android-25, build-tools 25.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_112-release-b06)

[✓] iOS toolchain - develop for iOS devices (Xcode 8.3.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 8.3.2, Build version 8E2002
    • ios-deploy 1.9.1
    • CocoaPods version 1.2.1

[✓] Android Studio (version 2.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Gradle version 3.2
    • Java version OpenJDK Runtime Environment (build 1.8.0_112-release-b06)

[✓] IntelliJ IDEA Community Edition (version 2017.1.3)
    • Flutter plugin version 14.0
    • Dart plugin version 171.4424.63

[-] WebStorm (version 2017.1.3)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    • For information about managing plugins, see
      https://www.jetbrains.com/help/idea/managing-plugins.html

[✓] Connected devices
    • iPhone 6 • 25593D6D-F20D-4759-91BF-A20F0263FD10 • ios • iOS 10.3 (simulator)
```