Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Unified Diff: sdk/lib/_internal/js_runtime/lib/js_helper.dart

Issue 2707933002: Tests for `void`.
Patch Set: More tests. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sdk/lib/_internal/js_runtime/lib/js_helper.dart
diff --git a/sdk/lib/_internal/js_runtime/lib/js_helper.dart b/sdk/lib/_internal/js_runtime/lib/js_helper.dart
index 86e80d81b6ddbed5229a0da8d4540ac24cdd27c3..34fddfb13f8c020401a2752e85b27bf76fd3741a 100644
--- a/sdk/lib/_internal/js_runtime/lib/js_helper.dart
+++ b/sdk/lib/_internal/js_runtime/lib/js_helper.dart
@@ -163,6 +163,15 @@ bool isNullType(Object type) {
JS_GET_NAME(JsGetName.NULL_CLASS_TYPE_NAME));
}
+/// Returns true if the given [type] is the `void` type.
+@ForceInline()
+bool isVoidType(Object type) {
+ return JS_BUILTIN('returns:bool;effects:none;depends:none',
+ JsBuiltin.isGivenTypeRti,
+ type,
+ JS_GET_NAME(JsGetName.VOID_CLASS_TYPE_NAME));
+}
+
/// Returns whether the given type is _the_ Dart Object type.
// TODO(floitsch): move this to foreign_helper.dart or similar.
@ForceInline()
@@ -183,6 +192,16 @@ bool isNullTypeRti(type) {
JS_GET_NAME(JsGetName.NULL_CLASS_TYPE_NAME));
}
+/// Returns whether the given type is void type.
+// TODO(floitsch): move this to foreign_helper.dart or similar.
+@ForceInline()
+bool isVoidTypeRti(type) {
+ return JS_BUILTIN('returns:bool;effects:none;depends:none',
+ JsBuiltin.isGivenTypeRti,
+ type,
+ JS_GET_NAME(JsGetName.VOID_CLASS_TYPE_NAME));
+}
+
/// Returns the metadata of the given [index].
// TODO(floitsch): move this to foreign_helper.dart or similar.
@ForceInline()
@@ -3698,11 +3717,14 @@ RuntimeType getDynamicRuntimeType() => const DynamicRuntimeType();
class VoidRuntimeType extends RuntimeType {
const VoidRuntimeType();
- String toString() => 'void';
+ String toString() => (new Void().runtimeType).toString(); // 'void';
toRti() => throw 'internal error';
}
+/// The internal class representing `void`.
+class Void {}
+
RuntimeType getVoidRuntimeType() => const VoidRuntimeType();
/**

Powered by Google App Engine
This is Rietveld 408576698