Index: sdk/lib/_internal/compiler/implementation/lib/js_helper.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/lib/js_helper.dart b/sdk/lib/_internal/compiler/implementation/lib/js_helper.dart |
index a6ed014c7407e8a713475228f31b037821955455..623878625db785bfb0c0005754242f2798589612 100644 |
--- a/sdk/lib/_internal/compiler/implementation/lib/js_helper.dart |
+++ b/sdk/lib/_internal/compiler/implementation/lib/js_helper.dart |
@@ -1139,28 +1139,28 @@ propertyTypeCast(value, property) { |
} |
/** |
- * For types that are supertypes of native (eg DOM) types, we emit a |
- * call because we cannot add a JS property to their prototype at load |
- * time. |
+ * For types that are supertypes of native (eg DOM) types, we use the |
+ * interceptor for the class because we cannot add a JS property to the |
+ * prototype at load time. |
*/ |
-callTypeCheck(value, property) { |
+interceptedTypeCheck(value, property) { |
if (value == null) return value; |
if ((identical(JS('String', 'typeof #', value), 'object')) |
- && JS('bool', '#[#]()', getInterceptor(value), property)) { |
+ && JS('bool', '#[#]', getInterceptor(value), property)) { |
return value; |
} |
propertyTypeError(value, property); |
} |
/** |
- * For types that are supertypes of native (eg DOM) types, we emit a |
- * call because we cannot add a JS property to their prototype at load |
- * time. |
+ * For types that are supertypes of native (eg DOM) types, we use the |
+ * interceptor for the class because we cannot add a JS property to the |
+ * prototype at load time. |
*/ |
-callTypeCast(value, property) { |
+interceptedTypeCast(value, property) { |
if (value == null |
|| ((JS('bool', 'typeof # === "object"', value)) |
- && JS('bool', '#[#]()', getInterceptor(value), property))) { |
+ && JS('bool', '#[#]', getInterceptor(value), property))) { |
return value; |
} |
propertyTypeCastError(value, property); |
@@ -1188,7 +1188,7 @@ numberOrStringSuperNativeTypeCheck(value, property) { |
if (value == null) return value; |
if (value is String) return value; |
if (value is num) return value; |
- if (JS('bool', '#[#]()', value, property)) return value; |
+ if (JS('bool', '#[#]', getInterceptor(value), property)) return value; |
propertyTypeError(value, property); |
} |
@@ -1196,7 +1196,7 @@ numberOrStringSuperNativeTypeCast(value, property) { |
if (value == null) return value; |
if (value is String) return value; |
if (value is num) return value; |
- if (JS('bool', '#[#]()', value, property)) return value; |
+ if (JS('bool', '#[#]', getInterceptor(value), property)) return value; |
propertyTypeCastError(value, property); |
} |
@@ -1219,13 +1219,13 @@ stringSuperTypeCast(value, property) { |
stringSuperNativeTypeCheck(value, property) { |
if (value == null) return value; |
if (value is String) return value; |
- if (JS('bool', '#[#]()', value, property)) return value; |
+ if (JS('bool', '#[#]', getInterceptor(value), property)) return value; |
propertyTypeError(value, property); |
} |
stringSuperNativeTypeCast(value, property) { |
if (value is String || value == null) return value; |
- if (JS('bool', '#[#]()', value, property)) return value; |
+ if (JS('bool', '#[#]', getInterceptor(value), property)) return value; |
propertyTypeCastError(value, property); |
} |
@@ -1260,13 +1260,13 @@ listSuperTypeCast(value, property) { |
listSuperNativeTypeCheck(value, property) { |
if (value == null) return value; |
if (value is List) return value; |
- if (JS('bool', '#[#]()', value, property)) return value; |
+ if (JS('bool', '#[#]', getInterceptor(value), property)) return value; |
propertyTypeError(value, property); |
} |
listSuperNativeTypeCast(value, property) { |
if (value is List || value == null) return value; |
- if (JS('bool', '#[#]()', value, property)) return value; |
+ if (JS('bool', '#[#]', getInterceptor(value), property)) return value; |
propertyTypeCastError(value, property); |
} |