From 09a5cc517e4b8d0354e803f2d5cb0d715ff56a77 Mon Sep 17 00:00:00 2001 From: CanadaHonk Date: Sun, 2 Apr 2023 19:01:32 +0100 Subject: [PATCH] ipc: fix store functions --- src/lib/ipc.js | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/lib/ipc.js b/src/lib/ipc.js index 7b727cf..5e1a82a 100644 --- a/src/lib/ipc.js +++ b/src/lib/ipc.js @@ -101,18 +101,22 @@ Gluon.ipc.store = new Proxy({ keys: () => Object.keys(_store) }, { - get(_obj, key) { - return _store[key]; + get(target, key) { + return target[key] ?? _store[key]; }, - set(_obj, key, value) { + set(target, key, value) { + if (target[key]) throw new Error('Cannot overwrite Gluon functions'); + _store[key] = value; updateBackend(key, value); return true; }, - deleteProperty(_obj, key) { + deleteProperty(target, key) { + if (target[key]) throw new Error('Cannot overwrite Gluon functions'); + delete _store[key]; updateBackend(key, undefined); @@ -249,18 +253,22 @@ delete window._gluonSend; keys: () => Object.keys(_store) }, { - get(_obj, key) { - return _store[key]; + get(target, key) { + return target[key] ?? _store[key]; }, - set(_obj, key, value) { + set(target, key, value) { + if (target[key]) throw new Error('Cannot overwrite Gluon functions'); + _store[key] = value; updateWeb(key, value); return true; }, - deleteProperty(_obj, key) { + deleteProperty(target, key) { + if (target[key]) throw new Error('Cannot overwrite Gluon functions'); + delete _store[key]; updateWeb(key, undefined);