75 lines
2.2 KiB
JavaScript
75 lines
2.2 KiB
JavaScript
// Module ID: 1423
|
|
// Function ID: 1424
|
|
// Name: setFunctionLength
|
|
// Dependencies: [1424, 540, 541, 542, 1425]
|
|
|
|
// Module 1423 (setFunctionLength)
|
|
import getEvalledConstructor from "getEvalledConstructor" /* 540 */;
|
|
import _mod541 from "module_541" /* 541 */;
|
|
import _mod542 from "module_542" /* 542 */;
|
|
import hasPropertyDescriptors from "hasPropertyDescriptors" /* 1424 */;
|
|
import defineDataProperty from "defineDataProperty" /* 1425 */;
|
|
|
|
let closure_2 = hasPropertyDescriptors();
|
|
let closure_3 = getEvalledConstructor("%Math.floor%");
|
|
|
|
export default function setFunctionLength(fn, num) {
|
|
if (typeof fn !== "function") {
|
|
const tmp25 = new _mod541("`fn` is not a function");
|
|
throw tmp25;
|
|
} else {
|
|
if (typeof num === "number") {
|
|
if (num >= 0) {
|
|
if (num <= 4294967295) {
|
|
if (callback(num) === num) {
|
|
let flag = true;
|
|
let flag2 = true;
|
|
if ("length" in fn) {
|
|
flag = true;
|
|
flag2 = true;
|
|
if (_mod542) {
|
|
const tmp4 = tmp2(542)(fn, "length");
|
|
let tmp5 = tmp4;
|
|
if (tmp4) {
|
|
tmp5 = !tmp4.configurable;
|
|
}
|
|
let flag3 = true;
|
|
if (tmp5) {
|
|
flag3 = false;
|
|
}
|
|
let tmp6 = tmp4;
|
|
if (tmp4) {
|
|
tmp6 = !tmp4.writable;
|
|
}
|
|
flag = true;
|
|
flag2 = flag3;
|
|
if (tmp6) {
|
|
flag = false;
|
|
flag2 = flag3;
|
|
}
|
|
}
|
|
tmp2 = require;
|
|
}
|
|
if (!flag2) {
|
|
flag2 = flag;
|
|
}
|
|
if (!flag2) {
|
|
flag2 = !tmp;
|
|
}
|
|
if (flag2) {
|
|
const tmp10 = defineDataProperty;
|
|
if (closure_2) {
|
|
tmp10(fn, "length", num, true, true);
|
|
} else {
|
|
tmp10(fn, "length", num);
|
|
}
|
|
}
|
|
return fn;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
const tmp19 = new _mod541("`length` must be a positive 32-bit integer");
|
|
throw tmp19;
|
|
}
|
|
};
|