import changes from `dev' branch of rmottola/Arctic-Fox:

- Bug 1209039 - Temporarily disable thread names in Moz2D to work around a static check failure CLOSED TREE. r=me (8c45ce9eb)
- missing bit of Bug 1198216 - Check for presence of ICU::Timezone::recreateDefault() (e047330f1)
- Bug 1233743 - Remove the Mutex typedef from gfx/2d. r=vlad (c1b5a3746)
- Bug 1083101 - Implement gfx::DrawingJob. r=jrmuizel (22818c618)
- Bug 1083101 - Extend DrawCommand storage functionality and fix a bug with dashed stroke patterns. r=jrmuizel (11daecf61)
- Bug 1083101 - Make gfx::DrawingCommand methods const. r=jrmuizel (f5099f18d)
- Bug 1127665 - Fix the condition of if-statement of name updating when the Bluetoooth device paired. r=btian (a751b7b6c)
- Bug 1128383 - [bluetooth2] Add adapter.onpairingaborted event handler, f=jocelyn, f=jaliu, r=shuang, r=bz (cc9fe48d9)
- Bug 1054756, part 3 - Implement Symbol.toPrimitive. Replace existing convert hooks with methods. r=jandem. (4c3db3ac3)
- Bug 1083101 - Make SyncObject's waiting jobs list lock-free. r=jrmuizel (a5793e016)
- pointer style (80bb87e64)
- Bug 1207006 - Remove the unhelpfully-confusing exceptionCodeIndented. r=bz (5fc73954b)
- pointer style (f46f24dfb)
- Bug 1145854 - Don't leak WrapperOwner::className's string. r=billm (6e83a9377)
- Bug 1187234 - Throw a TypeError when Array.isArray is passed a revoked proxy. r=efaust (75e166521)
- Bug 1164764 - Make all the various DeadObjectProxy handler methods call a single function to report a dead object, rather than repeating the same function call/arguments everywhere. r=evilpies (686daa9d2)
This commit is contained in:
2021-11-17 09:55:35 +08:00
parent 60a7b63caa
commit b34d60dbaa
64 changed files with 1412 additions and 686 deletions
+12 -11
View File
@@ -11,6 +11,8 @@
#include "jsobjinlines.h"
using namespace js;
using JS::IsArrayAnswer;
using mozilla::ArrayLength;
static inline bool
@@ -1103,20 +1105,19 @@ bool
ScriptedDirectProxyHandler::objectClassIs(HandleObject proxy, ESClassValue classValue,
JSContext* cx) const
{
// Special case IsArray. In every other instance ES wants to have exactly
// one object type and not a proxy around it, so return false.
if (classValue != ESClass_IsArray)
return false;
return false;
}
// In ES6 IsArray is supposed to poke at the Proxy target, instead we do this here.
// The reason for this is that we have proxies for which looking at the target might
// be impossible. So instead we use our little objectClassIs function that just works
// already across different wrappers.
bool
ScriptedDirectProxyHandler::isArray(JSContext* cx, HandleObject proxy,
IsArrayAnswer* answer) const
{
RootedObject target(cx, proxy->as<ProxyObject>().target());
if (!target)
return false;
if (target)
return JS::IsArray(cx, target, answer);
return IsArray(target, cx);
*answer = IsArrayAnswer::RevokedProxy;
return true;
}
const char*