- 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