This is a known problem called Object identity. We already have this problem 
today with Object.create(document.createElement("p")) which is an "instanceof 
HTMLElement" but is invalid for any DOM purpose. 

However, if you take the same P element and set its __proto__ to null, it will 
still be a valid P element for DOM purposes even though it's no an "instanceof 
HTMLElement" anymore. I don't know is this behavior is specced anywhere, but 
this is how it works. 

Maybe it would be great to have a way to "confer" the object identify to 
another object, and it could be useful for polyfill use cases. Until now, it's 
not possible to create an object whose native object identity is not "neutral". 
Proxies don't escape to this rule...


________________________________
> Date: Tue, 8 Jan 2013 12:40:00 -0800 
> Subject: direct_proxies "problem" 
> From: [email protected] 
> To: [email protected] 
> 
> So, I am playing with FF 18 and I have this behavior: 
> 
> var a = new Proxy([], {}); 
> console.log(a instanceof Array); // true 
> console.log(Array.isArray(a)); // true 
> console.log({}.toString.call(a));// [object Array] 
> 
> Function.apply(null, a); // anonymous() 
> 
> Cool uh? there's no way to tell that a is not actually an array but rather a 
> proxy: awesome!!! 
> 
> Now I go in that dark place called DOM: 
> 
> var n = new Proxy(document.createElement("p"), {}); 
> console.log(n instanceof HTMLElement);// true 
> console.log({}.toString.call(n)); // true 
> document.body.appendChild(n); 
> // Error: Could not convert JavaScript argument arg 0 
> [nsIDOMHTMLBodyElement.appendChild] 
> 
> Is this meant? 'cause it looks lik ewe have half power here and once again 
> inconsistencies ... thanks for explaining me this. 
> 
> 
> br 
> 
> _______________________________________________ es-discuss mailing list 
> [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