- From: <bugzilla@jessica.w3.org>
- Date: Thu, 27 Dec 2012 17:38:21 +0000
- To: public-audio@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=20525 Marcos Caceres <w3c@marcosc.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED CC| |w3c@marcosc.com Resolution|FIXED |--- --- Comment #2 from Marcos Caceres <w3c@marcosc.com> --- 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. Please revert the changes. -- You are receiving this mail because: You are the QA Contact for the bug.
Received on Thursday, 27 December 2012 17:38:26 UTC