Stored value

In the JSAPI, the stored value of an object property is its last known value. For a data property, this is exactly the same thing as the property's current value.

The JavaScript engine sets aside a field of type jsval for the stored value of most object properties, even properties that have getters. The stored value is updated each time the program gets or sets the property. The new stored value is the result of getting or setting the property, after the getter or setter, if any, is called.

JS_DefineProperty allows the application to specify a property's initial stored value.

JS_LookupProperty fetches a property's stored value without triggering its getter.

Properties with the JSPROP_SHARED attribute do not have a stored value. ES5 accessor properties, as in {get length() { return 0; }, automatically have JSPROP_SHARED.

Properties of objects that have custom JSObjectOps do not have a stored value.

Stored values are strong references for the purpose of garbage collection. As long as an object is reachable, the stored values of its properties are reachable and will not be collected.