On Fri, Sep 10, 2010 at 5:30 AM, David Herman <dher...@mozilla.com> wrote:

> IIUC, with Object.create, you don't even get the conflict checking. And
>> then you've really lost the key benefit of traits.
>>
>
> See <
> http://code.google.com/p/es-lab/source/browse/trunk/src/traits/traits.js#150>.
> Even with Object.create, you still get conflict detection, but with failure
> postponed from creation to usage. This is a more traditionally JavaScripty
> way to report failure anyway.
>
>
> Ah, I see. I missed that part.
>
> Is the on-demand nature of conflict detection (for traits built with
> Object.create) somehow unavoidable, or was that simply a design choice?
>

It actually was a design choice dating from before we switched to
Object.create. Originally, we had a high-vs-low integrity switch in
Traits.create. As Tom was implementing our design, he noticed that the low
integrity case simplified down to being identical to Object.create. Seeing
that, Tom realized that we didn't actually need a switch as people could
just use Object.create directly.

Tom, do I have the history of that right?


>
>     function Point(x, y) {
>       this.x = x;
>       this.y = y;
>     }
>     Point.prototype = Object.create(
>       SuperPoint.prototype,
>       Trait.compose(.....));
>
> Is that the kind of usage you had in mind?
>
>
> Yes, exactly. Sorry for my oversight.
>
> Dave
>
>


-- 
    Cheers,
    --MarkM
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to