mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-08-27 01:38:39 +09:00
Remove/inline CanonicalizeArrayLengthValue.
This commit is contained in:
parent
a6bb928fa4
commit
bd3135ad35
2 changed files with 14 additions and 29 deletions
|
|
@ -511,24 +511,6 @@ struct ReverseIndexComparator
|
|||
}
|
||||
};
|
||||
|
||||
bool
|
||||
js::CanonicalizeArrayLengthValue(JSContext* cx, HandleValue v, uint32_t* newLen)
|
||||
{
|
||||
double d;
|
||||
|
||||
if (!ToUint32(cx, v, newLen))
|
||||
return false;
|
||||
|
||||
if (!ToNumber(cx, v, &d))
|
||||
return false;
|
||||
|
||||
if (d == *newLen)
|
||||
return true;
|
||||
|
||||
JS_ReportErrorNumberASCII(cx, GetErrorMessage, nullptr, JSMSG_BAD_ARRAY_LENGTH);
|
||||
return false;
|
||||
}
|
||||
|
||||
/* ES6 draft rev 34 (2015 Feb 20) 9.4.2.4 ArraySetLength */
|
||||
bool
|
||||
js::ArraySetLength(JSContext* cx, Handle<ArrayObject*> arr, HandleId id,
|
||||
|
|
@ -550,12 +532,22 @@ js::ArraySetLength(JSContext* cx, Handle<ArrayObject*> arr, HandleId id,
|
|||
} else {
|
||||
// Step 2 is irrelevant in our implementation.
|
||||
|
||||
// Steps 3-7.
|
||||
MOZ_ASSERT_IF(attrs & JSPROP_IGNORE_VALUE, value.isUndefined());
|
||||
if (!CanonicalizeArrayLengthValue(cx, value, &newLen))
|
||||
// Step 3.
|
||||
if (!ToUint32(cx, value, &newLen))
|
||||
return false;
|
||||
|
||||
// Step 8 is irrelevant in our implementation.
|
||||
// Step 4.
|
||||
double d;
|
||||
if (!ToNumber(cx, value, &d))
|
||||
return false;
|
||||
|
||||
// Step 5.
|
||||
if (d != newLen) {
|
||||
JS_ReportErrorNumberASCII(cx, GetErrorMessage, nullptr, JSMSG_BAD_ARRAY_LENGTH);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Steps 6-8 are irrelevant in our implementation.
|
||||
}
|
||||
|
||||
// Steps 9-11.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue