On Thu, Jun 20, 2013 at 11:59 PM, Jim Blandy <[email protected]> wrote:

> 1) All the template instantiations support the same interface. When you
> see a Rooted<T>, you know exactly what it does. Not so with typedefs.
>

That seems like something we can quite easily establish by convention.

Are you concerned about the difference indirection levels (HandleValue =>
Handle<Value> whereas HandleObject => Handle<JSObject*>)? I don't think
that's actually an issue for most consumers. Most people want, quite
literally, "A Handle to A Foo". The level of pointer indirection involved
is exactly the kind of implementation detail that we should abstract away.


> 2) I can define my own templates ranging over the set of types that
> Handle, Rooted, etc. support, and use Handle<T>.
>

As noted earlier in the thread, there's no reason we can't expose the
templated versions for people doing specialized stuff. But That's probably
< 5% of the total consumers.

bholley
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

Reply via email to