Index: tool/input_sdk/private/foreign_helper.dart |
diff --git a/tool/input_sdk/private/foreign_helper.dart b/tool/input_sdk/private/foreign_helper.dart |
index 468e640bcc465022f9e8fb907c5cf75c78cca4b2..4595d16081a936aa60009600866a2c6963ac7217 100644 |
--- a/tool/input_sdk/private/foreign_helper.dart |
+++ b/tool/input_sdk/private/foreign_helper.dart |
@@ -110,6 +110,15 @@ JS(String typeDescription, String codeTemplate, |
[arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11]) |
{} |
+/// Annotates the compiled Js name for fields and methods. |
+/// Similar behaviour to `JS` from `package:js/js.dart` (but usable from runtime |
+/// files), and not to be confused with `JSName` from `js_helper` (which deals |
+/// with names of externs). |
+class JsName { |
+ final String name; |
+ const JsName(this.name); |
+} |
+ |
/** |
* Returns the isolate in which this code is running. |
*/ |
@@ -272,3 +281,28 @@ String JS_STRING_CONCAT(String a, String b) { |
// This body is unused, only here for type analysis. |
return JS('String', '# + #', a, b); |
} |
+ |
+/// Same `@rest` annotation and `spread` function as in |
+/// `package:js/src/varargs.dart`. |
+/// |
+/// Runtime files cannot import packages, which is why we have an ad-hoc copy. |
+ |
+class _Rest { |
+ const _Rest(); |
+} |
+ |
+const _Rest rest = const _Rest(); |
+ |
+dynamic spread(args) { |
+ throw new StateError( |
+ 'The spread function cannot be called, ' |
+ 'it should be compiled away.'); |
+} |
+ |
+/// This is a compiler intrinsic that gets expanded to the provided type's |
+/// generic constructor (`genericTypeConstructor(Foo)` gives `foolib.Foo$`). |
+genericTypeConstructor(type) { |
+ throw new StateError( |
+ 'This function cannot be called, ' |
+ 'it should be compiled away.'); |
+} |