This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

Prevent modification of object fields.

As of SpiderMonkey 1.8.5, JS_SealObject has been removed from the JSAPI, because ECMAScript 5 includes a "seal" concept (namely, that of Object.seal) which is quite different from that of JS_SealObject.  Moreover, JS_SealObject's exact semantics are subtly incompatible with ECMAScript.  JS_FreezeObject and JS_DeepFreezeObject are near-substitutes compatible with ECMAScript semantics, implementing semantics compatible with those of Object.freeze.


JSBool JS_SealObject(JSContext *cx, JSObject *obj, JSBool deep);
Name Type Description
cx JSContext * A context.
obj JSObject * The object to seal.
deep JSBool If true, seal all objects directly or indirectly reachable from obj's slots.


JS_SealObject prevents all write access to the object, either to add a new property, delete an existing property, or set the value or attributes of an existing property.


MXR ID Search for JS_SealObject

Document Tags and Contributors

Contributors to this page: Waldo, Sayrer, Jorend, Monkey, Sheppy
Last updated by: Sheppy,