mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-23 06:10:02 +08:00
- Support stored builtin helpers, typed rest callbacks, and shared FileHandle values. - Preserve async results, specialized function bodies, and checked class receivers. - Compile live export dictionaries and keep native property names distinct.
21 lines
978 B
JavaScript
21 lines
978 B
JavaScript
var define = Object.defineProperty;
|
|
var descriptor = Object.getOwnPropertyDescriptor;
|
|
var keys = Object.keys;
|
|
var values = Object.values;
|
|
var entries = Object.entries;
|
|
var defineMany = Object.defineProperties;
|
|
const target = {};
|
|
const alias = target;
|
|
let value = 2;
|
|
define(target, "value", { get: () => value, set: next => { value = next; }, enumerable: true, configurable: true });
|
|
console.log(alias === target, alias.value, keys(alias).join(","));
|
|
alias.value = 9;
|
|
console.log(value, values(target).join(","), entries(target)[0].join(":"));
|
|
const desc = descriptor(target, "value");
|
|
console.log(typeof desc.get, typeof desc.set, desc.enumerable, desc.configurable);
|
|
defineMany(target, { name: { value: "renderer", enumerable: true } });
|
|
console.log(target.name, keys(target).join(","), define === Object.defineProperty);
|
|
console.log(descriptor(target, "missing") === undefined);
|
|
try { define(target, "name", { value: "changed" }); }
|
|
catch (error) { console.log(error.name); }
|