mirror of
https://github.com/MercuryWorkshop/scramjet.git
synced 2025-05-17 08:00:02 -04:00
properly? handle getOwnPropertyDescriptor
This commit is contained in:
parent
e8b9e04d46
commit
8d2ab5ac8b
6 changed files with 35 additions and 1 deletions
26
src/client/helpers.ts
Normal file
26
src/client/helpers.ts
Normal file
|
@ -0,0 +1,26 @@
|
|||
export function getOwnPropertyDescriptorHandler(target, prop) {
|
||||
let realDescriptor = Reflect.getOwnPropertyDescriptor(target, prop);
|
||||
if (!realDescriptor) return realDescriptor;
|
||||
|
||||
let d: PropertyDescriptor = {};
|
||||
|
||||
if (realDescriptor.enumerable !== undefined)
|
||||
d.enumerable = realDescriptor.enumerable;
|
||||
if (realDescriptor.configurable !== undefined)
|
||||
d.configurable = realDescriptor.configurable;
|
||||
if (realDescriptor.writable !== undefined)
|
||||
d.writable = realDescriptor.writable;
|
||||
|
||||
if (realDescriptor.get) {
|
||||
d.get = () => this.get(target, prop);
|
||||
}
|
||||
|
||||
if (realDescriptor.set) {
|
||||
d.set = (value) => this.set(target, prop, value);
|
||||
}
|
||||
|
||||
if (realDescriptor.value) {
|
||||
d.value = this.get(target, prop);
|
||||
}
|
||||
return d;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue