Compare Revisions

Split object

Change Revisions

Revision 287012:

Revision 287012 by Jorend on

Revision 509353:

Revision 509353 by Jorend on

Title:
Split object
Split object
Slug:
SpiderMonkey/Split_object
SpiderMonkey/Split_object
Tags:
JavaScript, SpiderMonkey, JSAPI_Reference
"SpiderMonkey", "JSAPI_Reference", "JavaScript"
Content:

Revision 287012
Revision 509353
n56      See also <a class=" external" href="http://groups.google.con56      See also <a class="external" href="http://groups.google.com
>m/group/mozilla.dev.tech.js-engine/msg/df81825b338fb84f" rel="fre>/group/mozilla.dev.tech.js-engine/msg/df81825b338fb84f" rel="free
>elink">http://groups.google.com/group/mozil...81825b338fb84f</a>>link">http://groups.google.com/group/mozil...81825b338fb84f</a>
n68      Inner objects are dangerous because they have fast propertyn68      Inner objects are dangerous because they have fast property
> accessors that do not perform security checks. Therefore, no fun> accessors that do not perform security checks. Therefore, no fun
>ction may be allowed to see an inner object that has different <c>ction may be allowed to see an inner object that has different <c
>ode>JSPrincipals</code>. Apart from the security issue, if one pa>ode>JSPrincipals</code>. Apart from the security issue, if one pa
>ge directly or indirectly gets a reference to another page's <cod>ge directly or indirectly gets a reference to another page's <cod
>e>window</code> object, that <code>window</code> object must appe>e>window</code> object, that <code>window</code> object must appe
>ar to behave like the outer window and navigate from page to page>ar to behave like the outer window and navigate from page to page
>. SpiderMonkey arranges this by not allowing JS code to see inner>. SpiderMonkey arranges this by not allowing JS code to see inner
> objects at all. References to inner objects appear only in the s> objects at all. To enforce this rule:
>cope chain (that is, only in the <code>__parent__</code> property 
> of objects). <em>(<strong>Note:</strong> The preceding is slight 
>ly inaccurate in that inner objects are also allowed to appear in 
> objects' prototype chains. Per jst, that may be an XPConnect-ism 
>, where we need to share the XPConnect prototypes between the inn 
>er window and the outer window.)</em> To enforce this rule: 
t70    <ul>t
71      <li>If JS code explicitly asks for the <code>__parent__</co
>de> or <code>__proto__</code> property of an object, and the resu 
>lt would be an inner object, the engine silently returns the corr 
>esponding outer object instead. 
72      </li>
73    </ul>

Back to History