зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1769290 - Part 2: Apply mozilla-js-handle-rooted-typedef against dom/bindings r=edgar
Changes done by `./mach static-analysis check --checks="-*,mozilla-js-handle-rooted-typedef" --fix --header-filter=dom dom/bindings; ./mach clang-format --outgoing`. Differential Revision: https://phabricator.services.mozilla.com/D146439
This commit is contained in:
Родитель
5bf1db4f71
Коммит
9d5386b0ce
|
@ -88,11 +88,10 @@ class StructuredCloneHolderBase {
|
|||
// If these 3 methods are not implement, transfering objects will not be
|
||||
// allowed. Otherwise only arrayBuffers will be transferred.
|
||||
|
||||
virtual bool CustomReadTransferHandler(JSContext* aCx,
|
||||
JSStructuredCloneReader* aReader,
|
||||
uint32_t aTag, void* aContent,
|
||||
uint64_t aExtraData,
|
||||
JS::MutableHandleObject aReturnObject);
|
||||
virtual bool CustomReadTransferHandler(
|
||||
JSContext* aCx, JSStructuredCloneReader* aReader, uint32_t aTag,
|
||||
void* aContent, uint64_t aExtraData,
|
||||
JS::MutableHandle<JSObject*> aReturnObject);
|
||||
|
||||
virtual bool CustomWriteTransferHandler(JSContext* aCx,
|
||||
JS::Handle<JSObject*> aObj,
|
||||
|
@ -281,7 +280,7 @@ class StructuredCloneHolder : public StructuredCloneHolderBase {
|
|||
virtual bool CustomReadTransferHandler(
|
||||
JSContext* aCx, JSStructuredCloneReader* aReader, uint32_t aTag,
|
||||
void* aContent, uint64_t aExtraData,
|
||||
JS::MutableHandleObject aReturnObject) override;
|
||||
JS::MutableHandle<JSObject*> aReturnObject) override;
|
||||
|
||||
virtual bool CustomWriteTransferHandler(JSContext* aCx,
|
||||
JS::Handle<JSObject*> aObj,
|
||||
|
|
|
@ -204,7 +204,7 @@ class nsFrameMessageManager : public nsIMessageSender {
|
|||
const JS::Value& aTransfer,
|
||||
StructuredCloneData& aData);
|
||||
|
||||
void SetInitialProcessData(JS::HandleValue aInitialData);
|
||||
void SetInitialProcessData(JS::Handle<JS::Value> aInitialData);
|
||||
|
||||
void LoadPendingScripts();
|
||||
|
||||
|
|
|
@ -2780,7 +2780,7 @@ bool MayResolveGlobal(const JSAtomState& aNames, jsid aId,
|
|||
return JS_MayResolveStandardClass(aNames, aId, aMaybeObj);
|
||||
}
|
||||
|
||||
bool EnumerateGlobal(JSContext* aCx, JS::HandleObject aObj,
|
||||
bool EnumerateGlobal(JSContext* aCx, JS::Handle<JSObject*> aObj,
|
||||
JS::MutableHandleVector<jsid> aProperties,
|
||||
bool aEnumerableOnly) {
|
||||
MOZ_ASSERT(JS_IsGlobalObject(aObj),
|
||||
|
@ -3532,13 +3532,13 @@ bool GetSetlikeBackingObject(JSContext* aCx, JS::Handle<JSObject*> aObj,
|
|||
|
||||
static inline JSObject* NewObservableArrayProxyObject(
|
||||
JSContext* aCx, const ObservableArrayProxyHandler* aHandler, void* aOwner) {
|
||||
JS::RootedObject target(aCx, JS::NewArrayObject(aCx, 0));
|
||||
JS::Rooted<JSObject*> target(aCx, JS::NewArrayObject(aCx, 0));
|
||||
if (NS_WARN_IF(!target)) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
JS::RootedValue targetValue(aCx, JS::ObjectValue(*target));
|
||||
JS::RootedObject proxy(
|
||||
JS::Rooted<JS::Value> targetValue(aCx, JS::ObjectValue(*target));
|
||||
JS::Rooted<JSObject*> proxy(
|
||||
aCx, js::NewProxyObject(aCx, aHandler, targetValue, nullptr));
|
||||
if (!proxy) {
|
||||
return nullptr;
|
||||
|
|
|
@ -1341,7 +1341,7 @@ inline bool FindEnumStringIndex(BindingCallContext& cx, JS::Handle<JS::Value> v,
|
|||
const EnumEntry* values, const char* type,
|
||||
const char* sourceDescription, int* index) {
|
||||
// JS_StringEqualsAscii is slow as molasses, so don't use it here.
|
||||
JS::RootedString str(cx, JS::ToString(cx, v));
|
||||
JS::Rooted<JSString*> str(cx, JS::ToString(cx, v));
|
||||
if (!str) {
|
||||
return false;
|
||||
}
|
||||
|
@ -1909,7 +1909,7 @@ inline bool ConvertIdToString(JSContext* cx, JS::Handle<JS::PropertyKey> id,
|
|||
isSymbol = true;
|
||||
return true;
|
||||
} else {
|
||||
JS::RootedValue nameVal(cx, js::IdToValue(id));
|
||||
JS::Rooted<JS::Value> nameVal(cx, js::IdToValue(id));
|
||||
if (!ConvertJSValueToString(cx, nameVal, eStringify, eStringify, result)) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ bool CallbackInterface::GetCallableProperty(
|
|||
return false;
|
||||
}
|
||||
if (!aCallable.isObject() || !JS::IsCallable(&aCallable.toObject())) {
|
||||
JS::RootedString propId(cx, aPropId.toString());
|
||||
JS::Rooted<JSString*> propId(cx, aPropId.toString());
|
||||
JS::UniqueChars propName = JS_EncodeStringToUTF8(cx, propId);
|
||||
nsPrintfCString description("Property '%s'", propName.get());
|
||||
cx.ThrowErrorMessage<MSG_NOT_CALLABLE>(description.get());
|
||||
|
|
|
@ -100,7 +100,7 @@ void CallbackObject::FinishSlowJSInitIfMoreThanOneOwner(JSContext* aCx) {
|
|||
if (mRefCnt.get() > 1) {
|
||||
mozilla::HoldJSObjects(this);
|
||||
if (JS::IsAsyncStackCaptureEnabledForRealm(aCx)) {
|
||||
JS::RootedObject stack(aCx);
|
||||
JS::Rooted<JSObject*> stack(aCx);
|
||||
if (!JS::CaptureCurrentStack(aCx, &stack)) {
|
||||
JS_ClearPendingException(aCx);
|
||||
}
|
||||
|
@ -147,7 +147,7 @@ void CallbackObject::GetDescription(nsACString& aOutString) {
|
|||
jsapi.Init();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
JS::RootedObject rootedCallback(cx, unwrappedCallback);
|
||||
JS::Rooted<JSObject*> rootedCallback(cx, unwrappedCallback);
|
||||
JSAutoRealm ar(cx, rootedCallback);
|
||||
|
||||
JS::Rooted<JSFunction*> rootedFunction(cx,
|
||||
|
|
|
@ -4420,7 +4420,7 @@ def InitUnforgeablePropertiesOnHolder(
|
|||
CGGeneric(
|
||||
fill(
|
||||
"""
|
||||
JS::RootedId toPrimitive(aCx,
|
||||
JS::Rooted<JS::PropertyKey> toPrimitive(aCx,
|
||||
JS::GetWellKnownSymbolKey(aCx, JS::SymbolCode::toPrimitive));
|
||||
if (!JS_DefinePropertyById(aCx, ${holderName}, toPrimitive,
|
||||
JS::UndefinedHandleValue,
|
||||
|
@ -22237,8 +22237,8 @@ class CGObservableArrayProxyHandler_OnDeleteItem(
|
|||
def __init__(self, descriptor, attr):
|
||||
args = [
|
||||
Argument("JSContext*", "aCx"),
|
||||
Argument("JS::HandleObject", "aProxy"),
|
||||
Argument("JS::HandleValue", "aValue"),
|
||||
Argument("JS::Handle<JSObject*>", "aProxy"),
|
||||
Argument("JS::Handle<JS::Value>", "aValue"),
|
||||
Argument("uint32_t", "aIndex"),
|
||||
]
|
||||
CGObservableArrayProxyHandler_callback.__init__(
|
||||
|
@ -22270,10 +22270,10 @@ class CGObservableArrayProxyHandler_SetIndexedValue(
|
|||
def __init__(self, descriptor, attr):
|
||||
args = [
|
||||
Argument("JSContext*", "aCx"),
|
||||
Argument("JS::HandleObject", "aProxy"),
|
||||
Argument("JS::HandleObject", "aBackingList"),
|
||||
Argument("JS::Handle<JSObject*>", "aProxy"),
|
||||
Argument("JS::Handle<JSObject*>", "aBackingList"),
|
||||
Argument("uint32_t", "aIndex"),
|
||||
Argument("JS::HandleValue", "aValue"),
|
||||
Argument("JS::Handle<JS::Value>", "aValue"),
|
||||
Argument("JS::ObjectOpResult&", "aResult"),
|
||||
]
|
||||
CGObservableArrayProxyHandler_callback.__init__(
|
||||
|
@ -22303,7 +22303,7 @@ class CGObservableArrayProxyHandler_SetIndexedValue(
|
|||
return dedent(
|
||||
"""
|
||||
if (aIndex < oldLen) {
|
||||
JS::RootedValue value(aCx);
|
||||
JS::Rooted<JS::Value> value(aCx);
|
||||
if (!JS_GetElement(aCx, aBackingList, aIndex, &value)) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -22,8 +22,8 @@ namespace mozilla::dom {
|
|||
const char ObservableArrayProxyHandler::family = 0;
|
||||
|
||||
bool ObservableArrayProxyHandler::defineProperty(
|
||||
JSContext* aCx, JS::HandleObject aProxy, JS::HandleId aId,
|
||||
JS::Handle<JS::PropertyDescriptor> aDesc,
|
||||
JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JS::PropertyKey> aId, JS::Handle<JS::PropertyDescriptor> aDesc,
|
||||
JS::ObjectOpResult& aResult) const {
|
||||
if (aId.get() == s_length_id) {
|
||||
if (aDesc.isAccessorDescriptor()) {
|
||||
|
@ -39,7 +39,7 @@ bool ObservableArrayProxyHandler::defineProperty(
|
|||
return aResult.failInvalidDescriptor();
|
||||
}
|
||||
if (aDesc.hasValue()) {
|
||||
JS::RootedObject backingListObj(aCx);
|
||||
JS::Rooted<JSObject*> backingListObj(aCx);
|
||||
if (!GetBackingListObject(aCx, aProxy, &backingListObj)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ bool ObservableArrayProxyHandler::defineProperty(
|
|||
return aResult.failInvalidDescriptor();
|
||||
}
|
||||
if (aDesc.hasValue()) {
|
||||
JS::RootedObject backingListObj(aCx);
|
||||
JS::Rooted<JSObject*> backingListObj(aCx);
|
||||
if (!GetBackingListObject(aCx, aProxy, &backingListObj)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -79,15 +79,15 @@ bool ObservableArrayProxyHandler::defineProperty(
|
|||
}
|
||||
|
||||
bool ObservableArrayProxyHandler::delete_(JSContext* aCx,
|
||||
JS::HandleObject aProxy,
|
||||
JS::HandleId aId,
|
||||
JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JS::PropertyKey> aId,
|
||||
JS::ObjectOpResult& aResult) const {
|
||||
if (aId.get() == s_length_id) {
|
||||
return aResult.failCantDelete();
|
||||
}
|
||||
uint32_t index = GetArrayIndexFromId(aId);
|
||||
if (IsArrayIndex(index)) {
|
||||
JS::RootedObject backingListObj(aCx);
|
||||
JS::Rooted<JSObject*> backingListObj(aCx);
|
||||
if (!GetBackingListObject(aCx, aProxy, &backingListObj)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -106,7 +106,7 @@ bool ObservableArrayProxyHandler::delete_(JSContext* aCx,
|
|||
return aResult.failBadIndex();
|
||||
}
|
||||
|
||||
JS::RootedValue value(aCx);
|
||||
JS::Rooted<JS::Value> value(aCx);
|
||||
if (!JS_GetElement(aCx, backingListObj, index, &value)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -124,11 +124,12 @@ bool ObservableArrayProxyHandler::delete_(JSContext* aCx,
|
|||
return ForwardingProxyHandler::delete_(aCx, aProxy, aId, aResult);
|
||||
}
|
||||
|
||||
bool ObservableArrayProxyHandler::get(JSContext* aCx, JS::HandleObject aProxy,
|
||||
JS::HandleValue aReceiver,
|
||||
JS::HandleId aId,
|
||||
JS::MutableHandleValue aVp) const {
|
||||
JS::RootedObject backingListObj(aCx);
|
||||
bool ObservableArrayProxyHandler::get(JSContext* aCx,
|
||||
JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JS::Value> aReceiver,
|
||||
JS::Handle<JS::PropertyKey> aId,
|
||||
JS::MutableHandle<JS::Value> aVp) const {
|
||||
JS::Rooted<JSObject*> backingListObj(aCx);
|
||||
if (!GetBackingListObject(aCx, aProxy, &backingListObj)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -153,9 +154,10 @@ bool ObservableArrayProxyHandler::get(JSContext* aCx, JS::HandleObject aProxy,
|
|||
}
|
||||
|
||||
bool ObservableArrayProxyHandler::getOwnPropertyDescriptor(
|
||||
JSContext* aCx, JS::HandleObject aProxy, JS::HandleId aId,
|
||||
JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JS::PropertyKey> aId,
|
||||
JS::MutableHandle<Maybe<JS::PropertyDescriptor>> aDesc) const {
|
||||
JS::RootedObject backingListObj(aCx);
|
||||
JS::Rooted<JSObject*> backingListObj(aCx);
|
||||
if (!GetBackingListObject(aCx, aProxy, &backingListObj)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -166,7 +168,7 @@ bool ObservableArrayProxyHandler::getOwnPropertyDescriptor(
|
|||
}
|
||||
|
||||
if (aId.get() == s_length_id) {
|
||||
JS::RootedValue value(aCx, JS::NumberValue(length));
|
||||
JS::Rooted<JS::Value> value(aCx, JS::NumberValue(length));
|
||||
aDesc.set(Some(JS::PropertyDescriptor::Data(
|
||||
value, {JS::PropertyAttribute::Writable})));
|
||||
return true;
|
||||
|
@ -177,7 +179,7 @@ bool ObservableArrayProxyHandler::getOwnPropertyDescriptor(
|
|||
return true;
|
||||
}
|
||||
|
||||
JS::RootedValue value(aCx);
|
||||
JS::Rooted<JS::Value> value(aCx);
|
||||
if (!JS_GetElement(aCx, backingListObj, index, &value)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -192,8 +194,10 @@ bool ObservableArrayProxyHandler::getOwnPropertyDescriptor(
|
|||
aDesc);
|
||||
}
|
||||
|
||||
bool ObservableArrayProxyHandler::has(JSContext* aCx, JS::HandleObject aProxy,
|
||||
JS::HandleId aId, bool* aBp) const {
|
||||
bool ObservableArrayProxyHandler::has(JSContext* aCx,
|
||||
JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JS::PropertyKey> aId,
|
||||
bool* aBp) const {
|
||||
if (aId.get() == s_length_id) {
|
||||
*aBp = true;
|
||||
return true;
|
||||
|
@ -212,7 +216,7 @@ bool ObservableArrayProxyHandler::has(JSContext* aCx, JS::HandleObject aProxy,
|
|||
}
|
||||
|
||||
bool ObservableArrayProxyHandler::ownPropertyKeys(
|
||||
JSContext* aCx, JS::HandleObject aProxy,
|
||||
JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::MutableHandleVector<jsid> aProps) const {
|
||||
uint32_t length = 0;
|
||||
if (!GetBackingListLength(aCx, aProxy, &length)) {
|
||||
|
@ -228,17 +232,19 @@ bool ObservableArrayProxyHandler::ownPropertyKeys(
|
|||
}
|
||||
|
||||
bool ObservableArrayProxyHandler::preventExtensions(
|
||||
JSContext* aCx, JS::HandleObject aProxy,
|
||||
JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::ObjectOpResult& aResult) const {
|
||||
return aResult.failCantPreventExtensions();
|
||||
}
|
||||
|
||||
bool ObservableArrayProxyHandler::set(JSContext* aCx, JS::HandleObject aProxy,
|
||||
JS::HandleId aId, JS::HandleValue aV,
|
||||
JS::HandleValue aReceiver,
|
||||
bool ObservableArrayProxyHandler::set(JSContext* aCx,
|
||||
JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JS::PropertyKey> aId,
|
||||
JS::Handle<JS::Value> aV,
|
||||
JS::Handle<JS::Value> aReceiver,
|
||||
JS::ObjectOpResult& aResult) const {
|
||||
if (aId.get() == s_length_id) {
|
||||
JS::RootedObject backingListObj(aCx);
|
||||
JS::Rooted<JSObject*> backingListObj(aCx);
|
||||
if (!GetBackingListObject(aCx, aProxy, &backingListObj)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -247,7 +253,7 @@ bool ObservableArrayProxyHandler::set(JSContext* aCx, JS::HandleObject aProxy,
|
|||
}
|
||||
uint32_t index = GetArrayIndexFromId(aId);
|
||||
if (IsArrayIndex(index)) {
|
||||
JS::RootedObject backingListObj(aCx);
|
||||
JS::Rooted<JSObject*> backingListObj(aCx);
|
||||
if (!GetBackingListObject(aCx, aProxy, &backingListObj)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -258,15 +264,15 @@ bool ObservableArrayProxyHandler::set(JSContext* aCx, JS::HandleObject aProxy,
|
|||
}
|
||||
|
||||
bool ObservableArrayProxyHandler::GetBackingListObject(
|
||||
JSContext* aCx, JS::HandleObject aProxy,
|
||||
JS::MutableHandleObject aBackingListObject) const {
|
||||
JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::MutableHandle<JSObject*> aBackingListObject) const {
|
||||
// Retrieve the backing list object from the reserved slot on the proxy
|
||||
// object. If it doesn't exist yet, create it.
|
||||
JS::RootedValue slotValue(aCx);
|
||||
JS::Rooted<JS::Value> slotValue(aCx);
|
||||
slotValue = js::GetProxyReservedSlot(
|
||||
aProxy, OBSERVABLE_ARRAY_BACKING_LIST_OBJECT_SLOT);
|
||||
if (slotValue.isUndefined()) {
|
||||
JS::RootedObject newBackingListObj(aCx);
|
||||
JS::Rooted<JSObject*> newBackingListObj(aCx);
|
||||
newBackingListObj.set(JS::NewArrayObject(aCx, 0));
|
||||
if (NS_WARN_IF(!newBackingListObj)) {
|
||||
return false;
|
||||
|
@ -280,8 +286,8 @@ bool ObservableArrayProxyHandler::GetBackingListObject(
|
|||
}
|
||||
|
||||
bool ObservableArrayProxyHandler::GetBackingListLength(
|
||||
JSContext* aCx, JS::HandleObject aProxy, uint32_t* aLength) const {
|
||||
JS::RootedObject backingListObj(aCx);
|
||||
JSContext* aCx, JS::Handle<JSObject*> aProxy, uint32_t* aLength) const {
|
||||
JS::Rooted<JSObject*> backingListObj(aCx);
|
||||
if (!GetBackingListObject(aCx, aProxy, &backingListObj)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -290,9 +296,9 @@ bool ObservableArrayProxyHandler::GetBackingListLength(
|
|||
}
|
||||
|
||||
bool ObservableArrayProxyHandler::SetLength(JSContext* aCx,
|
||||
JS::HandleObject aProxy,
|
||||
JS::Handle<JSObject*> aProxy,
|
||||
uint32_t aLength) const {
|
||||
JS::RootedObject backingListObj(aCx);
|
||||
JS::Rooted<JSObject*> backingListObj(aCx);
|
||||
if (!GetBackingListObject(aCx, aProxy, &backingListObj)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -306,8 +312,8 @@ bool ObservableArrayProxyHandler::SetLength(JSContext* aCx,
|
|||
}
|
||||
|
||||
bool ObservableArrayProxyHandler::SetLength(JSContext* aCx,
|
||||
JS::HandleObject aProxy,
|
||||
JS::HandleObject aBackingList,
|
||||
JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JSObject*> aBackingList,
|
||||
uint32_t aLength,
|
||||
JS::ObjectOpResult& aResult) const {
|
||||
uint32_t oldLen;
|
||||
|
@ -323,7 +329,7 @@ bool ObservableArrayProxyHandler::SetLength(JSContext* aCx,
|
|||
uint32_t len = oldLen;
|
||||
for (; len > aLength; len--) {
|
||||
uint32_t indexToDelete = len - 1;
|
||||
JS::RootedValue value(aCx);
|
||||
JS::Rooted<JS::Value> value(aCx);
|
||||
if (!JS_GetElement(aCx, aBackingList, indexToDelete, &value)) {
|
||||
ok = false;
|
||||
break;
|
||||
|
@ -340,9 +346,9 @@ bool ObservableArrayProxyHandler::SetLength(JSContext* aCx,
|
|||
}
|
||||
|
||||
bool ObservableArrayProxyHandler::SetLength(JSContext* aCx,
|
||||
JS::HandleObject aProxy,
|
||||
JS::HandleObject aBackingList,
|
||||
JS::HandleValue aValue,
|
||||
JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JSObject*> aBackingList,
|
||||
JS::Handle<JS::Value> aValue,
|
||||
JS::ObjectOpResult& aResult) const {
|
||||
uint32_t uint32Len;
|
||||
if (!ToUint32(aCx, aValue, &uint32Len)) {
|
||||
|
|
|
@ -28,65 +28,73 @@ class ObservableArrayProxyHandler : public js::ForwardingProxyHandler {
|
|||
|
||||
// Implementations of methods that can be implemented in terms of
|
||||
// other lower-level methods.
|
||||
bool defineProperty(JSContext* aCx, JS::HandleObject aProxy, JS::HandleId aId,
|
||||
bool defineProperty(JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JS::PropertyKey> aId,
|
||||
JS::Handle<JS::PropertyDescriptor> aDesc,
|
||||
JS::ObjectOpResult& aResult) const override;
|
||||
|
||||
bool delete_(JSContext* aCx, JS::HandleObject aProxy, JS::HandleId aId,
|
||||
bool delete_(JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JS::PropertyKey> aId,
|
||||
JS::ObjectOpResult& aResult) const override;
|
||||
|
||||
bool get(JSContext* aCx, JS::HandleObject aProxy, JS::HandleValue aReceiver,
|
||||
JS::HandleId aId, JS::MutableHandleValue aVp) const override;
|
||||
bool get(JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JS::Value> aReceiver, JS::Handle<JS::PropertyKey> aId,
|
||||
JS::MutableHandle<JS::Value> aVp) const override;
|
||||
|
||||
bool getOwnPropertyDescriptor(
|
||||
JSContext* aCx, JS::HandleObject aProxy, JS::HandleId aId,
|
||||
JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JS::PropertyKey> aId,
|
||||
JS::MutableHandle<Maybe<JS::PropertyDescriptor>> aDesc) const override;
|
||||
|
||||
bool has(JSContext* aCx, JS::HandleObject aProxy, JS::HandleId aId,
|
||||
bool* aBp) const override;
|
||||
bool has(JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JS::PropertyKey> aId, bool* aBp) const override;
|
||||
|
||||
bool ownPropertyKeys(JSContext* aCx, JS::HandleObject aProxy,
|
||||
bool ownPropertyKeys(JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::MutableHandleVector<jsid> aProps) const override;
|
||||
|
||||
bool preventExtensions(JSContext* aCx, JS::HandleObject aProxy,
|
||||
bool preventExtensions(JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::ObjectOpResult& aResult) const override;
|
||||
|
||||
bool set(JSContext* aCx, JS::HandleObject aProxy, JS::HandleId aId,
|
||||
JS::HandleValue aV, JS::HandleValue aReceiver,
|
||||
bool set(JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JS::PropertyKey> aId, JS::Handle<JS::Value> aV,
|
||||
JS::Handle<JS::Value> aReceiver,
|
||||
JS::ObjectOpResult& aResult) const override;
|
||||
|
||||
bool SetLength(JSContext* aCx, JS::HandleObject aProxy,
|
||||
bool SetLength(JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
uint32_t aLength) const;
|
||||
|
||||
static const char family;
|
||||
|
||||
protected:
|
||||
bool GetBackingListObject(JSContext* aCx, JS::HandleObject aProxy,
|
||||
JS::MutableHandleObject aBackingListObject) const;
|
||||
bool GetBackingListObject(
|
||||
JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::MutableHandle<JSObject*> aBackingListObject) const;
|
||||
|
||||
bool GetBackingListLength(JSContext* aCx, JS::HandleObject aProxy,
|
||||
bool GetBackingListLength(JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
uint32_t* aLength) const;
|
||||
|
||||
bool SetLength(JSContext* aCx, JS::HandleObject aProxy,
|
||||
JS::HandleObject aBackingList, uint32_t aLength,
|
||||
bool SetLength(JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JSObject*> aBackingList, uint32_t aLength,
|
||||
JS::ObjectOpResult& aResult) const;
|
||||
|
||||
bool SetLength(JSContext* aCx, JS::HandleObject aProxy,
|
||||
JS::HandleObject aBackingList, JS::HandleValue aValue,
|
||||
bool SetLength(JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JSObject*> aBackingList,
|
||||
JS::Handle<JS::Value> aValue,
|
||||
JS::ObjectOpResult& aResult) const;
|
||||
|
||||
// Hook for subclasses to invoke the setting the indexed value steps which
|
||||
// would invoke DeleteAlgorithm/SetAlgorithm defined and implemented per
|
||||
// interface. Returns false and throw exception on failure.
|
||||
virtual bool SetIndexedValue(JSContext* aCx, JS::HandleObject aProxy,
|
||||
JS::HandleObject aBackingList, uint32_t aIndex,
|
||||
JS::HandleValue aValue,
|
||||
virtual bool SetIndexedValue(JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JSObject*> aBackingList,
|
||||
uint32_t aIndex, JS::Handle<JS::Value> aValue,
|
||||
JS::ObjectOpResult& aResult) const = 0;
|
||||
|
||||
// Hook for subclasses to invoke the DeleteAlgorithm defined and implemented
|
||||
// per interface. Returns false and throw exception on failure.
|
||||
virtual bool OnDeleteItem(JSContext* aCx, JS::HandleObject aProxy,
|
||||
JS::HandleValue aValue, uint32_t aIndex) const = 0;
|
||||
virtual bool OnDeleteItem(JSContext* aCx, JS::Handle<JSObject*> aProxy,
|
||||
JS::Handle<JS::Value> aValue,
|
||||
uint32_t aIndex) const = 0;
|
||||
};
|
||||
|
||||
inline bool IsObservableArrayProxy(JSObject* obj) {
|
||||
|
|
|
@ -163,27 +163,27 @@ nsScriptErrorBase::GetHasException(bool* aHasException) {
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsScriptErrorBase::GetException(JS::MutableHandleValue aException) {
|
||||
nsScriptErrorBase::GetException(JS::MutableHandle<JS::Value> aException) {
|
||||
aException.setUndefined();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsScriptErrorBase::SetException(JS::HandleValue aStack) {
|
||||
nsScriptErrorBase::SetException(JS::Handle<JS::Value> aStack) {
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsScriptErrorBase::GetStack(JS::MutableHandleValue aStack) {
|
||||
nsScriptErrorBase::GetStack(JS::MutableHandle<JS::Value> aStack) {
|
||||
aStack.setUndefined();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsScriptErrorBase::SetStack(JS::HandleValue aStack) { return NS_OK; }
|
||||
nsScriptErrorBase::SetStack(JS::Handle<JS::Value> aStack) { return NS_OK; }
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsScriptErrorBase::GetStackGlobal(JS::MutableHandleValue aStackGlobal) {
|
||||
nsScriptErrorBase::GetStackGlobal(JS::MutableHandle<JS::Value> aStackGlobal) {
|
||||
aStackGlobal.setUndefined();
|
||||
return NS_OK;
|
||||
}
|
||||
|
|
|
@ -104,17 +104,17 @@ class nsScriptError final : public nsScriptErrorBase {
|
|||
class nsScriptErrorWithStack : public nsScriptErrorBase {
|
||||
public:
|
||||
nsScriptErrorWithStack(JS::Handle<mozilla::Maybe<JS::Value>> aException,
|
||||
JS::HandleObject aStack,
|
||||
JS::HandleObject aStackGlobal);
|
||||
JS::Handle<JSObject*> aStack,
|
||||
JS::Handle<JSObject*> aStackGlobal);
|
||||
|
||||
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
||||
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(nsScriptErrorWithStack)
|
||||
|
||||
NS_IMETHOD GetHasException(bool*) override;
|
||||
NS_IMETHOD GetException(JS::MutableHandleValue) override;
|
||||
NS_IMETHOD GetException(JS::MutableHandle<JS::Value>) override;
|
||||
|
||||
NS_IMETHOD GetStack(JS::MutableHandleValue) override;
|
||||
NS_IMETHOD GetStackGlobal(JS::MutableHandleValue) override;
|
||||
NS_IMETHOD GetStack(JS::MutableHandle<JS::Value>) override;
|
||||
NS_IMETHOD GetStackGlobal(JS::MutableHandle<JS::Value>) override;
|
||||
NS_IMETHOD ToString(nsACString& aResult) override;
|
||||
|
||||
private:
|
||||
|
@ -138,6 +138,6 @@ class nsScriptErrorWithStack : public nsScriptErrorBase {
|
|||
// isn't already dying to prevent leaks.
|
||||
already_AddRefed<nsScriptErrorBase> CreateScriptError(
|
||||
nsGlobalWindowInner* win, JS::Handle<mozilla::Maybe<JS::Value>> aException,
|
||||
JS::HandleObject aStack, JS::HandleObject aStackGlobal);
|
||||
JS::Handle<JSObject*> aStack, JS::Handle<JSObject*> aStackGlobal);
|
||||
|
||||
#endif /* mozilla_dom_nsScriptError_h */
|
||||
|
|
|
@ -23,8 +23,8 @@ using namespace mozilla::dom;
|
|||
namespace {
|
||||
|
||||
static nsCString FormatStackString(JSContext* cx, JSPrincipals* aPrincipals,
|
||||
JS::HandleObject aStack) {
|
||||
JS::RootedString formattedStack(cx);
|
||||
JS::Handle<JSObject*> aStack) {
|
||||
JS::Rooted<JSString*> formattedStack(cx);
|
||||
if (!JS::BuildStackString(cx, aPrincipals, aStack, &formattedStack)) {
|
||||
return nsCString();
|
||||
}
|
||||
|
@ -66,8 +66,8 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsScriptErrorWithStack)
|
|||
NS_INTERFACE_MAP_END
|
||||
|
||||
nsScriptErrorWithStack::nsScriptErrorWithStack(
|
||||
JS::Handle<mozilla::Maybe<JS::Value>> aException, JS::HandleObject aStack,
|
||||
JS::HandleObject aStackGlobal)
|
||||
JS::Handle<mozilla::Maybe<JS::Value>> aException,
|
||||
JS::Handle<JSObject*> aStack, JS::Handle<JSObject*> aStackGlobal)
|
||||
: mStack(aStack), mStackGlobal(aStackGlobal) {
|
||||
MOZ_ASSERT(NS_IsMainThread(), "You can't use this class on workers.");
|
||||
|
||||
|
@ -100,19 +100,20 @@ nsScriptErrorWithStack::GetHasException(bool* aHasException) {
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsScriptErrorWithStack::GetException(JS::MutableHandleValue aException) {
|
||||
nsScriptErrorWithStack::GetException(JS::MutableHandle<JS::Value> aException) {
|
||||
aException.set(mException);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsScriptErrorWithStack::GetStack(JS::MutableHandleValue aStack) {
|
||||
nsScriptErrorWithStack::GetStack(JS::MutableHandle<JS::Value> aStack) {
|
||||
aStack.setObjectOrNull(mStack);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsScriptErrorWithStack::GetStackGlobal(JS::MutableHandleValue aStackGlobal) {
|
||||
nsScriptErrorWithStack::GetStackGlobal(
|
||||
JS::MutableHandle<JS::Value> aStackGlobal) {
|
||||
aStackGlobal.setObjectOrNull(mStackGlobal);
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -139,7 +140,7 @@ nsScriptErrorWithStack::ToString(nsACString& /*UTF8*/ aResult) {
|
|||
JS::GetRealmPrincipals(js::GetNonCCWObjectRealm(mStackGlobal));
|
||||
|
||||
JSContext* cx = jsapi.cx();
|
||||
JS::RootedObject stack(cx, mStack);
|
||||
JS::Rooted<JSObject*> stack(cx, mStack);
|
||||
nsCString stackString = FormatStackString(cx, principals, stack);
|
||||
nsCString combined = message + "\n"_ns + stackString;
|
||||
aResult.Assign(combined);
|
||||
|
@ -159,7 +160,7 @@ static bool IsObjectGlobalDying(JSObject* aObj) {
|
|||
|
||||
already_AddRefed<nsScriptErrorBase> CreateScriptError(
|
||||
nsGlobalWindowInner* win, JS::Handle<mozilla::Maybe<JS::Value>> aException,
|
||||
JS::HandleObject aStack, JS::HandleObject aStackGlobal) {
|
||||
JS::Handle<JSObject*> aStack, JS::Handle<JSObject*> aStackGlobal) {
|
||||
bool createWithStack = true;
|
||||
if (aException.isNothing() && !aStack) {
|
||||
// Neither stack nor exception, do not need nsScriptErrorWithStack.
|
||||
|
|
|
@ -240,7 +240,8 @@ class nsXULPrototypeScript : public nsXULPrototypeNode {
|
|||
|
||||
JS::Stencil* GetStencil() { return mStencil.get(); }
|
||||
|
||||
nsresult InstantiateScript(JSContext* aCx, JS::MutableHandleScript aScript);
|
||||
nsresult InstantiateScript(JSContext* aCx,
|
||||
JS::MutableHandle<JSScript*> aScript);
|
||||
|
||||
nsCOMPtr<nsIURI> mSrcURI;
|
||||
uint32_t mLineNo;
|
||||
|
|
Загрузка…
Ссылка в новой задаче