| Index: lib/runtime/dart/_runtime.js
|
| diff --git a/lib/runtime/dart/_runtime.js b/lib/runtime/dart/_runtime.js
|
| index 80227d1379f000e8cabedada9b45f9908b88b923..b7f72f77f98c0b84486158e05c19f11f6eb434ec 100644
|
| --- a/lib/runtime/dart/_runtime.js
|
| +++ b/lib/runtime/dart/_runtime.js
|
| @@ -130,6 +130,7 @@ dart_library.library('dart/_runtime', null, /* Imports */[
|
| }
|
| function _setStaticTypes(f, names) {
|
| for (let name of names) {
|
| + if (!f[name]) continue;
|
| tagMemoized(f[name], function() {
|
| let parts = f[_staticSig][name];
|
| return definiteFunctionType.apply(null, parts);
|
| @@ -153,7 +154,7 @@ dart_library.library('dart/_runtime', null, /* Imports */[
|
| function virtualField(subclass, fieldName) {
|
| let prop = getOwnPropertyDescriptor(subclass.prototype, fieldName);
|
| if (prop) return;
|
| - let symbol = Symbol(subclass.name + '.' + fieldName);
|
| + let symbol = Symbol(subclass.name + '.' + fieldName.toString());
|
| defineProperty(subclass.prototype, fieldName, {
|
| get: function() {
|
| return this[symbol];
|
| @@ -179,7 +180,7 @@ dart_library.library('dart/_runtime', null, /* Imports */[
|
| const dartx = {};
|
| function getExtensionSymbol(name) {
|
| let sym = dartx[name];
|
| - if (!sym) dartx[name] = sym = Symbol('dartx.' + name);
|
| + if (!sym) dartx[name] = sym = Symbol('dartx.' + name.toString());
|
| return sym;
|
| }
|
| function defineExtensionNames(names) {
|
| @@ -192,9 +193,9 @@ dart_library.library('dart/_runtime', null, /* Imports */[
|
| copyTheseProperties(jsProto, extProto, getOwnPropertySymbols(extProto));
|
| }
|
| function registerExtension(jsType, dartExtType) {
|
| + if (!jsType) return;
|
| let extProto = dartExtType.prototype;
|
| let jsProto = jsType.prototype;
|
| - assert_(jsProto[_extensionType] === void 0);
|
| jsProto[_extensionType] = dartExtType;
|
| _installProperties(jsProto, extProto);
|
| let originalSigFn = getOwnPropertyDescriptor(dartExtType, _methodSig).get;
|
| @@ -205,6 +206,7 @@ dart_library.library('dart/_runtime', null, /* Imports */[
|
| let proto = type.prototype;
|
| for (let name of methodNames) {
|
| let method = getOwnPropertyDescriptor(proto, name);
|
| + if (!method) continue;
|
| defineProperty(proto, getExtensionSymbol(name), method);
|
| }
|
| let originalSigFn = getOwnPropertyDescriptor(type, _methodSig).get;
|
|
|