- From: Allen Wirfs-Brock <Allen.Wirfs-Brock@microsoft.com>
- Date: Wed, 30 Sep 2009 15:50:29 +0000
- To: Maciej Stachowiak <mjs@apple.com>, Yehuda Katz <wycats@gmail.com>
- CC: "public-script-coord@w3.org" <public-script-coord@w3.org>, "Mark S. Miller" <erights@google.com>, es-discuss Steen <es-discuss@mozilla.org>
>-----Original Message-----
>From: Maciej Stachowiak [mailto:mjs@apple.com]
>
>
>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);
>}
How about:
var ForBar = { /*Interface*/
// This object defines a WebIDL interface. Objects compatible with this interface
// must implement all of the following properties in a manner that preserves the
// pre and post conditions established by the following definitions
isFoo: function (a,b) {
var validated_a=WebIDL.toDOMString(a);
var validated_b=WebIDL.toLong(b);
var specifiedresult=WebIDL.performSpecifiedOperation("FooBar.isFoo"),validated_a,validated_b);
return Boolean(specified_result);
},
isBar: function (a,b) {
var validated_a=WebIDL.toDOMString(a);
var validated_b=WebIDL.toLong(b);
var specified_result=WebIDL.performSpecifiedOperation("FooBar.isBar"),validated_a,validated_b);
return Boolean(specified_result);
}
}
Received on Wednesday, 30 September 2009 15:51:09 UTC