Closed
Bug 1194694
Opened 9 years ago
Closed 9 years ago
Function.prototype.toString called on incompatible object
Categories
(Core :: DOM: Core & HTML, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 1039986
People
(Reporter: steve111, Unassigned)
References
Details
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:40.0) Gecko/20100101 Firefox/40.0 Build ID: 20150812163655 Steps to reproduce: Function.prototype.toString.call(window.Event) Actual results: TypeError: Function.prototype.toString called on incompatible object Expected results: "function Event() { [native code] }"
Comment 1•9 years ago
|
||
Relevant specs are https://heycam.github.io/webidl/#interface-object https://people.mozilla.org/~jorendorff/es6-draft.html#sec-function.prototype.tostring I think we can assume that window.Event is not "a Bound Function exotic object" and it doesn't have "an [[ECMAScriptCode]] internal slot". I can't tell from either spec whether it's supposed to be "a built-in function object" or what that even means. Chrome logs "function Event() { [native code] }" on <http://software.hixie.ch/utilities/js/live-dom-viewer/saved/3598>.
I write some third-party script that webmasters put on their sites. My goal is to trigger custom event on document. code: if (typeof window.Event === 'function') { event = new Event(eventName); } else if (document.createEvent) { event = document.createEvent('Event'); event.initEvent(eventName, true, true); } else if (document.createEventObject) { event = document.createEventObject(); event.eventType = eventName; } // then dispatching But many sites still use MooTools lib, that overrides standard functions (including window.Event). So I need some test to know that function is not native, like: try { return Utils.isFunction(fn) && Function.prototype.toString.call(fn).indexOf('[native code]') !== -1; } catch (e) { return false; }
Updated•9 years ago
|
Status: UNCONFIRMED → RESOLVED
Closed: 9 years ago
Resolution: --- → DUPLICATE
Assignee | ||
Updated•5 years ago
|
Component: DOM → DOM: Core & HTML
You need to log in
before you can comment on or make changes to this bug.
Description
•