decord/source/4429_ToPropertyDescriptor.js

60 lines
2 KiB
JavaScript
Raw Normal View History

2026-07-25 08:10:48 +00:00
// Module ID: 4429
2026-07-27 11:26:19 +00:00
// Function ID: 38924
2026-07-23 10:11:24 +00:00
// Name: ToPropertyDescriptor
2026-07-25 08:10:48 +00:00
// Dependencies: [4377, 518, 550, 4430, 4412]
2026-07-23 10:11:24 +00:00
2026-07-25 08:10:48 +00:00
// Module 4429 (ToPropertyDescriptor)
2026-07-23 10:11:24 +00:00
export default function ToPropertyDescriptor(enumerable) {
2026-07-25 08:10:48 +00:00
if (require(4377) /* isObject */(enumerable)) {
2026-07-23 10:11:24 +00:00
const obj = {};
if (tmp(550)(enumerable, "enumerable")) {
2026-07-25 08:10:48 +00:00
obj["[[Enumerable]]"] = require(4430) /* ToBoolean */(enumerable.enumerable);
2026-07-23 10:11:24 +00:00
}
if (require(550) /* bind */(enumerable, "configurable")) {
2026-07-25 08:10:48 +00:00
obj["[[Configurable]]"] = require(4430) /* ToBoolean */(enumerable.configurable);
2026-07-23 10:11:24 +00:00
}
if (require(550) /* bind */(enumerable, "value")) {
obj["[[Value]]"] = enumerable.value;
}
if (require(550) /* bind */(enumerable, "writable")) {
2026-07-25 08:10:48 +00:00
obj["[[Writable]]"] = require(4430) /* ToBoolean */(enumerable.writable);
2026-07-23 10:11:24 +00:00
}
if (require(550) /* bind */(enumerable, "get")) {
const get = enumerable.get;
if (undefined !== get) {
2026-07-25 08:10:48 +00:00
if (!require(4412) /* apply */(get)) {
2026-07-23 10:11:24 +00:00
let tmp26 = require(518);
const prototype2 = tmp26.prototype;
tmp26 = new tmp26("getter must be a function");
throw tmp26;
}
}
obj["[[Get]]"] = get;
}
if (require(550) /* bind */(enumerable, "set")) {
if (undefined !== enumerable.set) {
2026-07-25 08:10:48 +00:00
if (!require(4412) /* apply */(set)) {
2026-07-23 10:11:24 +00:00
let tmp37 = require(518);
const prototype3 = tmp37.prototype;
tmp37 = new tmp37("setter must be a function");
throw tmp37;
}
}
obj["[[Set]]"] = enumerable.set;
}
if (require(550) /* bind */(obj, "[[Get]]")) {
let tmp52 = require(518);
const prototype4 = tmp52.prototype;
tmp52 = new tmp52("Invalid property descriptor. Cannot both specify accessors and a value or writable attribute");
throw tmp52;
}
return obj;
} else {
let tmpResult = tmp(518);
const prototype = tmpResult.prototype;
tmpResult = new tmpResult("ToPropertyDescriptor requires an object");
throw tmpResult;
}
};