56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
// Metro module 545 (f546).
|
|
import { $forInKeys } from "../_hermes/prelude";
|
|
module.exports = function hasSymbols() {
|
|
if (typeof globalThis.Symbol === "function" && typeof Object.getOwnPropertySymbols === "function") {
|
|
if (typeof Symbol.iterator === "symbol") {
|
|
return true;
|
|
}
|
|
const r7 = Symbol("test");
|
|
const r9 = Object(r7);
|
|
if (typeof r7 === "string") {
|
|
return false;
|
|
}
|
|
if (Object.prototype.toString.call(r7) !== "[object Symbol]") {
|
|
return false;
|
|
}
|
|
if (Object.prototype.toString.call(r9) !== "[object Symbol]") {
|
|
return false;
|
|
}
|
|
const r26 = {};
|
|
r26[r7] = 42;
|
|
const r28 = $forInKeys(r26);
|
|
let r1 = 0;
|
|
const length = r28.length;
|
|
if (r28 !== void 0) {
|
|
const r29 = r1 < length ? r28[r1++] : void 0;
|
|
if (r29 !== void 0) {
|
|
return false;
|
|
}
|
|
}
|
|
if (typeof Object.keys === "function" && Object.keys(r26).length !== 0) {
|
|
return false;
|
|
}
|
|
if (typeof Object.getOwnPropertyNames === "function" && Object.getOwnPropertyNames(r26).length !== 0) {
|
|
return false;
|
|
}
|
|
const ownPropertySymbols = Object.getOwnPropertySymbols(r26);
|
|
if (ownPropertySymbols.length === 1 && ownPropertySymbols[0] === r7) {
|
|
if (Object.prototype.propertyIsEnumerable.call(r26, r7)) {
|
|
L29: {
|
|
if (typeof Object.getOwnPropertyDescriptor === "function") {
|
|
const ownPropertyDescriptor = Object.getOwnPropertyDescriptor(r26, r7);
|
|
if (ownPropertyDescriptor.value === 42 && ownPropertyDescriptor.enumerable === true) {
|
|
break L29;
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
return false;
|
|
}
|
|
return false;
|
|
};
|