| Index: tool/input_sdk/private/ddc_runtime/classes.dart
|
| diff --git a/tool/input_sdk/private/ddc_runtime/classes.dart b/tool/input_sdk/private/ddc_runtime/classes.dart
|
| index 570fff1a0e2cadd38aff39d0ef5d6393198ac953..2c70a96e573db6c9787bb8d5aa7b2c238dd3cfe1 100644
|
| --- a/tool/input_sdk/private/ddc_runtime/classes.dart
|
| +++ b/tool/input_sdk/private/ddc_runtime/classes.dart
|
| @@ -284,9 +284,11 @@ defineExtensionNames(names) =>
|
| _installProperties(jsProto, extProto) {
|
| var coreObjProto = JS('', '#.prototype', Object);
|
| if (JS('bool', '# === #', extProto, coreObjProto)) {
|
| - // core.Object members need to be copied from the non-symbol name to the
|
| - // symbol name.
|
| - for (var name in getOwnPropertyNames(coreObjProto)) {
|
| + // core.Object members need to be copied from the non-symbol name to the
|
| + // symbol name.
|
| + var names = getOwnPropertyNames(coreObjProto);
|
| + for (int i = 0; i < JS('int', '#.length', names); ++i) {
|
| + var name = JS('', '#[#]', names, i);
|
| var desc = getOwnPropertyDescriptor(coreObjProto, name);
|
| defineProperty(jsProto, getExtensionSymbol(name), desc);
|
| }
|
| @@ -294,10 +296,10 @@ _installProperties(jsProto, extProto) {
|
| }
|
| if (JS('bool', '# !== #', jsProto, extProto)) {
|
| _installProperties(jsProto, JS('', '#.__proto__', extProto));
|
| - }
|
| + }
|
| copyTheseProperties(jsProto, extProto, getOwnPropertySymbols(extProto));
|
| }
|
| -
|
| +
|
| ///
|
| /// Copy symbols from the prototype of the source to destination.
|
| /// These are the only properties safe to copy onto an existing public
|
|
|