Chromium Code Reviews| 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 d6f3423b7d6980e77c0caddf61502d10298f2b58..ec2c69d94f725e5a48af3e03e31fa789e49cae5b 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 |
| @@ -501,10 +501,13 @@ setBaseClass(derived, base) { |
| /// Like [setBaseClass] but for generic extension types, e.g. `JSArray<E>` |
| setExtensionBaseClass(derived, base) { |
| - // Mark the generic type as an extension type. |
| - JS('', '#.prototype[#] = #', derived, _extensionType, derived); |
| - // Link the prototype objects |
| - JS('', '#.prototype.__proto__ = #.prototype', derived, base); |
| + // Mark the generic type as an extension type and link the prototype objects |
| + return JS('', '''(() => { |
| + if ($base) { |
| + $derived.prototype[$_extensionType] = $derived; |
| + $derived.prototype.__proto__ = $base.prototype |
| + } |
|
vsm
2016/10/19 22:49:47
Nit: bad indent
|
| +})()'''); |
| } |
| /// Given a special constructor function that creates a function instances, |