mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-09 17:31:47 +09:00
Simplify Error Xray code
This commit is contained in:
parent
4fad420bb8
commit
dd09fc2495
2 changed files with 3 additions and 20 deletions
|
|
@ -220,11 +220,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=933681
|
|||
// There is no TypedArray constructor, looks like.
|
||||
is(window.TypedArray, undefined, "If this ever changes, add to this test!");
|
||||
for (var c of errorObjectClasses) {
|
||||
gPrototypeProperties[c] = ["constructor", "name",
|
||||
// We don't actually resolve these empty data properties
|
||||
// onto the Xray prototypes, but we list them here to make
|
||||
// the test happy.
|
||||
"lineNumber", "columnNumber", "fileName", "message", "stack"];
|
||||
gPrototypeProperties[c] = ["constructor", "name", "message", "stack"];
|
||||
gConstructorProperties[c] = constructorProps([]);
|
||||
}
|
||||
// toString and toSource only live on the parent proto (Error.prototype).
|
||||
|
|
@ -791,8 +787,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=933681
|
|||
// We only invoke testXray with Error, because that function isn't set up
|
||||
// to deal with dependent classes and fixing it up is more trouble than
|
||||
// it's worth.
|
||||
testXray('Error', new iwin.Error('some error message'), new iwin.Error(),
|
||||
['fileName', 'lineNumber', 'columnNumber', 'message']);
|
||||
testXray('Error', new iwin.Error('some error message'), new iwin.Error());
|
||||
|
||||
// Make sure that the dependent classes have their prototypes set up correctly.
|
||||
for (let c of errorObjectClasses.filter(x => x != "Error")) {
|
||||
|
|
@ -806,7 +801,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=933681
|
|||
e.wrappedJSObject[name] = goodReplacement;
|
||||
is(e[name], goodReplacement, name + " property ok after replacement: " + goodReplacement);
|
||||
e.wrappedJSObject[name] = faultyReplacement;
|
||||
is(e[name], undefined, name + " property censored after suspicious replacement");
|
||||
is(e[name], name == 'message' ? "" : undefined, name + " property skipped after suspicious replacement");
|
||||
}
|
||||
testProperty('message', x => x == 'some message', 'some other message', 42);
|
||||
testProperty('fileName', x => x == '', 'otherFilename.html', new iwin.Object());
|
||||
|
|
|
|||
|
|
@ -636,14 +636,6 @@ JSXrayTraits::resolveOwnProperty(JSContext* cx, const Wrapper& jsWrapper,
|
|||
return true;
|
||||
}
|
||||
|
||||
// Handle the 'name' property for error prototypes.
|
||||
if (IsErrorObjectKey(key) && id == GetJSIDByIndex(cx, XPCJSContext::IDX_NAME)) {
|
||||
RootedId className(cx);
|
||||
ProtoKeyToId(cx, key, &className);
|
||||
FillPropertyDescriptor(desc, wrapper, 0, UndefinedValue());
|
||||
return JS_IdToValue(cx, className, desc.value());
|
||||
}
|
||||
|
||||
// Handle the 'lastIndex' property for RegExp prototypes.
|
||||
if (key == JSProto_RegExp && id == GetJSIDByIndex(cx, XPCJSContext::IDX_LASTINDEX))
|
||||
return getOwnPropertyFromWrapperIfSafe(cx, wrapper, id, desc);
|
||||
|
|
@ -889,10 +881,6 @@ JSXrayTraits::enumerateNames(JSContext* cx, HandleObject wrapper, unsigned flags
|
|||
if (!props.append(GetJSIDByIndex(cx, XPCJSContext::IDX_CONSTRUCTOR)))
|
||||
return false;
|
||||
|
||||
// For Error protoypes, add the 'name' property.
|
||||
if (IsErrorObjectKey(key) && !props.append(GetJSIDByIndex(cx, XPCJSContext::IDX_NAME)))
|
||||
return false;
|
||||
|
||||
// For RegExp protoypes, add the 'lastIndex' property.
|
||||
if (key == JSProto_RegExp && !props.append(GetJSIDByIndex(cx, XPCJSContext::IDX_LASTINDEX)))
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue