- From: Yehuda Katz <wycats@gmail.com>
- Date: Tue, 29 Sep 2009 22:11:50 -0700
- To: public-script-coord@w3.org
- Message-ID: <245fb4700909292211g30413e8an5b218ced0efa9859@mail.gmail.com>
On Tue, Sep 29, 2009 at 9:18 PM, Maciej Stachowiak <mjs@apple.com> wrote: > > +public-script-coord > -public-webapps > > (Soon I will start dropping es-discuss too). > > On Sep 29, 2009, at 3:38 AM, Yehuda Katz wrote: > > I meant "actually written". Being able to see actual code that implemented >> pieces of the IDL in ES would make some of the more complex interactions >> more obvious (I suspect). >> > > > I don't entirely understand this request. The IDL just defines an > interface. ECMAScript doesn't have a way to declare an interface without > implementing it. And the actual behavior of most objects described with Web > IDL interfaces is not implementable in pure ECMAScript - not the interface > behavior, the actual core behavior. But maybe you can help me understand > what you want with an example. Here's a trivial Web IDL interface, what > would count as an ES implementation to you: > > interface FooBar { > boolean isFoo(DOMString a, long b); > boolean isBar(DOMString a, long b); > } > I'm spitballing a bit here. Maybe something like: FooBar = function() {}; FooBar.prototype = new IDLValue; FooBar.prototype.isFoo = function(a, b) { var idlA = WebIDL.CoerceStrict.toLong(a); var idlB = WebIDL.CoerceStrict.toDOMString(b); } FooBar.prototype.isBar(a, b) { var idlA = WebIDL.CoerceStrict.toLong(a); var idlB = WebIDL.CoerceStrict.toDOMString(b); return WebIDL.Type.Boolean; } It would be possible to implement the above using a library that would look like: FooBar = new IDLInterface(function(i) { i.function("isFoo", WebIDL.Boolean, ["a", WebIDL.Type.long, "b", WebIDL.Type.DOMString]); i.function("isBar", WebIDL.Boolean, ["a", WebIDL.Type.long, "b", WebIDL.Type.DOMString]); }); This is extremely half-baked, but the basic idea is to show a valid implementation of the Interface using WebIDL semantics. I believe that even just defining Section 4.1 in ECMAScript itself (where possible) would do a lot to clarify the semantics. I'm sending this to public-script-coord alone so I'm not spamming three lists. > Regards, > Maciej > > -- Yehuda Katz Developer | Engine Yard (ph) 718.877.1325
Received on Wednesday, 30 September 2009 05:12:38 UTC