| Index: frog/lib/core.js
|
| diff --git a/frog/lib/core.js b/frog/lib/core.js
|
| index 4e20d4dc89503389f7566b22d7d3ccb9486a2ed7..84bde13f0ad99d39144df4a673dc8fd93b8747f5 100644
|
| --- a/frog/lib/core.js
|
| +++ b/frog/lib/core.js
|
| @@ -329,8 +329,12 @@ function $varMethod(name, methods) {
|
| }
|
|
|
| Object.prototype.get$typeName = function() {
|
| - // TODO(vsm): how can we make this go down the fast path for Chrome?
|
| - //(for Chrome: return this.constructor.name;)
|
| + // TODO(sigmund): find a way to make this work on all browsers, including
|
| + // checking the typeName on prototype objects (so we can fix dynamic
|
| + // dispatching on $varMethod).
|
| + if (window.constructor.name == 'DOMWindow') { // fast-path for Chrome
|
| + return this.constructor.name;
|
| + }
|
| var str = Object.prototype.toString.call(this);
|
| return str.substring(8, str.length - 1);
|
| }
|
| @@ -344,5 +348,5 @@ function $patchMethod(obj, name, methods) {
|
| while (obj && !(method = methods[obj.get$typeName()])) {
|
| obj = Object.getPrototypeOf(obj);
|
| }
|
| - Object.defineProperty(proto, name, {value: method || methods['Object']});
|
| + obj[name] = method || methods['Object'];
|
| }
|
|
|