From 56f78ea1606972c25062d5796b0ebef412dfd802 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sun, 5 Nov 2023 15:14:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=BB=E7=BB=93lx=E5=AF=B9=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/src/main/assets/script/user-api-preload.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/android/app/src/main/assets/script/user-api-preload.js b/android/app/src/main/assets/script/user-api-preload.js index 03c5a24..05dfcf7 100644 --- a/android/app/src/main/assets/script/user-api-preload.js +++ b/android/app/src/main/assets/script/user-api-preload.js @@ -484,6 +484,13 @@ globalThis.lx_setup = (key, id, name, description, rawScript) => { }, } + const freezeObject = (obj) => { + if (typeof obj != 'object') return + Object.freeze(obj) + for (const subObj of Object.values(obj)) freezeObject(subObj) + } + freezeObject(globalThis.lx) + const _toString = Function.prototype.toString // eslint-disable-next-line no-extend-native Function.prototype.toString = function() { @@ -497,7 +504,7 @@ globalThis.lx_setup = (key, id, name, description, rawScript) => { Function.prototype.toLocaleString, Object.prototype.toString, ] - const freezeObject = (obj, freezedObj = new Set()) => { + const freezeObjectProperty = (obj, freezedObj = new Set()) => { if (obj == null) return switch (typeof obj) { case 'object': @@ -511,11 +518,11 @@ globalThis.lx_setup = (key, id, name, description, rawScript) => { if (config.configurable) config.configurable = false Object.defineProperty(obj, name, config) } - freezeObject(config.value, freezedObj) + freezeObjectProperty(config.value, freezedObj) } } } - freezeObject(globalThis) + freezeObjectProperty(globalThis) console.log('Preload finished.') }