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:
Kagami Sascha Rosylight 2022-05-18 08:43:09 +00:00
Родитель 5bf1db4f71
Коммит 9d5386b0ce
13 изменённых файлов: 123 добавлений и 108 удалений

Просмотреть файл

@ -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;