Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit f6e3ab8

Browse files
committed
[IMP] Memory: Improve perf but user can not use Object.defineProperty
1 parent 3b30577 commit f6e3ab8

File tree

3 files changed

+4
-22
lines changed

3 files changed

+4
-22
lines changed

packages/core/src/Memory/VersionableArray.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ const proxyArrayHandler = {
4545
}
4646
const params = array[memoryProxyPramsKey];
4747
if (!params.memory) {
48-
return proxyObjectHandler.get(array, prop, proxy);
48+
return array[prop];
4949
}
5050
switch (prop) {
5151
case 'indexOf':
@@ -69,7 +69,7 @@ const proxyArrayHandler = {
6969
case 'filter':
7070
return filter.bind(proxy, params);
7171
default:
72-
return proxyObjectHandler.get(array, prop, proxy);
72+
return array[prop];
7373
}
7474
},
7575
set(proxyObject: AllowedMemory[], prop: keyType, value: AllowedMemory, proxy: object): boolean {

packages/core/src/Memory/VersionableObject.ts

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -66,24 +66,6 @@ export interface ProxyObjectHandler {
6666
}
6767

6868
export const proxyObjectHandler = {
69-
get(obj: object, prop: keyType, proxy: object): AllowedMemory {
70-
if (prop === memoryProxyPramsKey || prop === 'toString' || prop === 'constructor') {
71-
return obj[prop];
72-
}
73-
74-
const desc = Object.getOwnPropertyDescriptor(obj, prop);
75-
if (desc?.get) {
76-
return desc.get.call(proxy);
77-
}
78-
79-
const params = obj[memoryProxyPramsKey];
80-
const protoMethod = params.proto.getters[prop as string];
81-
if (protoMethod) {
82-
return protoMethod.call(proxy);
83-
}
84-
85-
return obj[prop];
86-
},
8769
set(obj: object, prop: keyType, value: AllowedMemory, proxy: object): boolean {
8870
// Object.assign might try to set the value of the paramsKey. We
8971
// obviously don't want that. Let it think it succeeded (returning false

packages/core/src/Memory/test/memory.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { VersionableSet } from '../VersionableSet';
77
import { makeVersionable, markNotVersionable, createProxyWithVersionable } from '../Versionable';
88
import { memoryProxyPramsKey } from '../const';
99

10-
describe('core', () => {
10+
describe.only('core', () => {
1111
describe('state', () => {
1212
describe('memory', () => {
1313
describe('throw', () => {
@@ -723,7 +723,7 @@ describe('core', () => {
723723
obj = new CustomCustom();
724724
expect(obj.getConstructor()).to.equal('CustomCustom');
725725
});
726-
it('array getter should keep proxy for "this"', () => {
726+
it.skip('array getter should keep proxy for "this"', () => {
727727
// eslint-disable-next-line @typescript-eslint/no-explicit-any
728728
const obj = new VersionableArray() as any;
729729
let test = 0;

0 commit comments

Comments
 (0)