[dart2wasm] Dummy isolate patch

Change-Id: Id748ef2f69c09592513ba6a3cffafc37a8450d00
Cq-Include-Trybots: luci.dart.try:dart2wasm-linux-x64-d8-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258921
Reviewed-by: Joshua Litt <joshualitt@google.com>
diff --git a/sdk/lib/_internal/wasm/lib/isolate_patch.dart b/sdk/lib/_internal/wasm/lib/isolate_patch.dart
new file mode 100644
index 0000000..9decf7e
--- /dev/null
+++ b/sdk/lib/_internal/wasm/lib/isolate_patch.dart
@@ -0,0 +1,137 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import "dart:_internal" show patch;
+
+import "dart:async" show Future, Stream;
+
+import "dart:typed_data" show TypedData;
+
+@patch
+class Isolate {
+  @patch
+  String? get debugName {
+    throw UnsupportedError("Isolate.debugName");
+  }
+
+  @patch
+  static Isolate get current {
+    throw UnsupportedError("Isolate.current");
+  }
+
+  @patch
+  static Future<Uri?> get packageConfig {
+    throw UnsupportedError("Isolate.packageConfig");
+  }
+
+  @patch
+  static Future<Uri?> resolvePackageUri(Uri packageUri) {
+    throw UnsupportedError("Isolate.resolvePackageUri");
+  }
+
+  @patch
+  static Future<Isolate> spawn<T>(void entryPoint(T message), T message,
+      {bool paused = false,
+      bool errorsAreFatal = true,
+      SendPort? onExit,
+      SendPort? onError,
+      String? debugName}) {
+    throw UnsupportedError("Isolate.spawn");
+  }
+
+  @patch
+  static Future<Isolate> spawnUri(Uri uri, List<String> args, var message,
+      {bool paused = false,
+      SendPort? onExit,
+      SendPort? onError,
+      bool errorsAreFatal = true,
+      bool? checked,
+      Map<String, String>? environment,
+      Uri? packageRoot,
+      Uri? packageConfig,
+      bool automaticPackageResolution = false,
+      String? debugName}) {
+    throw UnsupportedError("Isolate.spawnUri");
+  }
+
+  @patch
+  void _pause(Capability resumeCapability) {
+    throw UnsupportedError("Isolate._pause");
+  }
+
+  @patch
+  void resume(Capability resumeCapability) {
+    throw UnsupportedError("Isolate.resume");
+  }
+
+  @patch
+  void addOnExitListener(SendPort responsePort, {Object? response}) {
+    throw UnsupportedError("Isolate.addOnExitListener");
+  }
+
+  @patch
+  void removeOnExitListener(SendPort responsePort) {
+    throw UnsupportedError("Isolate.removeOnExitListener");
+  }
+
+  @patch
+  void setErrorsFatal(bool errorsAreFatal) {
+    throw UnsupportedError("Isolate.setErrorsFatal");
+  }
+
+  @patch
+  void kill({int priority = beforeNextEvent}) {
+    throw UnsupportedError("Isolate.kill");
+  }
+
+  @patch
+  void ping(SendPort responsePort,
+      {Object? response, int priority = immediate}) {
+    throw UnsupportedError("Isolate.ping");
+  }
+
+  @patch
+  void addErrorListener(SendPort port) {
+    throw UnsupportedError("Isolate.addErrorListener");
+  }
+
+  @patch
+  void removeErrorListener(SendPort port) {
+    throw UnsupportedError("Isolate.removeErrorListener");
+  }
+
+  @patch
+  static Never exit([SendPort? finalMessagePort, Object? message]) {
+    throw UnsupportedError("Isolate.exit");
+  }
+}
+
+@patch
+abstract class ReceivePort implements Stream<dynamic> {
+  @patch
+  factory ReceivePort([String debugName = '']) {
+    throw UnsupportedError("ReceivePort");
+  }
+
+  @patch
+  factory ReceivePort.fromRawReceivePort(RawReceivePort rawPort) {
+    throw UnsupportedError("ReceivePort.fromRawReceivePort");
+  }
+}
+
+@patch
+abstract class RawReceivePort {
+  @patch
+  factory RawReceivePort([Function? handler, String debugName = '']) {
+    throw UnsupportedError("RawReceivePort");
+  }
+}
+
+@patch
+abstract class TransferableTypedData {
+  @patch
+  factory TransferableTypedData.fromList(List<TypedData> list) {
+    throw UnsupportedError("TransferableTypedData.fromList");
+  }
+}
diff --git a/sdk/lib/libraries.json b/sdk/lib/libraries.json
index 1248afb..ee782f6 100644
--- a/sdk/lib/libraries.json
+++ b/sdk/lib/libraries.json
@@ -251,7 +251,10 @@
         "supported": false
       },
       "isolate": {
-        "uri": "isolate/isolate.dart"
+        "uri": "isolate/isolate.dart",
+        "patches": [
+          "_internal/wasm/lib/isolate_patch.dart"
+        ]
       },
       "js": {
         "uri": "js/js.dart",
diff --git a/sdk/lib/libraries.yaml b/sdk/lib/libraries.yaml
index 1941780..385aea5 100644
--- a/sdk/lib/libraries.yaml
+++ b/sdk/lib/libraries.yaml
@@ -232,6 +232,8 @@
       supported: false
     isolate:
       uri: isolate/isolate.dart
+      patches:
+        - "_internal/wasm/lib/isolate_patch.dart"
     js:
       uri: js/js.dart
       patches: _internal/wasm/lib/js_patch.dart