My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
InternalProperties  
List of properties internal to the Caja implementation and their semantics.
Updated Feb 4, 2010 by zestyp...@gmail.com

This page is intended to document the properties on JavaScript objects that are used internally by the Caja implementation: what they mean, what invariants are supposed to hold, and what they are relied upon for.

In the table below, x stands for "any object".

Object Property Meaning Should be set iff Written by Read by
Object, Array typeTag___ name of the built-in type always caja.js:38-39 isJSONContainer() uses this to check whether an object's direct constructor is Object or Array. copy() and each() use this to decide whether the given object is an Array.
x name_getter___ method for handling get-faults on x[name] ? useGetHandler() handleRead___
x name_handler___ method for handling call-faults on x[name]() ? useApplyHandler() handleCall___
x name_setter___ method for handling set-faults on x[name] = value ? useSetHandler() handleSet___
x name_deleter___ method for handling delete-faults on delete x[name] ? useSetHandler() handleDelete___
x __proto__ if present, the object that x directly inherits from running Firefox, or directConstructor() has ever been called on x directConstructor() uses this as a cache directConstructor()
x __FROZEN__ if present as an own (a non-inherited) property of x, x is considered frozen. A frozen object must not contain any settable or deletable properties. All prototypical objects must be frozen. All functions must be frozen before their first call. ? primFreeze() isFrozen()
x name_canRead___ if truthy, x.name can be read directly. If x.name is an unattached method, x.name_canRead___ must not be truthy, since an attempt to read x.name must return instead this method as attached to x ? fastpathRead() canRead()


Sign in to add a comment
Powered by Google Project Hosting