Index: pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/classes.dart |
diff --git a/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/classes.dart b/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/classes.dart |
index 1c778719df1ab84ff1059e6b4a0bdfb62c059c85..1899f9683287243af62a52c22f6e2ba48bf4e8a3 100644 |
--- a/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/classes.dart |
+++ b/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/classes.dart |
@@ -97,7 +97,7 @@ flattenFutures(builder) => JS( |
})()'''); |
/// Memoize a generic type constructor function. |
-generic(typeConstructor) => JS( |
+generic(typeConstructor, [setBaseClass]) => JS( |
'', |
'''(() => { |
let length = $typeConstructor.length; |
@@ -128,10 +128,12 @@ generic(typeConstructor) => JS( |
value[$_typeArguments] = args; |
value[$_originalDeclaration] = makeGenericType; |
} |
+ map.set(arg, value); |
+ if ($setBaseClass) $setBaseClass(value); |
} else { |
value = new Map(); |
+ map.set(arg, value); |
} |
- map.set(arg, value); |
} |
} |
return value; |