Bug 1008092 - JS API to check whether array buffer object is neutered. r=sfink

This commit is contained in:
Shian-Yow Wu 2014-05-12 11:22:02 +08:00
parent 9037e1639f
commit 15b8b19784
2 changed files with 20 additions and 0 deletions

View File

@ -1464,6 +1464,14 @@ extern JS_FRIEND_API(bool)
JS_NeuterArrayBuffer(JSContext *cx, JS::HandleObject obj, JS_NeuterArrayBuffer(JSContext *cx, JS::HandleObject obj,
NeuterDataDisposition changeData); NeuterDataDisposition changeData);
/*
* Check whether the obj is ArrayBufferObject and neutered. Note that this
* may return false if a security wrapper is encountered that denies the
* unwrapping.
*/
extern JS_FRIEND_API(bool)
JS_IsNeuteredArrayBufferObject(JSObject *obj);
/* /*
* Check whether obj supports JS_GetDataView* APIs. * Check whether obj supports JS_GetDataView* APIs.
*/ */

View File

@ -1042,6 +1042,18 @@ JS_NeuterArrayBuffer(JSContext *cx, HandleObject obj,
return true; return true;
} }
JS_FRIEND_API(bool)
JS_IsNeuteredArrayBufferObject(JSObject *obj)
{
obj = CheckedUnwrap(obj);
if (!obj)
return false;
return obj->is<ArrayBufferObject>()
? obj->as<ArrayBufferObject>().isNeutered()
: false;
}
JS_FRIEND_API(JSObject *) JS_FRIEND_API(JSObject *)
JS_NewArrayBuffer(JSContext *cx, uint32_t nbytes) JS_NewArrayBuffer(JSContext *cx, uint32_t nbytes)
{ {