- From: <bugzilla@jessica.w3.org>
- Date: Thu, 27 Dec 2012 17:46:43 +0000
- To: public-audio@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=20525 --- Comment #3 from Jussi Kalliokoski <jussi.kalliokoski@gmail.com> --- (In reply to comment #2) > The object on the global scope is a different object :) This is where WebIDL > gets funky. That's called the "interface object" and it does not expose the > methods. > > See: > http://www.w3.org/TR/WebIDL/#es-interfaces > > (yes, it's freeken complicated and I've been trying to grok that for about a > year) > > you basically end up with this: > //This one holds constants and statics > var interfaceObject= function MidiAccess(){ > if(this instanceof MidiAccess){ > var msg="DOM object constructor cannot be called as a function." > throw new TypeError(msg); > } > } > //This one makes actual instances > var interfacePrototypeObj = function MIDIAccess(){} > window.MIDIAccess = interfaceObject; > > > You can confirm this in the browser by querying any object. For example: > > >> Event > function Event() { [native code] } > >>Event() > TypeError: DOM object constructor cannot be called as a function. > > Note that Event does not expose preventDefault() or any other instance > method. Only the constants are exposed. Event doesn't, but Event.prototype does: typeof Event.prototype.preventDefault === 'function' // true -- You are receiving this mail because: You are the QA Contact for the bug.
Received on Thursday, 27 December 2012 17:46:45 UTC