This is silly.

I can use the closure pattern to vend objects that do not satisfy the internal constraints the DOM imposes on some of its objects. No proxies in sight.

So why is the method you wrote named "isDOMProxy" and whatever in the world does it have to do with Proxy?

/be

Andrea Giammarchi wrote:
and in both cases you would have ...

Proxy.isDOMProxy = function (node) {
  try {
    document.documentElement.appendChild(node);
    document.documentElement.removeChild(node);
    return false;
  } catch(gotcha) {
    return true;
  }
};

that's why I have talked about inconsistencies all over at the very beginning of this thread :)

br






On Sat, Jan 12, 2013 at 10:26 AM, Nathan Wall <[email protected] <mailto:[email protected]>> wrote:

    Nathan wrote:
    >
    > Hey Tom, I think you missed my point. The point was that in
    David and Boris' discussion they agreed that the DOM should throw
    if it is given a Proxy in `appendChild`. That sounded to me like
    it presumed that the DOM had a magical ability to distinguish
    between DOM objects and their proxies. That seemed to contradict
    the point David made that Proxies should not be distinguishable
    from their targets (e.g. the no `Proxy.isProxy` decision). If real
    DOM had a way to determine if something was a proxy (with a target
    of a *real* DOM node) and throw but there was no way for an
    emulated DOM (in a non-DOM environment) to determine if an object
    was a proxy with a target to an emulated DOM node or just a plain
    emulated DOM node, then the DOM has magical abilities that the
    emulated DOM can't have. That was my concern.
    >
    > David's reply works, though, I think. He stated that since you
    have to create DOM nodes using a method of the DOM itself
    (`document.createElement`, `document.createTextNode`), then
    emulated DOM could track all objects created and compare them
    against objects passed into `appendChild`, and since a proxy would
    have a different object identity from its target, the emulated DOM
    would have a way to distinguish proxies from their targets.
    >
    > Nathan


    In short, if real DOM can throw when given a proxy of a real DOM
    node, fake DOM should also be able to throw when given a proxy of
    a fake DOM node.
    _______________________________________________
    es-discuss mailing list
    [email protected] <mailto:[email protected]>
    https://mail.mozilla.org/listinfo/es-discuss


_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to