Index: sdk/lib/_internal/compiler/js_lib/js_rti.dart |
diff --git a/sdk/lib/_internal/compiler/js_lib/js_rti.dart b/sdk/lib/_internal/compiler/js_lib/js_rti.dart |
index 36edf22324ef68d0818f953dd0b72bac96bc54e6..f1531501070267101dc1ecb65b3443f12d4b375a 100644 |
--- a/sdk/lib/_internal/compiler/js_lib/js_rti.dart |
+++ b/sdk/lib/_internal/compiler/js_lib/js_rti.dart |
@@ -105,8 +105,8 @@ getRuntimeTypeInfo(Object target) { |
* Returns the type arguments of [target] as an instance of [substitutionName]. |
*/ |
getRuntimeTypeArguments(target, substitutionName) { |
- var substitution = |
- getField(target, '${JS_GET_NAME(JsGetName.OPERATOR_AS_PREFIX)}$substitutionName'); |
+ var substitution = getField(target, |
+ '${JS_GET_NAME(JsGetName.OPERATOR_AS_PREFIX)}$substitutionName'); |
return substitute(substitution, getRuntimeTypeInfo(target)); |
} |
@@ -392,7 +392,8 @@ bool checkSubtypeOfRuntimeType(o, t) { |
} else if (isDartFunctionType(t)) { |
// Functions are treated specially and have their type information stored |
// directly in the instance. |
- var targetSignatureFunction = getField(o, '${JS_GET_NAME(JsGetName.SIGNATURE_NAME)}'); |
+ var targetSignatureFunction = |
+ getField(o, '${JS_GET_NAME(JsGetName.SIGNATURE_NAME)}'); |
if (targetSignatureFunction == null) return false; |
type = invokeOn(targetSignatureFunction, o, null); |
return isFunctionSubtype(type, t); |
@@ -459,7 +460,8 @@ bool isSubtype(var s, var t) { |
return false; |
} |
var typeOfSPrototype = JS('', '#.prototype', typeOfS); |
- var field = '${JS_GET_NAME(JsGetName.OPERATOR_AS_PREFIX)}${runtimeTypeToString(typeOfT)}'; |
+ var field = '${JS_GET_NAME(JsGetName.OPERATOR_AS_PREFIX)}' |
+ '${runtimeTypeToString(typeOfT)}'; |
substitution = getField(typeOfSPrototype, field); |
} |
// The class of [s] is a subclass of the class of [t]. If [s] has no type |
@@ -531,25 +533,26 @@ bool areAssignableMaps(var s, var t) { |
bool isFunctionSubtype(var s, var t) { |
assert(isDartFunctionType(t)); |
if (!isDartFunctionType(s)) return false; |
- if (hasField(s, '${JS_GET_NAME(JsGetName.FUNCTION_TYPE_VOID_RETURN_TAG)}')) { |
- if (hasNoField(t, '${JS_GET_NAME(JsGetName.FUNCTION_TYPE_VOID_RETURN_TAG)}') && |
- hasField(t, '${JS_GET_NAME(JsGetName.FUNCTION_TYPE_RETURN_TYPE_TAG)}')) { |
+ var voidReturnTag = JS_GET_NAME(JsGetName.FUNCTION_TYPE_VOID_RETURN_TAG); |
+ var returnTypeTag = JS_GET_NAME(JsGetName.FUNCTION_TYPE_RETURN_TYPE_TAG); |
+ if (hasField(s, voidReturnTag)) { |
+ if (hasNoField(t, voidReturnTag) && hasField(t, returnTypeTag)) { |
return false; |
} |
- } else if (hasNoField(t, '${JS_GET_NAME(JsGetName.FUNCTION_TYPE_VOID_RETURN_TAG)}')) { |
- var sReturnType = getField(s, '${JS_GET_NAME(JsGetName.FUNCTION_TYPE_RETURN_TYPE_TAG)}'); |
- var tReturnType = getField(t, '${JS_GET_NAME(JsGetName.FUNCTION_TYPE_RETURN_TYPE_TAG)}'); |
+ } else if (hasNoField(t, voidReturnTag)) { |
+ var sReturnType = getField(s, returnTypeTag); |
+ var tReturnType = getField(t, returnTypeTag); |
if (!isAssignable(sReturnType, tReturnType)) return false; |
} |
- var sParameterTypes = |
- getField(s, '${JS_GET_NAME(JsGetName.FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG)}'); |
- var tParameterTypes = |
- getField(t, '${JS_GET_NAME(JsGetName.FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG)}'); |
+ var requiredParametersTag = |
+ JS_GET_NAME(JsGetName.FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG); |
+ var sParameterTypes = getField(s, requiredParametersTag); |
+ var tParameterTypes = getField(t, requiredParametersTag); |
- var sOptionalParameterTypes = |
- getField(s, '${JS_GET_NAME(JsGetName.FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG)}'); |
- var tOptionalParameterTypes = |
- getField(t, '${JS_GET_NAME(JsGetName.FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG)}'); |
+ var optionalParametersTag = |
+ JS_GET_NAME(JsGetName.FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG); |
+ var sOptionalParameterTypes = getField(s, optionalParametersTag); |
+ var tOptionalParameterTypes = getField(t, optionalParametersTag); |
int sParametersLen = sParameterTypes != null ? getLength(sParameterTypes) : 0; |
int tParametersLen = tParameterTypes != null ? getLength(tParameterTypes) : 0; |
@@ -606,10 +609,10 @@ bool isFunctionSubtype(var s, var t) { |
} |
} |
- var sNamedParameters = |
- getField(s, '${JS_GET_NAME(JsGetName.FUNCTION_TYPE_NAMED_PARAMETERS_TAG)}'); |
- var tNamedParameters = |
- getField(t, '${JS_GET_NAME(JsGetName.FUNCTION_TYPE_NAMED_PARAMETERS_TAG)}'); |
+ var namedParametersTag = |
+ JS_GET_NAME(JsGetName.FUNCTION_TYPE_NAMED_PARAMETERS_TAG); |
+ var sNamedParameters = getField(s, namedParametersTag); |
+ var tNamedParameters = getField(t, namedParametersTag); |
return areAssignableMaps(sNamedParameters, tNamedParameters); |
} |