This commit is contained in:
xuxiaobo-bobo 2023-02-21 00:49:29 +08:00
parent 28c0fc3999
commit cf8d06554d
78 changed files with 16574 additions and 14439 deletions

View File

@ -94,6 +94,16 @@ bodavm.memory.window={
status:${JSON.stringify(window.status)},
onmessage:${window.onmessage},
onbeforeunload:${window.onbeforeunload},
closed:${window.closed},
isSecureContext:${window.isSecureContext},
onappinstalled:${window.onappinstalled},
onbeforeinstallprompt:${window.onbeforeinstallprompt},
onbeforexrselect:${onbeforexrselect},
onabort:${onabort},
onblur:${onblur},
oncancel:${oncancel},
oncanplay:${oncanplay},
oncanplaythrough:${oncanplaythrough}
};
bodavm.memory.localStorage={}

View File

@ -28,7 +28,7 @@ bodavm.config.proxy = false; //是否代理
//网站为r4或者r5 设置为true 否则请关闭
bodavm.config.isrs = true //判断当前网站是不是瑞数
//网站为r6 设置为true body设置为0 否则请把true改为false
bodavm.memory.rs6=true
bodavm.memory.rs6=false
bodavm.memory.rs6_body=0
@ -206,6 +206,8 @@ bodavm.memory.window={
status:"",
onmessage:null,
onbeforeunload:function _$fx(_$jL){_$eA?(_$jN(new _$d0(_$hn[58],{},_$hf(_$jL[_$_8[73]]))),_$eu()):0;},
closed:false,
isSecureContext:true
};
bodavm.memory.localStorage={}

View File

@ -66,6 +66,7 @@ function getCode() {
code += getFile("MediaQueryList")
code += getFile("CSSRuleList")
code += getFile('Attr')
code += getFile('Option')
code += getFile('Navigation')
code += getFile("MediaStream")
code += getFile("TrustedTypePolicyFactory")

View File

@ -1,5 +1,7 @@
// Attr对象
bodavm.memory.globalobj['Attr'] = function Attr(){return bodavm.toolsFunc.throwError("TypeError", "Illegal constructor")}
bodavm.memory.globalobj['Attr'] = function Attr(){
return bodavm.toolsFunc.throwError("TypeError", "Illegal constructor")}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['Attr'], "Attr");
bodavm.memory.globalobj['Attr'].prototype.__proto__=bodavm.memory.globalobj['Node'].prototype;
bodavm.memory.globalobj['Attr'].__proto__=bodavm.memory.globalobj['Node'];

View File

@ -1,4 +1,10 @@
// Audio对象
bodavm.memory.globalobj['Audio'] = function Audio(){}
bodavm.memory.globalobj['Audio'] = function Audio(){
if (!(this instanceof Audio)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'Audio': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['Audio'], "Audio");
bodavm.memory.globalobj['Audio'].prototype.__proto__=bodavm.memory.globalobj['HTMLMediaElement'].prototype;

View File

@ -1,5 +1,7 @@
// BarProp对象
bodavm.memory.globalobj['BarProp'] = function BarProp(){return bodavm.toolsFunc.throwError("TypeError", "Illegal constructor")}
bodavm.memory.globalobj['BarProp'] = function BarProp(){
return bodavm.toolsFunc.throwError("TypeError", "Illegal constructor")}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['BarProp'], "BarProp");
bodavm.toolsFunc.defineProperty('BarProp', "visible", {configurable:true, enumerable:true, get:function visible (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['BarProp'].prototype, "BarProp", "visible_get", arguments)}, set:undefined},'prototype');
@ -7,15 +9,17 @@ bodavm.toolsFunc.defineProperty('BarProp', "visible", {configurable:true, enumer
bodavm.memory.globalobj['locationbar'] = {}
bodavm.memory.globalobj['locationbar'].__proto__=bodavm.memory.globalobj['BarProp'].prototype;
bodavm.memory.globalobj['menubar'] ={}
bodavm.memory.globalobj['menubar'].__proto__= bodavm.memory.globalobj['BarProp'].prototype;
bodavm.memory.globalobj['statusbar'] ={}
bodavm.memory.globalobj['statusbar'].__proto__=bodavm.memory.globalobj['BarProp'].prototype
bodavm.memory.globalobj['toolbar'] ={}
bodavm.memory.globalobj['toolbar'].__proto__=bodavm.memory.globalobj['BarProp'].prototype
bodavm.memory.globalobj['personalbar'] ={}
bodavm.memory.globalobj['personalbar'].__proto__=bodavm.memory.globalobj['BarProp'].prototype
bodavm.memory.globalobj['scrollbars'] ={}
bodavm.memory.globalobj['scrollbars'].__proto__=bodavm.memory.globalobj['BarProp'].prototype

View File

@ -1,5 +1,13 @@
// BeforeInstallPromptEvent对象
bodavm.memory.globalobj['BeforeInstallPromptEvent'] = function BeforeInstallPromptEvent(){return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'BeforeInstallPromptEvent': 1 argument required, but only 0 present.")}
bodavm.memory.globalobj['BeforeInstallPromptEvent'] = function BeforeInstallPromptEvent(){
if (!(this instanceof BeforeInstallPromptEvent)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'BeforeInstallPromptEvent': Please use the 'new' operator, this DOM object constructor cannot be called as a function.")}
if (arguments.length <1){
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'BeforeInstallPromptEvent': 1 argument required, but only 0 present.")}
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['BeforeInstallPromptEvent'], "BeforeInstallPromptEvent");
bodavm.memory.globalobj['BeforeInstallPromptEvent'].prototype.__proto__=bodavm.memory.globalobj['Event'].prototype;
bodavm.memory.globalobj['BeforeInstallPromptEvent'].__proto__=bodavm.memory.globalobj['Event'];

View File

@ -1,5 +1,16 @@
// CloseEvent对象
bodavm.memory.globalobj['CloseEvent'] = function CloseEvent(){return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'CloseEvent': 1 argument required, but only 0 present.")}
bodavm.memory.globalobj['CloseEvent'] = function CloseEvent() {
if (!(this instanceof CloseEvent)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'CloseEvent': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
}
if (arguments.length < 1) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'CloseEvent': 1 argument required, but only 0 present.")
}
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['CloseEvent'], "CloseEvent");
bodavm.memory.globalobj['CloseEvent'].prototype.__proto__ = bodavm.memory.globalobj['Event'].prototype;
bodavm.memory.globalobj['CloseEvent'].__proto__ = bodavm.memory.globalobj['Event'];

View File

@ -1,5 +1,10 @@
// Comment对象
bodavm.memory.globalobj['Comment'] = function Comment(){}
bodavm.memory.globalobj['Comment'] = function Comment(){
if (!(this instanceof Comment)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'Comment': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
}
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['Comment'], "Comment");
bodavm.memory.globalobj['Comment'].prototype.__proto__=bodavm.memory.globalobj['CharacterData'].prototype;
bodavm.memory.globalobj['Comment'].__proto__=bodavm.memory.globalobj['CharacterData'];

View File

@ -1,4 +1,9 @@
// DOMParser对象
bodavm.memory.globalobj['DOMParser'] = function DOMParser(){}
bodavm.memory.globalobj['DOMParser'] = function DOMParser(){
if (!(this instanceof Document)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'DOMParser': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['DOMParser'], "DOMParser");
bodavm.toolsFunc.defineProperty('DOMParser', "parseFromString", {configurable:true, enumerable:true, writable:true, value:function parseFromString (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['DOMParser'].prototype, "DOMParser", "parseFromString", arguments)}},'prototype');

View File

@ -10,3 +10,4 @@ bodavm.toolsFunc.defineProperty('Database' , "changeVersion", { configurable: tr
bodavm.memory.globalobj[ 'database'] = {}
bodavm.memory.globalobj[ 'database'] .__proto__ = bodavm.memory.globalobj['Database'] .prototype

View File

@ -11,4 +11,3 @@ bodavm.toolsFunc.defineProperty('DeprecatedStorageInfo' , "requestQuota", { writ
bodavm.memory.globalobj[ 'webkitStorageInfo'] = {}
bodavm.memory.globalobj[ 'webkitStorageInfo'].__proto__ = bodavm.memory.globalobj['DeprecatedStorageInfo'].prototype

View File

@ -1,5 +1,14 @@
// DeviceOrientationEvent对象
bodavm.memory.globalobj['DeviceOrientationEvent'] = function DeviceOrientationEvent(){return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'DeviceOrientationEvent': 1 argument required, but only 0 present.")}
bodavm.memory.globalobj['DeviceOrientationEvent'] = function DeviceOrientationEvent() {
if (!(this instanceof DeviceOrientationEvent)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'DeviceOrientationEvent': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
if (arguments.length <1){
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'DeviceOrientationEvent': 1 argument required, but only 0 present.")
}
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['DeviceOrientationEvent'], "DeviceOrientationEvent");
bodavm.memory.globalobj['DeviceOrientationEvent'].prototype.__proto__ = bodavm.memory.globalobj['Event'].prototype;
bodavm.memory.globalobj['DeviceOrientationEvent'].__proto__ = bodavm.memory.globalobj['Event'];

View File

@ -1,5 +1,9 @@
// Document对象
bodavm.memory.globalobj['Document'] = function Document(){}
bodavm.memory.globalobj['Document'] = function Document(){
if (!(this instanceof Document)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'Document': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['Document'], "Document");
bodavm.memory.globalobj['Document'].prototype.__proto__=bodavm.memory.globalobj['Node'].prototype;
bodavm.memory.globalobj['Document'].__proto__=bodavm.memory.globalobj['Node'];
@ -230,3 +234,5 @@ bodavm.toolsFunc.defineProperty('Document', "pictureInPictureElement", {configur
bodavm.toolsFunc.defineProperty('Document', "onpointerrawupdate", {configurable:true, enumerable:true, get:function onpointerrawupdate (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Document'].prototype, "Document", "onpointerrawupdate_get", arguments)}, set:function onpointerrawupdate (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Document'].prototype, "Document", "onpointerrawupdate_set", arguments)}},'prototype');
bodavm.toolsFunc.defineProperty('Document', "exitPictureInPicture", {configurable:true, enumerable:true, writable:true, value:function exitPictureInPicture (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Document'].prototype, "Document", "exitPictureInPicture", arguments)}},'prototype');
bodavm.toolsFunc.defineProperty('Document', "getAnimations", {configurable:true, enumerable:true, writable:true, value:function getAnimations (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Document'].prototype, "Document", "getAnimations", arguments)}},'prototype');
// Document=bodavm.memory.globalobj['Document']

View File

@ -1,5 +1,9 @@
// DocumentFragment对象
bodavm.memory.globalobj['DocumentFragment'] = function DocumentFragment(){}
bodavm.memory.globalobj['DocumentFragment'] = function DocumentFragment(){
if (!(this instanceof Document)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'DocumentFragment': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['DocumentFragment'], "DocumentFragment");
bodavm.memory.globalobj['DocumentFragment'].prototype.__proto__=bodavm.memory.globalobj['Node'].prototype;
bodavm.memory.globalobj['DocumentFragment'].__proto__=bodavm.memory.globalobj['Node'];

View File

@ -1,5 +1,8 @@
//Event对象
bodavm.memory.globalobj['Event']=function Event(){
if (!(this instanceof Event)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'Event': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
if (arguments.length <1){
return bodavm.toolsFunc.throwError("TypeError","Failed to construct 'Event': 1 argument required, but only 0 present.")
}

View File

@ -1,5 +1,11 @@
// EventTarget对象
bodavm.memory.globalobj['EventTarget'] = function EventTarget(){}
bodavm.memory.globalobj['EventTarget'] = function EventTarget(){
if (!(this instanceof EventTarget)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'EventTarget': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['EventTarget'], "EventTarget");
bodavm.toolsFunc.defineProperty('EventTarget', "addEventListener", {configurable:true, enumerable:true, writable:true, value:function addEventListener (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['EventTarget'].prototype, "EventTarget", "addEventListener", arguments)}},'prototype');
bodavm.toolsFunc.defineProperty('EventTarget', "dispatchEvent", {configurable:true, enumerable:true, writable:true, value:function dispatchEvent (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['EventTarget'].prototype, "EventTarget", "dispatchEvent", arguments)}},'prototype');

View File

@ -6,3 +6,5 @@ bodavm.toolsFunc.defineProperty('External', "IsSearchProviderInstalled", {config
bodavm.memory.globalobj[ 'external'] = {}
bodavm.memory.globalobj[ 'external'].__proto__=bodavm.memory.globalobj['External'].prototype;

View File

@ -1,5 +1,12 @@
// HTMLAudioElement对象
bodavm.memory.globalobj['HTMLAudioElement'] = function HTMLAudioElement(){return bodavm.toolsFunc.throwError("TypeError", "Illegal constructor")}
bodavm.memory.globalobj['HTMLAudioElement'] = function HTMLAudioElement(){
if (!(this instanceof HTMLAudioElement)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'HTMLAudioElement': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
return bodavm.toolsFunc.throwError("TypeError", "Illegal constructor")
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['HTMLAudioElement'], "HTMLAudioElement");
bodavm.memory.globalobj['HTMLAudioElement'].prototype.__proto__=bodavm.memory.globalobj['HTMLMediaElement'].prototype;
bodavm.memory.globalobj['HTMLAudioElement'].__proto__=bodavm.memory.globalobj['HTMLMediaElement'];

View File

@ -8,6 +8,7 @@ bodavm.memory.globalobj['HTMLDocument'].__proto__=bodavm.memory.globalobj['Docum
// document对象
bodavm.memory.globalobj['document'] = {}
bodavm.memory.globalobj['document'] = new bodavm.memory.globalobj['Document']()
bodavm.memory.globalobj['document'].__proto__=bodavm.memory.globalobj['HTMLDocument'].prototype;
bodavm.toolsFunc.defineProperty('document', "location", {configurable:false, enumerable:true, get:function location (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['document'], "document", "location_get", arguments)}, set:function location (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['document'], "document", "location_set", arguments)}});

View File

@ -1,5 +1,10 @@
// HTMLElement对象
bodavm.memory.globalobj['HTMLElement'] = function HTMLElement(){return bodavm.toolsFunc.throwError("TypeError", "Illegal constructor")}
bodavm.memory.globalobj['HTMLElement'] = function HTMLElement(){
if (!(this instanceof HTMLElement)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'HTMLElement': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
return bodavm.toolsFunc.throwError("TypeError", "Illegal constructor")}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['HTMLElement'], "HTMLElement");
bodavm.memory.globalobj['HTMLElement'].prototype.__proto__=bodavm.memory.globalobj['Element'].prototype;
bodavm.memory.globalobj['HTMLElement'].__proto__=bodavm.memory.globalobj['Element'];

View File

@ -1,5 +1,9 @@
// Headers对象
bodavm.memory.globalobj['Headers'] = function Headers(){}
bodavm.memory.globalobj['Headers'] = function Headers(){
if (!(this instanceof Headers)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'Headers': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['Headers'], "Headers");
bodavm.toolsFunc.defineProperty('Headers', "append", {configurable:true, enumerable:true, writable:true, value:function append (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Headers'].prototype, "Headers", "append", arguments)}},'prototype');
bodavm.toolsFunc.defineProperty('Headers', "delete", {configurable:true, enumerable:true, writable:true, value:function (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Headers'].prototype, "Headers", "delete", arguments)}},'prototype');

View File

@ -1,5 +1,12 @@
// IDBVersionChangeEvent对象
bodavm.memory.globalobj['IDBVersionChangeEvent'] = function IDBVersionChangeEvent(){return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'IDBVersionChangeEvent': 1 argument required, but only 0 present.")}
bodavm.memory.globalobj['IDBVersionChangeEvent'] = function IDBVersionChangeEvent(){
if (!(this instanceof IDBVersionChangeEvent)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'IDBVersionChangeEvent': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
if (arguments.length <1){
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'IDBVersionChangeEvent': 1 argument required, but only 0 present.")}
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['IDBVersionChangeEvent'], "IDBVersionChangeEvent");
bodavm.memory.globalobj['IDBVersionChangeEvent'].prototype.__proto__=bodavm.memory.globalobj['Event'].prototype;
bodavm.memory.globalobj['IDBVersionChangeEvent'].__proto__=bodavm.memory.globalobj['Event'];

View File

@ -23,4 +23,3 @@ bodavm.toolsFunc.defineProperty('location', "reload", {configurable:false, enume
bodavm.toolsFunc.defineProperty('location', "replace", {configurable:false, enumerable:true, writable:false, value:function replace (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['location'], "location", "replace", arguments)}});
bodavm.toolsFunc.defineProperty('location', "toString", {configurable:false, enumerable:true, writable:false, value:function toString (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['location'], "location", "toString", arguments)}});

View File

@ -1,5 +1,13 @@
// MediaEncryptedEvent对象
bodavm.memory.globalobj['MediaEncryptedEvent'] = function MediaEncryptedEvent(){return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'MediaEncryptedEvent': 1 argument required, but only 0 present.")}
bodavm.memory.globalobj['MediaEncryptedEvent'] = function MediaEncryptedEvent(){
if (!(this instanceof MediaEncryptedEvent)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'MediaEncryptedEvent': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
if (arguments.length <1){
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'MediaEncryptedEvent': 1 argument required, but only 0 present.")}
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['MediaEncryptedEvent'], "MediaEncryptedEvent");
bodavm.memory.globalobj['MediaEncryptedEvent'].prototype.__proto__=bodavm.memory.globalobj['Event'].prototype;
bodavm.memory.globalobj['MediaEncryptedEvent'].__proto__=bodavm.memory.globalobj['Event'];

View File

@ -1,5 +1,10 @@
// MediaStream对象
bodavm.memory.globalobj['MediaStream'] = function MediaStream(){}
bodavm.memory.globalobj['MediaStream'] = function MediaStream(){
if (!(this instanceof MediaStream)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'MediaStream ': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['MediaStream'], "MediaStream");
bodavm.memory.globalobj['MediaStream'].prototype.__proto__=bodavm.memory.globalobj['EventTarget'].prototype;
bodavm.memory.globalobj['MediaStream'].__proto__=bodavm.memory.globalobj['EventTarget'];

View File

@ -1,6 +1,8 @@
// MouseEvent对象
bodavm.memory.globalobj['MouseEvent'] = function MouseEvent() {
if (!(this instanceof MouseEvent)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'MouseEvent': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
if (arguments.length < 1) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'MouseEvent': 1 argument required, but only 0 present.")

View File

@ -1,5 +1,12 @@
// MutationObserver对象
bodavm.memory.globalobj['MutationObserver'] = function MutationObserver(){return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'MutationObserver': 1 argument required, but only 0 present.")}
bodavm.memory.globalobj['MutationObserver'] = function MutationObserver(){
if (!(this instanceof MutationObserver)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'MutationObserver': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
if (arguments.length <1){
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'MutationObserver': 1 argument required, but only 0 present.")}
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['MutationObserver'], "MutationObserver");
bodavm.toolsFunc.defineProperty('MutationObserver', "disconnect", {configurable:true, enumerable:true, writable:true, value:function disconnect (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['MutationObserver'].prototype, "MutationObserver", "disconnect", arguments)}},'prototype');
bodavm.toolsFunc.defineProperty('MutationObserver', "observe", {configurable:true, enumerable:true, writable:true, value:function observe (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['MutationObserver'].prototype, "MutationObserver", "observe", arguments)}},'prototype');

View File

@ -73,3 +73,5 @@ bodavm.memory.globalobj[ 'navigator'].__proto__=bodavm.memory.globalobj['Navigat
// clientInformation对象
bodavm.memory.globalobj[ 'clientInformation'] = {}
bodavm.memory.globalobj[ 'clientInformation'] .__proto__=bodavm.memory.globalobj['Navigator'].prototype;

View File

@ -1,5 +1,12 @@
// Notification对象
bodavm.memory.globalobj['Notification'] = function Notification(){return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'Notification': 1 argument required, but only 0 present.")}
bodavm.memory.globalobj['Notification'] = function Notification(){
if (!(this instanceof Notification)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'Notification': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
if (arguments.length <1){
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'Notification': 1 argument required, but only 0 present.")}
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['Notification'], "Notification");
bodavm.memory.globalobj['Notification'].prototype.__proto__=bodavm.memory.globalobj['EventTarget'].prototype;
bodavm.memory.globalobj['Notification'].__proto__=bodavm.memory.globalobj['EventTarget'];

View File

@ -1,6 +1,13 @@
// OfflineAudioContext对象
bodavm.memory.globalobj['OfflineAudioContext'] = function OfflineAudioContext(){return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'OfflineAudioContext': 1 argument required, but only 0 present.")}
bodavm.memory.globalobj['OfflineAudioContext'] = function OfflineAudioContext(){
if (!(this instanceof OfflineAudioContext)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'OfflineAudioContext': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
if (arguments.length <1){
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'OfflineAudioContext': 1 argument required, but only 0 present.")}
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['OfflineAudioContext'], "OfflineAudioContext");
bodavm.memory.globalobj['OfflineAudioContext'].prototype.__proto__=bodavm.memory.globalobj['BaseAudioContext'].prototype;
bodavm.memory.globalobj['OfflineAudioContext'].__proto__=bodavm.memory.globalobj['BaseAudioContext'];

17
env_xbb_lastest_jsdom/env/Option.js vendored Normal file
View File

@ -0,0 +1,17 @@
// Option对象
bodavm.memory.globalobj['Option'] = function Option(){
if (!(this instanceof Option)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'Option': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['Option'], "Option");
bodavm.memory.globalobj['Option'].prototype.__proto__=bodavm.memory.globalobj['HTMLElement'].prototype;
bodavm.toolsFunc.defineProperty('Option', "disabled", {configurable:true, enumerable:true, get:function disabled (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Option'].prototype, "Option", "disabled_get", arguments)}, set:function disabled (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Option'].prototype, "Option", "disabled_set", arguments)}},'prototype');
bodavm.toolsFunc.defineProperty('Option', "form", {configurable:true, enumerable:true, get:function form (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Option'].prototype, "Option", "form_get", arguments)}, set:undefined},'prototype');
bodavm.toolsFunc.defineProperty('Option', "label", {configurable:true, enumerable:true, get:function label (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Option'].prototype, "Option", "label_get", arguments)}, set:function label (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Option'].prototype, "Option", "label_set", arguments)}},'prototype');
bodavm.toolsFunc.defineProperty('Option', "defaultSelected", {configurable:true, enumerable:true, get:function defaultSelected (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Option'].prototype, "Option", "defaultSelected_get", arguments)}, set:function defaultSelected (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Option'].prototype, "Option", "defaultSelected_set", arguments)}},'prototype');
bodavm.toolsFunc.defineProperty('Option', "selected", {configurable:true, enumerable:true, get:function selected (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Option'].prototype, "Option", "selected_get", arguments)}, set:function selected (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Option'].prototype, "Option", "selected_set", arguments)}},'prototype');
bodavm.toolsFunc.defineProperty('Option', "value", {configurable:true, enumerable:true, get:function value (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Option'].prototype, "Option", "value_get", arguments)}, set:function value (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Option'].prototype, "Option", "value_set", arguments)}},'prototype');
bodavm.toolsFunc.defineProperty('Option', "text", {configurable:true, enumerable:true, get:function text (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Option'].prototype, "Option", "text_get", arguments)}, set:function text (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Option'].prototype, "Option", "text_set", arguments)}},'prototype');
bodavm.toolsFunc.defineProperty('Option', "index", {configurable:true, enumerable:true, get:function index (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Option'].prototype, "Option", "index_get", arguments)}, set:undefined},'prototype');

View File

@ -1,5 +1,9 @@
// Path2D对象
bodavm.memory.globalobj['Path2D'] = function Path2D(){}
bodavm.memory.globalobj['Path2D'] = function Path2D(){
if (!(this instanceof Path2D)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'Path2D': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['Path2D'], "Path2D");
bodavm.toolsFunc.defineProperty('Path2D', "addPath", {configurable:true, enumerable:true, writable:true, value:function addPath (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Path2D'].prototype, "Path2D", "addPath", arguments)}},'prototype');
bodavm.toolsFunc.defineProperty('Path2D', "roundRect", {configurable:true, enumerable:true, writable:true, value:function roundRect (){return bodavm.toolsFunc.dispatch(this, bodavm.memory.globalobj['Path2D'].prototype, "Path2D", "roundRect", arguments)}},'prototype');

View File

@ -24,3 +24,4 @@ bodavm.toolsFunc.defineProperty('Performance', "eventCounts", {configurable:true
// performance对象
bodavm.memory.globalobj[ 'performance'] = {}
bodavm.memory.globalobj[ 'performance'].__proto__=bodavm.memory.globalobj['Performance'].prototype;

View File

@ -1,5 +1,8 @@
// PointerEvent对象
bodavm.memory.globalobj['PointerEvent'] = function PointerEvent(){
if (!(this instanceof PointerEvent)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'PointerEvent': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
if (arguments.length <1){
return bodavm.toolsFunc.throwError("TypeError","Failed to construct 'PointerEvent': 1 argument required, but only 0 present.")
}

View File

@ -1,5 +1,12 @@
// PresentationConnectionCloseEvent对象
bodavm.memory.globalobj['PresentationConnectionCloseEvent'] = function PresentationConnectionCloseEvent(){return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'PresentationConnectionCloseEvent': 2 arguments required, but only 0 present.")}
bodavm.memory.globalobj['PresentationConnectionCloseEvent'] = function PresentationConnectionCloseEvent(){
if (!(this instanceof PresentationConnectionCloseEvent)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'PresentationConnectionCloseEvent': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
if (arguments.length <2){
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'PresentationConnectionCloseEvent': 2 arguments required, but only 0 present.")}
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['PresentationConnectionCloseEvent'], "PresentationConnectionCloseEvent");
bodavm.memory.globalobj['PresentationConnectionCloseEvent'].prototype.__proto__=bodavm.memory.globalobj['Event'].prototype;
bodavm.memory.globalobj['PresentationConnectionCloseEvent'].__proto__=bodavm.memory.globalobj['Event'];

View File

@ -1,5 +1,10 @@
// RTCPeerConnection对象
bodavm.memory.globalobj['RTCPeerConnection'] = function RTCPeerConnection(){}
bodavm.memory.globalobj['RTCPeerConnection'] = function RTCPeerConnection(){
if (!(this instanceof RTCPeerConnection)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'RTCPeerConnection': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['RTCPeerConnection'], "RTCPeerConnection");
bodavm.memory.globalobj['RTCPeerConnection'].prototype.__proto__=bodavm.memory.globalobj['EventTarget'].prototype;
bodavm.memory.globalobj['RTCPeerConnection'].__proto__=bodavm.memory.globalobj['EventTarget'];

View File

@ -1,6 +1,8 @@
// Request对象
bodavm.memory.globalobj['Request'] = function Request(){
if (!(this instanceof Request)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'Request': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
if (arguments.length <1){
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'Request': 1 argument required, but only 0 present.")}

View File

@ -20,4 +20,3 @@ bodavm.memory.globalobj[ 'screen'].__proto__=bodavm.memory.globalobj['Screen'].p

View File

@ -14,5 +14,4 @@ bodavm.toolsFunc.defineProperty('SpeechSynthesis', "onvoiceschanged", { configur
// speechSynthesis对象
bodavm.memory.globalobj[ 'speechSynthesis'] = {}
bodavm.memory.globalobj[ 'speechSynthesis'].__proto__=bodavm.memory.globalobj['SpeechSynthesis'] .prototype;
delete SpeechSynthesis

View File

@ -1,5 +1,9 @@
// SpeechSynthesisUtterance对象
bodavm.memory.globalobj['SpeechSynthesisUtterance'] = function SpeechSynthesisUtterance(){}
bodavm.memory.globalobj['SpeechSynthesisUtterance'] = function SpeechSynthesisUtterance(){
if (!(this instanceof SpeechSynthesisUtterance)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'SpeechSynthesisUtterance': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['SpeechSynthesisUtterance'], "SpeechSynthesisUtterance");
bodavm.memory.globalobj['SpeechSynthesisUtterance'].prototype.__proto__=bodavm.memory.globalobj['EventTarget'].prototype;
bodavm.memory.globalobj['SpeechSynthesisUtterance'].__proto__=bodavm.memory.globalobj['EventTarget'];

View File

@ -14,4 +14,3 @@ bodavm.memory.globalobj[ 'localStorage'].__proto__=bodavm.memory.globalobj['Stor
bodavm.memory.globalobj[ 'sessionStorage']= {}
bodavm.memory.globalobj[ 'sessionStorage'].__proto__=bodavm.memory.globalobj['Storage'] .prototype;
// debugger;

View File

@ -1,5 +1,9 @@
// Text对象
bodavm.memory.globalobj['Text'] = function Text(){}
bodavm.memory.globalobj['Text'] = function Text(){
if (!(this instanceof Text)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'Text': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
}
bodavm.toolsFunc.safeProto(bodavm.memory.globalobj['Text'], "Text");
bodavm.memory.globalobj['Text'].prototype.__proto__=bodavm.memory.globalobj['CharacterData'].prototype;
bodavm.memory.globalobj['Text'].__proto__=bodavm.memory.globalobj['CharacterData'];

View File

@ -16,4 +16,3 @@ bodavm.toolsFunc.defineProperty('TrustedTypePolicyFactory', "isScriptURL", {conf
bodavm.memory.globalobj[ 'trustedTypes'] = {}
bodavm.memory.globalobj[ 'trustedTypes'].__proto__ = bodavm.memory.globalobj['TrustedTypePolicyFactory'] .prototype

View File

@ -1,5 +1,8 @@
//UIEvent对象
bodavm.memory.globalobj['UIEvent'] = function UIEvent() {
if (!(this instanceof UIEvent)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'UIEvent': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
if (arguments.length < 1) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'UIEvent': 1 argument required, but only 0 present.")
}

View File

@ -19,4 +19,3 @@ bodavm.memory.globalobj[ 'visualViewport'].__proto__ = bodavm.memory.globalobj['

View File

@ -1,5 +1,8 @@
// WebSocket对象
bodavm.memory.globalobj['WebSocket'] = function WebSocket(){
if (!(this instanceof WebSocket)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'WebSocket': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
if(arguments.length<1){
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'WebSocket': 1 argument required, but only 0 present.")}

View File

@ -8,3 +8,4 @@ bodavm.toolsFunc.defineProperty('Window', "PERSISTENT", {configurable:false, enu
bodavm.toolsFunc.defineProperty('Window', "TEMPORARY", {configurable:false, enumerable:true, writable:false, value:0},'prototype');
bodavm.toolsFunc.defineProperty('Window', "PERSISTENT", {configurable:false, enumerable:true, writable:false, value:1},'prototype');
// debugger

View File

@ -1,5 +1,8 @@
// XMLHttpRequest对象
bodavm.memory.globalobj['XMLHttpRequest'] = function XMLHttpRequest(){
if (!(this instanceof XMLHttpRequest)) {
return bodavm.toolsFunc.throwError("TypeError", "Failed to construct 'XMLHttpRequest': Please use the 'new' operator, this DOM object constructor cannot be called as a function")
};
if (arguments.length >1){ bodavm.toolsFunc.throwError('TypeError','XMLHttpRequest 被创建参数需注意')}
this._boarg= new bodaobj.window.XMLHttpRequest(arguments[0])
}

View File

@ -1,16 +0,0 @@
{
"targets":[
{
"target_name":"boda",
"sources":['./c++_src/main.cc'],
"include_dirs":['<!@(node -p "require(\'node-addon-api\').include")'],
"dependencies":['<!(node -p "require(\'node-addon-api\').gyp")'],
"cflags_cc":[
"-std-c++17"
],
"cflags!":["-fno-exceptions"],
"cflags_cc!":['-fno-exceptions'],
"defines":['NAPI_DISABLE_CPP_EXCEPTIONS']
}
]
}

View File

@ -1,37 +0,0 @@
/*
1.最新版npm
windows 管理员运行 npm install --global windows-build-tools,
如果卡在Successfully install Python2.7,就在c:\用户名\AppDate\Local\TEMP下新建
一个文件,名称dd_client_.log 内容 Closing installer. Return code: 3010.
3.npm install --global node-gyp
4.当前目录下放入bingding.gyp
5.初始化项目
1.npm init
2.npm i node-addon-api
3.安装vscode c++拓展
4.执行node-gyp configure 查看Dnode_root_dir,确认头文件 '-Dnode_root_dir=C:\\Users\\徐晓波\\AppData\\Local\\node-gyp\\Cache\\14.18.2',
5.c_cpp_properties.json(vscode ctrl+shift+p ) includePath 中加入 C:\Users\徐晓波\AppData\Local\node-gyp\Cache\14.18.2\include\node
6.编译
1.根目录放入bingding.gyp
2.cmd执行node-gyp rebuild 编译
3.报错
File "C:\Users\徐晓波\AppData\Roaming\npm\node_modules\node-gyp\gyp\pylib\gyp\input.py", line 983, in ExpandVariables
replacement = result.stdout.decode("utf-8").rstrip()
AttributeError: 'str' object has no attribute 'decode' while trying to load binding.gyp
解决办法,进入C:\Users\徐晓波\AppData\Roaming\npm\node_modules\node-gyp\gyp\pylib\gyp\input.py", line 983
修改该行代码为replacement = result.stdout.rstrip()
7.安装npm install bindings
*/

View File

@ -1,123 +0,0 @@
# -*- coding = utf-8 -*-
# @Time: 2023-02-03 22:59
# @Author: xiaobo 徐晓波
# @Site:
# @File: test.py
# @Software: PyCharm
bbb=[
'EventTarget',
'WindowProperties',
'Window',
'Node',
'Element',
'HTMLElement',
'HTMLCollection',
'NetworkInformation',
'CustomElementRegistry',
'Event',
'UIEvent',
'MouseEvent',
'Document',
'HTMLDocument',
'Location',
'Storage',
'CharacterData',
'Text',
'Database',
'CloseEvent',
'Notification',
'IDBDatabase',
'IDBRequest',
'IDBOpenDBRequest',
'IDBFactory',
'History',
'Screen',
'CSSStyleDeclaration',
'CanvasRenderingContext2D',
'WebGLRenderingContext',
'MediaQueryList',
'CSSRuleList',
'Attr',
'Navigation',
'MediaStream',
'TrustedTypePolicyFactory',
'Scheduler',
'CookieStore',
'CacheStorage',
'OffscreenCanvasRenderingContext2D',
'VisualViewport',
'BeforeInstallPromptEvent',
'BarProp',
'BaseAudioContext',
'BluetoothUUID',
'StyleMedia',
'Audio',
'Crypto',
'CDATASection',
'Comment',
'DocumentFragment',
'DocumentType',
'DOMParser',
'External',
'WebSocket',
'SourceBuffer',
'DOMStringList',
'Headers',
'IDBObjectStore',
'IDBTransaction',
'IDBVersionChangeEvent',
'TextTrackList',
'SpeechSynthesisUtterance',
'MediaEncryptedEvent',
'MutationObserver',
'NamedNodeMap',
'NodeList',
'OfflineAudioContext',
'Path2D',
'Performance',
'ScreenOrientation',
'PerformanceEntry',
'PerformancePaintTiming',
'Permissions',
'PermissionStatus',
'Request',
'SVGElement',
'SVGGraphicsElement',
'SVGPatternElement',
'SVGGeometryElement',
'SVGPathElement',
'SVGSVGElement',
'SVGSymbolElement',
'SVGUseElement',
'WebGLShader',
'WebGLShaderPrecisionFormat',
'RTCPeerConnection',
'WebGLBuffer',
'WebGLProgram',
'CSS',
'Navigator',
'BatteryManager',
'Plugin',
'PluginArray',
'MimeType',
'MimeTypeArray',
'XMLHttpRequestEventTarget',
'XMLHttpRequest',
'globalThis'
]
import os
lists=os.listdir(r'D:\My_Dir\环境框架_xbb_lastest\env')
for i in lists:
name=i.split('.')[0]
if name not in bbb:
print(name)

View File

@ -1,81 +0,0 @@
/**
*
* 安装: nodejs
* 然后: npm install vm2 npm install canvas npm install jsdom
* 提示: 建议每一个编写完事的js 建议用fd的js调试工具压缩一下减少占用行数
*
* 使用vm2之前先修改vm2本地文件
*
* 1、修改vm.js里的
* // Create a new context for this vm.
* //原本下面这句话 const _context = createContext(undefined, {
* //被修改成了这句话 const _context = createContext(options, {
* //外界在new VM的时候 把全局变量通过对象形式传递过来全局的context就会继承这个全局变量
*
*
* 2、修改contextify.js里的 搜索Contextify.setGlobal =
* (1)、try {
global[prop] = value;//Contextify.value(value); //这里是为了在调试代码里不显示proxy 已被代理
* (2)、去掉vm2特征global
* //下面这段屏蔽了
* Object.defineProperties(global, {
* global: {value: global},
* GLOBAL: {value: global},
* root: {value: global},
* isVM: {value: true}
* });
*
*
* 3、修改main.js里的
* //如果想让vm2报错不是内部错误修改890行
* throw e;//this._internal.Decontextify.value(e); //原本是这句话throw this._internal.Decontextify.value(e); 改成了 throw e
*
* 关于vm2报错本地文件但是找不到那个报错的调试文件解决方法
* const {VM,VMScript} = require("vm2");//这个是修改过的
* const CodeGenerate = require("./node_tools/CodeGenerate.js");
* //内存的概念,并非真正的内存,只是变量存储。
* let Vm2Cfg = {memory:{prototypes:{},examples:{}},DefPrototype(prototypeName,constructor,basePrototype){}};
* let savepath = `${__dirname}/vm_testScript/VM2_debug.js`; //提前把文件路径保存到变量里。
* let code = CodeGenerate(path_,savepath); //把加载完事的文件code直接写到本地
* let vm = new VM();
* let catvm = Object.assign(Vm2Cfg,{vm:this});//内存配置导入
* vm.setGlobal("catvm",catvm);//导入到全局里,这里的名字随便改,整体形成代码形式的话。就不要随意修改了。
* vm.run(new VMScript(code,savepath)); //运行前 savepath 要保存到本地,那么调试报错时才能找到位置。
*
*
* VScode 环境联调配置nodejs执行配置文件内容 launch.json
* //运行js时添加nodejs配置文件 launch.json ,测试代码路径如下:
* //C:\Users\AdministratorLr\Desktop\NewCode3_2022_10_15\.vscode\launch.json
* //配置文件内容入下:
*
*{
* "version": "0.2.0",
* "configurations": [
* {
* "name": "v1 本地调试",
* "type": "node",
* "request": "launch",
* "program": "${workspaceFolder}/index.js", //它只是跟在可执行文件后面的 一个参数了要调试的js代码不管你想执行哪个配置文件这里配置即可
* "runtimeExecutable": "D:\\nodejs\\node.exe" // 这里是 v16 版本的node路径不管你安装几个版本的node都可以指定全局配置。这里配置完就可以随意切换了
* },
* {
* "name": "v2 浏览器无环境联调",
* "type": "node",
* "request": "launch",
* "program": "--inspect-brk", //它只是跟在可执行文件后面的 一个参数了
* "args": ["${workspaceFolder}/index.js"],//它只是跟在可执行文件后面的 一个参数了
* "runtimeExecutable": "D:\\nodejs\\node.exe" // 这里是 v16 版本的node路径不管你安装几个版本的node都可以指定全局配置。这里配置完就可以随意切换了
* },
* {
* "name": "v3 cmd参数详解", //演示所有参数的含义 , 控制台执行的结果是: D:\nodejs\node.exe args1 args2 args3 args4 args5 所以根据想要的功能自行设定和删减
* "type": "node",
* "request": "launch",
* "program": "args3", //它只是跟在可执行文件后面的 一个参数了
* "args": ["args4", "args5"],//它只是跟在可执行文件后面的 一个参数了
* "runtimeArgs": ["args1", "args2"],//它只是跟在可执行文件后面的 一个参数了
* "runtimeExecutable": "D:\\nodejs\\node.exe" // 这里是 v16 版本的node路径不管你安装几个版本的node都可以指定全局配置。这里配置完就可以随意切换了
* }
* ]
*}
*
**/

View File

@ -1,146 +0,0 @@
//全局对象配置
var myloglist=[]
var myloglistindex=0
bodavm = {
"toolsFunc": {}, //功能函数相关,插件
"envFunc": {},//环境相关
"config": {}, //配置相关
"memory":{},
"toolsPlugin": {} //Plugin相关
}
bodavm.config.isdebug=false; //是否开启debugger
bodavm.config.proxy = false; //是否代理
bodavm.config.printLog=true; //是否打开日志
bodavm.memory.isproxy= {}
bodavm.memory.filterProxyProp=['toJSON','undefined','splice','String','fromCharCode','apply','prototype','__proto__','toString','Object','Array',"eval",'Symbol(Symbol.toStringTag)','Symbol.toStringTag','bodavm.memory.symbolData',"Symbol(Symbol.species)",'Symbol(Symbol.hasInstance)'] //需要过滤 的属性
bodavm.memory.symbolData=Symbol("data") //用来保存当前对象上的原型属性
bodavm.memory.globalInit={}
//存储tag标签
bodavm.memory.tag=[]
// bodavm.memory.localStorage={};
bodavm.memory.cookie1='' //用来存储555
bodavm.memory.cookie2={} //用来存储"a=10"
bodavm.memory.cookie=''; //拼接cookie1 和cookie2
bodavm.memory.asyncEvent={};
bodavm.memory.globalInit.timeoutID=0;
// "Verdana;Helvetica Neue LT Pro 35 Thin;tahoma;verdana;times new roman;Courier New;Microsoft Himalaya;helvetica;LG-FZKaTong-M19-V2.2;Georgia;georgia;courier new;Arial;arial;cursive;times;fantasy;courier;serif;monospace;Times New Roman"
bodavm.memory.globalInit.fontList = ["SimHei", "SimSun", "NSimSun", "FangSong", "KaiTi",'Verdana','tahoma','helvetica','Georgia','georgia','Arial','arial','cursive','fantasy','courier','serif','monospace'];
bodavm.memory.font={
"font-family":'',
"fontFamily":''
}
bodavm.memory.location={
origin:"http://101.43.230.100",
hash:"",
pathname:"/",
search:"",
href:"http://101.43.230.100/",
port:"",
protocol:"http:",
host:"101.43.230.100",
ancestorOrigins:"{}",
hostname:"101.43.230.100"
};
bodavm.memory.document={
URL:"http://101.43.230.100/",
referrer:"",
documentURI:"http://101.43.230.100/",
compatMode:"CSS1Compat",
dir:"",
title:"QQ会员等级 - QQ等级 - 好莱坞等级 查询",
designMode:"off",
readyState:"complete",
contentType:"text/html",
inputEncoding:"UTF-8",
domain:"101.43.230.100",
characterSet:"UTF-8",
charset:"UTF-8",
hidden:"false",
onmousemove:"null",
onselectionchange:"null",
};
bodavm.memory.htmldivelement={
align:"undefined",
};
bodavm.memory.history={
scrollRestoration:"auto"
};
bodavm.memory.screen={
width:1440,
height:960,
availWidth:1440,
availHeight:920,
pixelDepth:24,
colorDepth:24,
availLeft:0,
availTop:0,
isExtended:undefined,
orientation:{},
onchange:undefined,
};
bodavm.memory.navigator={
language:"zh-CN",
userAgent:"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36",
appVersion:"5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36",
vendor:"Google Inc.",
appName:"Netscape",
appCodeName:"Mozilla",
cookieEnabled:true,
languages:["zh-CN","zh"],
productSub:"20030107",
userAgentData:undefined,
xr:undefined,
platform:'Win32',
webkitPersistentStorage:{},
connection:{},
javaEnabled:false
};
bodavm.memory.window={
indexedDB:{},
name:"",
};
bodavm.memory.canvas={};
bodavm.memory.canvas2D={
direction: "ltr",
fillStyle: "#000000",
filter: "none",
font: "10px sans-serif",
fontKerning: "auto",
fontStretch: "normal",
fontVariantCaps: "normal",
globalAlpha: 1,
globalCompositeOperation: "source-over",
imageSmoothingEnabled: true,
imageSmoothingQuality: "low",
letterSpacing: "0px",
lineCap: "butt",
lineDashOffset: 0,
lineJoin: "miter",
lineWidth: 1,
miterLimit: 10,
shadowBlur: 0,
shadowColor: "rgba(0, 0, 0, 0)",
shadowOffsetX: 0,
shadowOffsetY: 0,
strokeStyle: "#000000",
textAlign: "start",
textBaseline: "alphabetic",
textRendering: "auto",
wordSpacing: "0px",
}
// bodavm.memory.localStorage={}

File diff suppressed because one or more lines are too long

View File

@ -1,230 +0,0 @@
// 代理器失效 1.没有使用代理对象 2.代理器脱钩 目标代码通过 this 绕过代理器
// 解决办法
window = this;
window = new Proxy(window, this)
// globalThis=new Proxy(globalThis,'globalThis')
// window.mythis=function(){
/// 网站扣下的代码
// }
// mythis()
//2自执行
for (let name in global) {
switch (name) {
case "window":
continue;
case "global":
continue;
}
window[name] = global[name];
delete global[name];
}
window = myProxy(window, "window");
Object.setPrototypeOf(global, window);
!function () { }()
//全局hook
bobomyHookfilter={
'location':true,
'Function':true,
'Object':true,
'window':true,
'Window':true,
'document':true,
'bobomyHook':true,
"hookObjs":true,
'objlist':true,
'JSON':true,
'bobomyHookfilter':true,
'Math':true,
'Intl':true,
'Reflect':true,
'console':true,
'CSS':true,
'Atomics':true,
'top':true,
}
hookObjs = {
}
objlist=[
{
'name':"window",
'obj':window
},
{
'name':"document",
'obj':document
},
{
'name':"screen",
'obj':screen
},
{
'name':"history",
'obj':history
},
{
'name':"localStorage",
'obj':localStorage
},
{
'name':'navigation',
'obj':navigation
},
{
'name':'webkitStorageInfo',
'obj':webkitStorageInfo
},
{
'name':'speechSynthesis',
'obj':speechSynthesis
},
{
'name':'sessionStorage',
'obj':sessionStorage
},
{
'name':'customElements',
'obj':customElements
},
{
'name':'clientInformation',
'obj':clientInformation
},
{
'name':'menubar',
'obj':menubar
},
{
'name':'toolbar',
'obj':toolbar
},
{
'name':'visualViewport',
'obj':visualViewport
},
{
'name':'styleMedia',
'obj':styleMedia
},
{
'name':'scheduler',
'obj':scheduler
},
{
'name':'indexedDB',
'obj':indexedDB
},
{
'name':'trustedTypes',
'obj':trustedTypes
},
{
'name':'cookieStore',
'obj':cookieStore
},
{
'name':'external',
'obj':external
}
]
for (let i = 0; i < objlist.length; i++) {
let name = objlist[i]['name'];
let obj= objlist[i]['obj']
hookObjs[name] = {}
bobomyHook(obj,name)
}
function bobomyHook(obj,name) {
let boboobjname = Object.getOwnPropertyNames(obj)
for (let i =0; i<boboobjname.length;i++) {
//i name
if (bobomyHookfilter[boboobjname[i]]){continue}
let bobodesc = Object.getOwnPropertyDescriptor(obj, boboobjname[i])
// console.log(bobodesc)
let boboconfigurable_ = bobodesc['configurable']
let boboenumerable_ = bobodesc['enumerable']
let bobovalue_ = bobodesc['value']
let bobowritable_ = bobodesc['writable']
let boboget_ = bobodesc['get']
let boboset_ = bobodesc['set']
// console.log(bobodesc)
// get set 与value writable不能共存 configurable enumerable这两个是肯定有的
try{
if (boboget_ || boboset_) {
hookObjs[name][boboobjname[i] + '_get'] = boboget_
hookObjs[name][boboobjname[i] + '_set'] = boboset_
const myvalue=boboobjname[i]
Object.defineProperty(obj,myvalue,{
configurable:boboconfigurable_,
enumerable:boboenumerable_,
get:boboget_?function (){
let args=arguments
let result=hookObjs[name][myvalue + '_get'].apply(this,arguments)
console.log(`${name} get-> ${myvalue} arg->${JSON.stringify(args)} -> result -> ${result}`)
return result
}:undefined,
set:boboset_?function(){
let args=arguments
let result=hookObjs[name][myvalue + '_set'].apply(this,arguments)
console.log(`${name} set-> ${myvalue} -> arg->${JSON.stringify(args)} value -> ${result}`)
return result
}:undefined
})
} else {
hookObjs[name][boboobjname[i] + '_value']=bobovalue_
if (typeof bobovalue_ =='object'){
const myvalue=boboobjname[i]
console.log(`${name} value-> ${myvalue} result ->${bobovalue_}`);
Object.defineProperty(obj,boboobjname[i],{
configurable:boboconfigurable_,
enumerable:boboenumerable_,
writable:bobowritable_,
value:bobovalue_
})
}else if (typeof bobovalue_ =='function'){
const myvalue=boboobjname[i]
Object.defineProperty(obj,boboobjname[i],{
configurable:boboconfigurable_,
enumerable:boboenumerable_,
writable:bobowritable_,
value:function (){
let args=arguments
let result=hookObjs[name][myvalue + '_value'].apply(this,arguments)
console.log(`${name} value apply -> ${myvalue} arg->${JSON.stringify(args)} result ->${result}`);
return result
}
})
}
}
}catch{}
}
if (obj.__proto__ !=null){
bobomyHook(obj.__proto__,name)
}
}
// window.atob('123')

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,46 +0,0 @@
(function n(i, r, t, e, l, a, f, u) {
var c, o, h, s, p, g, m, y, d, v, w, b, C, F, j, S, k, q, x, z, A, B, D, E, G, H, I, J, K, L, M, N, O, P, Q, R, T,
U, V;
if (this.constructor != n) {
if (e || ((e = [this]).n = e[0], e.t = [], (o = {}).s = !1, o.v = !1, e.t.push(o), n.r = n.g = n), h = e[e.length - 1], -3 == t || -2 == t) {
if (-2 == t) {
for (a = 0, f = 0; i[r] > 127;) f += i[r++] - 128 << 7 * a++;
f += i[r++] << 7 * a
} else f = (r = (s = n(i, r, -2)).i) + (a = s.n) - 1, r += a;
return {n: f, i: r}
}
if (l === n) {
for (p = new n.g, g = [].slice.call(u), m = 0; m < a.length; m++) p[a[m]] = g[m];
return p.arguments = u, (y = [].concat(e).concat(p)).n = f, y.t = [], n(i, r, t, y)
}
if (d = r || 0, c = t || i.length, v = i[d++], s = n(i, d, -2), d = s.i, s.n, w = 0, 6 == v || 10 == v ? w = 1 : 30 == v ? w = 2 : 29 == v && (w = 3), 6 == v || 10 == v || 30 == v || 29 == v) {
for (o = e.t && e.t[e.t.length - 1], b = []; d < c;) {
if (C = d++, s = n(i, d, -3), d = s.i, F = s.n, b.push(n(i, C, F, e)), 3 != w && e.a) return b[b.length - 1];
if (2 == w && o && (o.v || o.s)) return b[b.length - 1]
}
if (2 != w) return b
}
if (25 == v) {
if (j = n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e), g = n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e), n.bind) return new (n.bind.apply(j, [null].concat(g)));
for (S = [], m = 0; m < g.length; m++) S[m] = "a[" + m + "]";
return n.constructor("F,a", "return new F(" + S.join(",") + ")")(j, g)
}
if (80 != v) {
if (125 == v) throw n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e);
if (18 == v || 113 == v) {
for (I = i[d++], s = n(i, d, -2), d = s.i, J = s.n, K = [], m = 0; m < J; m++) s = n(i, d, -2), d = s.i, L = s.n, K.push(L);
return M = String.fromCharCode.apply(null, K), 113 == v || e.m ? M : l ? [e[I], M] : e[I][M]
}
return 0 == v ? (e.m = !0, N = n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e), e.m = !1, h[N] = e.u, n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e)) : 67 == v ? (91 == i[d++] && (O = i[d++]), O) : 34 == v ? a != f : 89 == v ? n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e) : 58 == v ? null : 57 == v ? n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e, 0, n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e), n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e)) : 78 == v ? (P = n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e), Q = n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e), e.m = !P, R = n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e), e.m = !1, l ? [Q, R] : Q[R]) : 88 == v ? n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e) ? n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e) : (s = n(i, ++d, -3), d = s.i, s.n, n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e)) : 95 == v ? (T = n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e, !0), U = n(i, d++, (s = n(i, d, -3), d = s.i, s.n), e), T instanceof n.constructor ? n.apply.call(T, e[0].n, U) : (V = T[0][T[1]], T[0] instanceof n.g ? n.apply.call(V, e.n, U) : n.apply.call(V, T[0], U))) : void 0
}
k = d++, s = n(i, d, -3), d = s.i, q = s.n, x = d++, s = n(i, d, -3), d = s.i, z = s.n, A = d++, s = n(i, d, -3), d = s.i, B = s.n;
try {
if (D = n(i, k, q, e), e.a) return D
} catch (W) {
if (e.u = W, E = n(i, x, z, e), e.a) return E
} finally {
if (G = e.a, e.a = !1, H = n(i, A, B, e), e.a) return H;
e.a = G
}
}
})([6, 198, 8, 10, 195, 8, 80, 192, 8, 30, 252, 7, 30, 249, 7, 88, 154, 1, 57, 127, 34, 0, 78, 111, 67, 2, 91, 0, 78, 97, 67, 2, 91, 0, 95, 84, 78, 42, 67, 2, 91, 0, 18, 8, 0, 6, 79, 98, 106, 101, 99, 116, 18, 26, 0, 24, 103, 101, 116, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 68, 101, 115, 99, 114, 105, 112, 116, 111, 114, 29, 38, 78, 28, 67, 2, 91, 0, 18, 10, 0, 8, 100, 111, 99, 117, 109, 101, 110, 116, 18, 10, 0, 8, 108, 111, 99, 97, 116, 105, 111, 110, 113, 6, 0, 4, 104, 114, 101, 102, 18, 5, 0, 3, 103, 101, 116, 18, 6, 0, 4, 110, 97, 109, 101, 113, 10, 0, 8, 103, 101, 116, 32, 104, 114, 101, 102, 30, 21, 30, 19, 125, 17, 25, 15, 18, 7, 0, 5, 69, 114, 114, 111, 114, 29, 4, 113, 2, 0, 0, 58, 0, 88, 154, 1, 57, 127, 34, 0, 78, 111, 67, 2, 91, 0, 78, 97, 67, 2, 91, 0, 95, 84, 78, 42, 67, 2, 91, 0, 18, 8, 0, 6, 79, 98, 106, 101, 99, 116, 18, 26, 0, 24, 103, 101, 116, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 68, 101, 115, 99, 114, 105, 112, 116, 111, 114, 29, 38, 78, 28, 67, 2, 91, 0, 18, 10, 0, 8, 100, 111, 99, 117, 109, 101, 110, 116, 18, 10, 0, 8, 108, 111, 99, 97, 116, 105, 111, 110, 113, 6, 0, 4, 104, 97, 115, 104, 18, 5, 0, 3, 103, 101, 116, 18, 6, 0, 4, 110, 97, 109, 101, 113, 10, 0, 8, 103, 101, 116, 32, 104, 97, 115, 104, 30, 21, 30, 19, 125, 17, 25, 15, 18, 7, 0, 5, 69, 114, 114, 111, 114, 29, 4, 113, 2, 0, 0, 58, 0, 88, 154, 1, 57, 127, 34, 0, 78, 111, 67, 2, 91, 0, 78, 97, 67, 2, 91, 0, 95, 84, 78, 42, 67, 2, 91, 0, 18, 8, 0, 6, 79, 98, 106, 101, 99, 116, 18, 26, 0, 24, 103, 101, 116, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 68, 101, 115, 99, 114, 105, 112, 116, 111, 114, 29, 38, 78, 28, 67, 2, 91, 0, 18, 10, 0, 8, 100, 111, 99, 117, 109, 101, 110, 116, 18, 10, 0, 8, 108, 111, 99, 97, 116, 105, 111, 110, 113, 6, 0, 4, 104, 111, 115, 116, 18, 5, 0, 3, 103, 101, 116, 18, 6, 0, 4, 110, 97, 109, 101, 113, 10, 0, 8, 103, 101, 116, 32, 104, 111, 115, 116, 30, 21, 30, 19, 125, 17, 25, 15, 18, 7, 0, 5, 69, 114, 114, 111, 114, 29, 4, 113, 2, 0, 0, 58, 0, 88, 163, 1, 57, 135, 1, 34, 0, 78, 115, 67, 2, 91, 0, 78, 101, 67, 2, 91, 0, 95, 88, 78, 42, 67, 2, 91, 0, 18, 8, 0, 6, 79, 98, 106, 101, 99, 116, 18, 26, 0, 24, 103, 101, 116, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 68, 101, 115, 99, 114, 105, 112, 116, 111, 114, 29, 42, 78, 28, 67, 2, 91, 0, 18, 10, 0, 8, 100, 111, 99, 117, 109, 101, 110, 116, 18, 10, 0, 8, 108, 111, 99, 97, 116, 105, 111, 110, 113, 10, 0, 8, 112, 114, 111, 116, 111, 99, 111, 108, 18, 5, 0, 3, 103, 101, 116, 18, 6, 0, 4, 110, 97, 109, 101, 113, 14, 0, 12, 103, 101, 116, 32, 112, 114, 111, 116, 111, 99, 111, 108, 30, 21, 30, 19, 125, 17, 25, 15, 18, 7, 0, 5, 69, 114, 114, 111, 114, 29, 4, 113, 2, 0, 0, 58, 0, 88, 159, 1, 57, 131, 1, 34, 0, 78, 113, 67, 2, 91, 0, 78, 99, 67, 2, 91, 0, 95, 86, 78, 42, 67, 2, 91, 0, 18, 8, 0, 6, 79, 98, 106, 101, 99, 116, 18, 26, 0, 24, 103, 101, 116, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 68, 101, 115, 99, 114, 105, 112, 116, 111, 114, 29, 40, 78, 28, 67, 2, 91, 0, 18, 10, 0, 8, 100, 111, 99, 117, 109, 101, 110, 116, 18, 10, 0, 8, 108, 111, 99, 97, 116, 105, 111, 110, 113, 8, 0, 6, 111, 114, 105, 103, 105, 110, 18, 5, 0, 3, 103, 101, 116, 18, 6, 0, 4, 110, 97, 109, 101, 113, 12, 0, 10, 103, 101, 116, 32, 111, 114, 105, 103, 105, 110, 30, 21, 30, 19, 125, 17, 25, 15, 18, 7, 0, 5, 69, 114, 114, 111, 114, 29, 4, 113, 2, 0, 0, 58, 0, 88, 163, 1, 57, 135, 1, 34, 0, 78, 115, 67, 2, 91, 0, 78, 101, 67, 2, 91, 0, 95, 88, 78, 42, 67, 2, 91, 0, 18, 8, 0, 6, 79, 98, 106, 101, 99, 116, 18, 26, 0, 24, 103, 101, 116, 79, 119, 110, 80, 114, 111, 112, 101, 114, 116, 121, 68, 101, 115, 99, 114, 105, 112, 116, 111, 114, 29, 42, 78, 28, 67, 2, 91, 0, 18, 10, 0, 8, 100, 111, 99, 117, 109, 101, 110, 116, 18, 10, 0, 8, 108, 111, 99, 97, 116, 105, 111, 110, 113, 10, 0, 8, 104, 111, 115, 116, 110, 97, 109, 101, 18, 5, 0, 3, 103, 101, 116, 18, 6, 0, 4, 110, 97, 109, 101, 113, 14, 0, 12, 103, 101, 116, 32, 104, 111, 115, 116, 110, 97, 109, 101, 30, 21, 30, 19, 125, 17, 25, 15, 18, 7, 0, 5, 69, 114, 114, 111, 114, 29, 4, 113, 2, 0, 0, 58, 0, 89, 50, 95, 48, 78, 22, 67, 2, 91, 0, 18, 9, 0, 7, 99, 111, 110, 115, 111, 108, 101, 18, 5, 0, 3, 108, 111, 103, 29, 22, 113, 20, 0, 6, 175, 231, 1, 131, 177, 1, 161, 208, 1, 140, 181, 2, 144, 196, 1, 159, 165, 1, 0, 61, 18, 3, 0, 1, 101, 30, 54, 30, 52, 89, 50, 95, 48, 78, 22, 67, 2, 91, 0, 18, 9, 0, 7, 99, 111, 110, 115, 111, 108, 101, 18, 5, 0, 3, 108, 111, 103, 29, 22, 113, 20, 0, 6, 175, 231, 1, 131, 177, 1, 161, 208, 1, 140, 181, 2, 177, 178, 1, 165, 154, 2, 58, 0]);

File diff suppressed because one or more lines are too long

View File

@ -1,8 +0,0 @@
console.log(top==window)
console.log(top==parent)
console.log(top.self==window)
console.log(top.self.window==window.top.self)
console.log(self.window.top==top.window.self);
console.log(self.window.top.self.top==top.window.self);
console.log(self.window.top.self.top==top.window.self.window);

File diff suppressed because one or more lines are too long

View File

@ -1,111 +0,0 @@
//WindowProperties 删除构造方法
delete WindowProperties.prototype.constructor;
//代理失效
var window_=this; 底下用window_
//两个都需要补
Object.getOwnPropertyDescriptors(Window)
Object.getOwnPropertyDescriptors(Window.prototype)
//location检测
//代理检测
// self=window;
// top=window
// window==self ; ///true
// window =new Proxy(window,{});
// window==self;//false
//需要连续赋值,可以过代理检测
// top=self=window=new Proxy(window,{})
//解决重复代理
bodavm.memory.symbolProxy=Symbol("proxy") //独一无二的属性,标记是否代理
if (bodavm.memory.symbolProxy in obj){
return obj
}
//解决重复代理
Object.defineProperty(obj,bodavm.memory.symbolProxy,{
configurable:false,
enumerable:false,
writable:false,
value:true
})
//代理失效 ,代理的对象没有被代理上
console.log(document.createElement===document.createElement)
//实现Document.prototype.activeElement()调用报错
if(Object.getOwnPropertyDescriptor(obj,"constructor")!==undefined){
if (Object.getOwnPropertyDescriptor(self,"constructor") !==undefined){
return bodavm.toolsFunc.throwError("TypeError","Illegal invocation")
}
}
//过滤bodavm.memory.symbolProxy与"eval"
//node环境和vm2环境中的监测点过滤
// 删除浏览器中不存在的对象
delete global;
delete GLOBAL;
delete VMError;
delete Buffer;
delete WindowProperties
delete process;
delete root;
//在原型对象上不能通过原型对象获取,不在自身上可以通过自身获取
a=document.createElement("div")
a.align=123
Object.getOwnPropertyDescriptors(a,'align')
//鼠标轨迹
//检测点
function test(){}
Object.getOwnPropertyDescriptor(window,'test')
//
var r={}
r.__proto__=document
r.location
var b={}
b=Screen.prototype
b.width
var b={}
b.__proto__=Screen.prototype
b.width
//document.all
//window.length iframe
// JSON.stringify(console)
"FSSBBIl1UgzbN7N80T=4B.zKNh3jQsKMZLAyeqQs7QJwaZPeSafzY3KH2cdc0RyVUYgsIPrb_buCwzg59VBqHJbjQAXky9B_J5am_szA1nWrHhagAii3e0x52q2c0st02n4qjdiGKI_Q5W2b2xEaLujGn0notNXB0uevYFRYKwQ0R.naBqJsjWQK8SQD9HVg8kzNCXC0W1OLMLWFS4AGvo2i_BMtcTi.IyV2X5xsDcz9;"

File diff suppressed because one or more lines are too long

View File

@ -1,36 +0,0 @@
<html>
<head>
<title>浏览器事件补齐</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div id="testDiv" style="width: 100px;height: 100px;background-color: red">
</div>
</body>
<script>
window.addEventListener("load", function (event) {
debugger
let span = document.createElement("span");
if (event.isTrusted) {
span.id = "loadTest";
span.innerText = "load事件触发";
document.body.append(span);
};
});
document.getElementById("testDiv").addEventListener("click", function (event) {
debugger
if (event.isTrusted) {
event.target.innerText = "testDiv被点击";
};
});
</script>
</html>

View File

@ -1,4 +1,5 @@
// debugger
let firsttime=+new Date()
const { VM, VMScript } = require("vm2")
const fs = require("fs");
const { JSDOM } = require('jsdom')
@ -48,7 +49,7 @@ const jscode = fs.readFileSync(`${run_path}/run.js`)
//导入异步执行的代码
const asyncCode = tools.getFile("async");
const globalobjInit=tools.getFile("globalobjInit");
// bodavm.memory.tag[0].__proto__=HTMLDocument.prototype
//整合代码
//导入日志代码
@ -58,7 +59,7 @@ const globadlThis=fs.readFileSync(`${tools_path}/globalThis.js`)
// const codeTest=`${configCode}${log_code}${toolsCode}${envCode}${globalInit}${userInit}${changeDom}${proxyObj}${jscode}${asyncCode}`+"\r\n"+"debugger";
const last_deal=fs.readFileSync(`${run_path}/lastDeal.js`)
// const codeTest=`${configCode};;${toolsCode};${log_code}${envCode}${userInit};;${globadlThis}${globalInit}${proxyObj};;;;debugger;try{;${jscode}${asyncCode}}catch(e){console.log(e.message,e.stack);}finally{;${last_deal}};get_cookie`;
const codeTest=`${configCode};;${toolsCode};${log_code}${envCode}${userInit};;${globadlThis}${globalInit}${proxyObj};;;;debugger;;${jscode}${asyncCode};${last_deal};get_cookie`;
const codeTest=`${configCode};;${toolsCode};${log_code}${envCode}${userInit};${globalobjInit};${globadlThis}${globalInit}${proxyObj};;;;debugger;;${jscode}${asyncCode};${last_deal};get_cookie`;
bodaobj={
@ -116,7 +117,8 @@ var getcookieapi=vm.run(script)
//输出结果
// debugger
console.log(getcookieapi())
let lastime=+new Date()
console.log('花费时间:',lastime-firsttime)
//
fs.writeFileSync(`${run_path}/output.js`,codeTest)

View File

@ -0,0 +1,27 @@
0220:
1. 补了些window底下的方法
0218:
1.重构了整个架构,现在除window外所有原型和实例都已经存在了globalobj中,
- 可以让所有方法,都经过dispatch分发器转发
- 可以在检测代理的情况下,知道目标代码调用了window下哪些方法
2.由于刚修改完,很多方法还未进行同步
0216:
1.补了下document.all
2.补了下form表单操作
请使用我提供的node,不然doument.all会报错,然后由于精力有限,暂时主要补全jsdom版本的,因为补起来比较方便
Q:826814133
V:bo_yuuki

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -100,8 +100,9 @@ var mytime_stamp=Date.now()
// if (obj ==document){debugger}
return Object.getOwnPropertyDescriptor_bo.apply(this,arguments)
}
console.log(`Object.getOwnPropertyDescriptor==> `,` obj:${obj}`,`prop:${prop}`,'!!!!检测');
return Object.getOwnPropertyDescriptor_bo.apply(this,arguments)
desc_res=Object.getOwnPropertyDescriptor_bo.apply(this,arguments)
console.log(`Object.getOwnPropertyDescriptor==> `,` obj:${obj}`,`prop:${prop}`,`res ->${desc_res} !!!!检测`);
return desc_res
}
bodavm.toolsFunc.safefunction(Object.getOwnPropertyDescriptor,'getOwnPropertyDescriptor')
@ -109,16 +110,19 @@ var mytime_stamp=Date.now()
Object.getOwnPropertyDescriptors_bo=Object.getOwnPropertyDescriptors
Object.getOwnPropertyDescriptors=function getOwnPropertyDescriptor(){
let arg0=arguments[0]
console.log(`Object.getOwnPropertyDescriptors==> `,`arg0:${arg0}`,`!!!!检测`);
return Object.getOwnPropertyDescriptors_bo.apply(this,arguments)
debugger
descs_res=Object.getOwnPropertyDescriptors_bo.apply(this,arguments)
console.log(`Object.getOwnPropertyDescriptors==> `,`arg0:${arg0}`,`res ->${descs_res} !!!!检测`);
return descs_res
}
bodavm.toolsFunc.safefunction(Object.getOwnPropertyDescriptors,'getOwnPropertyDescriptors')
Object.getOwnPropertyNames_bo=Object.getOwnPropertyNames
Object.getOwnPropertyNames=function getOwnPropertyDescriptor(){
let arg0=arguments[0]
console.log(`Object.getOwnPropertyNames==> `,` arg0:${arg0}`,'!!!检测');
return Object.getOwnPropertyNames_bo.apply(this,arguments)
let name_res=Object.getOwnPropertyNames_bo.apply(this,arguments)
console.log(`Object.getOwnPropertyNames==> `,` arg0:${arg0}`,`name_res->${name_res} !!!检测`);
return name_res
}
bodavm.toolsFunc.safefunction(Object.getOwnPropertyNames,'getOwnPropertyNames')
@ -132,9 +136,9 @@ var mytime_stamp=Date.now()
Object.getOwnPropertySymbols_bo=Object.getOwnPropertySymbols
Object.getOwnPropertySymbols=function getOwnPropertySymbols(arg){
console.log('Object.getOwnPropertySymbols ',`arg:${arg}`,'!!!!检测');
return Object.getOwnPropertySymbols_bo.apply(this,arguments)
let symbols_res=Object.getOwnPropertySymbols_bo.apply(this,arguments)
console.log('Object.getOwnPropertySymbols ',`arg:${arg}`,`symbols_res ->${symbols_res} !!!!检测`);
return symbols_res
}
bodavm.toolsFunc.safefunction(Object.getOwnPropertySymbols,'getOwnPropertySymbols')
//Plugin

View File

@ -11,10 +11,10 @@ delete WindowProperties;
delete globalThis[Symbol.toStringTag];
window = globalThis;
globalThis.__proto__=bodavm.memory.globalobj['Window'].prototype
// document=bodavm.memory.globalobj['document']
bodavm.memory.globalobj['window']=window
// debugger
bodavm.toolsFunc.windowdefineProperty(window, "atob", {
configurable: true, enumerable: true, writable: true,
@ -30,18 +30,95 @@ bodavm.toolsFunc.windowdefineProperty(window, "btoa", {
return bodavm.toolsFunc.base64.base64encode(str);
}
});
// window对象
// debugger
// window对象
// bodavm.memory.globalobj['window'] = {}
// bodavm.memory.globalobj['window'].__proto__=bodavm.memory.globalobj['Window'].prototype;
console.log(`===============================================================================================================`);
console.log(`===============================================================================================================`);
console.log(`===============================================================================================================`);
console.log(`===============================================================================================================`);
console.log(`=====================================环 境 赋 值 初 始 化=====================================`);
console.log(`===============================================================================================================`);
console.log(`===============================================================================================================`);
console.log(`===============================================================================================================`);
console.log(`===============================================================================================================`);
debugger
bodavm.toolsFunc.windowdefineProperty(window, "document", {configurable:false, enumerable:true, get:function document (){return bodavm.toolsFunc.dispatch(this, window, "window", "document_get", arguments)}, set:undefined});
// bodavm.toolsFunc.windowdefineProperty(window, "Option", {configurable:true, enumerable:false, writable:true, value:function Option (){return bodavm.toolsFunc.windowdispatch(this, window, "window", "Option", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Document", {configurable:true, enumerable:false, writable:true,
value:function Document (){return eval(bodavm.toolsFunc.dispatch(this, window, "window", "Document", arguments))}()});
debugger
bodavm.toolsFunc.windowdefineProperty(window, "location", {configurable:false, enumerable:true, get:function location (){return bodavm.toolsFunc.dispatch(this, window, "window", "location_get", arguments)}, set:function location (){return bodavm.toolsFunc.dispatch(this, window, "window", "location_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Location", {configurable:true, enumerable:false, writable:true, value:function Location (){return bodavm.toolsFunc.dispatch(this, window, "window", "Location", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "toolbar", {configurable:true, enumerable:true, get:function toolbar (){return bodavm.toolsFunc.dispatch(this, window, "window", "toolbar_get", arguments)}, set:function toolbar (){return bodavm.toolsFunc.dispatch(this, window, "window", "toolbar_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "menubar", {configurable:true, enumerable:true, get:function menubar (){return bodavm.toolsFunc.dispatch(this, window, "window", "menubar_get", arguments)}, set:function menubar (){return bodavm.toolsFunc.dispatch(this, window, "window", "menubar_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "locationbar", {configurable:true, enumerable:true, get:function locationbar (){return bodavm.toolsFunc.dispatch(this, window, "window", "locationbar_get", arguments)}, set:function locationbar (){return bodavm.toolsFunc.dispatch(this, window, "window", "locationbar_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "BarProp", {configurable:true, enumerable:false, writable:true, value:function BarProp (){return bodavm.toolsFunc.dispatch(this, window, "window", "BarProp", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "customElements", {configurable:true, enumerable:true, get:function customElements (){return bodavm.toolsFunc.dispatch(this, window, "window", "customElements_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "CustomElementRegistry", {configurable:true, enumerable:false, writable:true, value:function CustomElementRegistry (){return bodavm.toolsFunc.dispatch(this, window, "window", "CustomElementRegistry", arguments)}()});
// bodavm.toolsFunc.windowdefineProperty(window, "window", {configurable:false, enumerable:true, get:function window (){return bodavm.toolsFunc.dispatch(this, window, "window", "window_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "Window", {configurable:true, enumerable:false, writable:true, value:function Window (){return bodavm.toolsFunc.dispatch(this, window, "window", "Window", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "screen", {configurable:true, enumerable:true, get:function screen (){return bodavm.toolsFunc.dispatch(this, window, "window", "screen_get", arguments)}, set:function screen (){return bodavm.toolsFunc.dispatch(this, window, "window", "screen_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Screen", {configurable:true, enumerable:false, writable:true, value:function Screen (){return bodavm.toolsFunc.dispatch(this, window, "window", "Screen", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "navigator", {configurable:true, enumerable:true, get:function navigator (){return bodavm.toolsFunc.dispatch(this, window, "window", "navigator_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "Navigator", {configurable:true, enumerable:false, writable:true, value:function Navigator (){return bodavm.toolsFunc.dispatch(this, window, "window", "Navigator", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "performance", {configurable:true, enumerable:true, get:function performance (){return bodavm.toolsFunc.dispatch(this, window, "window", "performance_get", arguments)}, set:function performance (){return bodavm.toolsFunc.dispatch(this, window, "window", "performance_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Performance", {configurable:true, enumerable:false, writable:true, value:function Performance (){return bodavm.toolsFunc.dispatch(this, window, "window", "Performance", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "sessionStorage", {configurable:true, enumerable:true, get:function sessionStorage (){return bodavm.toolsFunc.dispatch(this, window, "window", "sessionStorage_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "localStorage", {configurable:true, enumerable:true, get:function localStorage (){return bodavm.toolsFunc.dispatch(this, window, "window", "localStorage_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "Storage", {configurable:true, enumerable:false, writable:true, value:function Storage (){return bodavm.toolsFunc.dispatch(this, window, "window", "Storage", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "navigation", {configurable:true, enumerable:true, get:function navigation (){return bodavm.toolsFunc.dispatch(this, window, "window", "navigation_get", arguments)}, set:function navigation (){return bodavm.toolsFunc.dispatch(this, window, "window", "navigation_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Navigation", {configurable:true, enumerable:false, writable:true, value:function Navigation (){return bodavm.toolsFunc.dispatch(this, window, "window", "Navigation", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "visualViewport", {configurable:true, enumerable:true, get:function visualViewport (){return bodavm.toolsFunc.dispatch(this, window, "window", "visualViewport_get", arguments)}, set:function visualViewport (){return bodavm.toolsFunc.dispatch(this, window, "window", "visualViewport_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "VisualViewport", {configurable:true, enumerable:false, writable:true, value:function VisualViewport (){return bodavm.toolsFunc.dispatch(this, window, "window", "VisualViewport", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "history", {configurable:true, enumerable:true, get:function history (){return bodavm.toolsFunc.dispatch(this, window, "window", "history_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "History", {configurable:true, enumerable:false, writable:true, value:function History (){return bodavm.toolsFunc.dispatch(this, window, "window", "History", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "indexedDB", {configurable:true, enumerable:true, get:function indexedDB (){return bodavm.toolsFunc.dispatch(this, window, "window", "indexedDB_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "IDBFactory", {configurable:true, enumerable:false, writable:true, value:function IDBFactory (){return bodavm.toolsFunc.dispatch(this, window, "window", "IDBFactory", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "trustedTypes", {configurable:true, enumerable:true, get:function trustedTypes (){return bodavm.toolsFunc.dispatch(this, window, "window", "trustedTypes_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "TrustedTypePolicyFactory", {configurable:true, enumerable:false, writable:true, value:function TrustedTypePolicyFactory (){return bodavm.toolsFunc.dispatch(this, window, "window", "TrustedTypePolicyFactory", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "cookieStore", {configurable:true, enumerable:true, get:function cookieStore (){return bodavm.toolsFunc.dispatch(this, window, "window", "cookieStore_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "CookieStore", {configurable:true, enumerable:false, writable:true, value:function CookieStore (){return bodavm.toolsFunc.dispatch(this, window, "window", "CookieStore", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "external", {configurable:true, enumerable:true, get:function external (){return bodavm.toolsFunc.dispatch(this, window, "window", "external_get", arguments)}, set:function external (){return bodavm.toolsFunc.dispatch(this, window, "window", "external_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "External", {configurable:true, enumerable:false, writable:true, value:function External (){return bodavm.toolsFunc.dispatch(this, window, "window", "External", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "caches", {configurable:true, enumerable:true, get:function caches (){return bodavm.toolsFunc.dispatch(this, window, "window", "caches_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "CacheStorage", {configurable:true, enumerable:false, writable:true, value:function CacheStorage (){return bodavm.toolsFunc.dispatch(this, window, "window", "CacheStorage", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "webkitStorageInfo", {configurable:true, enumerable:true, get:function webkitStorageInfo (){return bodavm.toolsFunc.dispatch(this, window, "window", "webkitStorageInfo_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "speechSynthesis", {configurable:true, enumerable:true, get:function speechSynthesis (){return bodavm.toolsFunc.dispatch(this, window, "window", "speechSynthesis_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "IDBDatabase", {configurable:true, enumerable:false, writable:true, value:function IDBDatabase (){return bodavm.toolsFunc.dispatch(this, window, "window", "IDBDatabase", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "WeakRef", {configurable:true, enumerable:false, writable:true, value:function WeakRef (){return bodavm.toolsFunc.dispatch(this, window, "window", "WeakRef", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "decodeURI", {configurable:true, enumerable:false, writable:true, value:function decodeURI (){return bodavm.toolsFunc.dispatch(this, window, "window", "decodeURI", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "decodeURIComponent", {configurable:true, enumerable:false, writable:true, value:function decodeURIComponent (){return bodavm.toolsFunc.dispatch(this, window, "window", "decodeURIComponent", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "encodeURI", {configurable:true, enumerable:false, writable:true, value:function encodeURI (){return bodavm.toolsFunc.dispatch(this, window, "window", "encodeURI", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "encodeURIComponent", {configurable:true, enumerable:false, writable:true, value:function encodeURIComponent (){return bodavm.toolsFunc.dispatch(this, window, "window", "encodeURIComponent", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "escape", {configurable:true, enumerable:false, writable:true, value:function escape (){return bodavm.toolsFunc.dispatch(this, window, "window", "escape", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "unescape", {configurable:true, enumerable:false, writable:true, value:function unescape (){return bodavm.toolsFunc.dispatch(this, window, "window", "unescape", arguments)}});
// bodavm.toolsFunc.windowdefineProperty(window, "eval", {configurable:true, enumerable:false, writable:true, value:function eval (){return bodavm.toolsFunc.dispatch(this, window, "window", "eval", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "isFinite", {configurable:true, enumerable:false, writable:true, value:function isFinite (){return bodavm.toolsFunc.dispatch(this, window, "window", "isFinite", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "isNaN", {configurable:true, enumerable:false, writable:true, value:function isNaN (){return bodavm.toolsFunc.dispatch(this, window, "window", "isNaN", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Option", {configurable:true, enumerable:false, writable:true, value:function Option (){return bodavm.toolsFunc.dispatch(this, window, "window", "Option", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Image", {configurable:true, enumerable:false, writable:true, value:function Image (){return bodavm.toolsFunc.dispatch(this, window, "window", "Image", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Audio", {configurable:true, enumerable:false, writable:true, value:function Audio (){return bodavm.toolsFunc.dispatch(this, window, "window", "Audio", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "webkitURL", {configurable:true, enumerable:false, writable:true, value:function webkitURL (){return bodavm.toolsFunc.dispatch(this, window, "window", "webkitURL", arguments)}});
@ -61,7 +138,6 @@ bodavm.toolsFunc.windowdefineProperty(window, "WritableStreamDefaultWriter", {co
bodavm.toolsFunc.windowdefineProperty(window, "WritableStreamDefaultController", {configurable:true, enumerable:false, writable:true, value:function WritableStreamDefaultController (){return bodavm.toolsFunc.dispatch(this, window, "window", "WritableStreamDefaultController", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "WritableStream", {configurable:true, enumerable:false, writable:true, value:function WritableStream (){return bodavm.toolsFunc.dispatch(this, window, "window", "WritableStream", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Worker", {configurable:true, enumerable:false, writable:true, value:function Worker (){return bodavm.toolsFunc.dispatch(this, window, "window", "Worker", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Window", {configurable:true, enumerable:false, writable:true, value:function Window (){return bodavm.toolsFunc.dispatch(this, window, "window", "Window", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "WheelEvent", {configurable:true, enumerable:false, writable:true, value:function WheelEvent (){return bodavm.toolsFunc.dispatch(this, window, "window", "WheelEvent", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "WebSocket", {configurable:true, enumerable:false, writable:true, value:function WebSocket (){return bodavm.toolsFunc.dispatch(this, window, "window", "WebSocket", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "WebGLVertexArrayObject", {configurable:true, enumerable:false, writable:true, value:function WebGLVertexArrayObject (){return bodavm.toolsFunc.dispatch(this, window, "window", "WebGLVertexArrayObject", arguments)}});
@ -82,7 +158,6 @@ bodavm.toolsFunc.windowdefineProperty(window, "WebGLBuffer", {configurable:true,
bodavm.toolsFunc.windowdefineProperty(window, "WebGLActiveInfo", {configurable:true, enumerable:false, writable:true, value:function WebGLActiveInfo (){return bodavm.toolsFunc.dispatch(this, window, "window", "WebGLActiveInfo", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "WebGL2RenderingContext", {configurable:true, enumerable:false, writable:true, value:function WebGL2RenderingContext (){return bodavm.toolsFunc.dispatch(this, window, "window", "WebGL2RenderingContext", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "WaveShaperNode", {configurable:true, enumerable:false, writable:true, value:function WaveShaperNode (){return bodavm.toolsFunc.dispatch(this, window, "window", "WaveShaperNode", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "VisualViewport", {configurable:true, enumerable:false, writable:true, value:function VisualViewport (){return bodavm.toolsFunc.dispatch(this, window, "window", "VisualViewport", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "ValidityState", {configurable:true, enumerable:false, writable:true, value:function ValidityState (){return bodavm.toolsFunc.dispatch(this, window, "window", "ValidityState", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "VTTCue", {configurable:true, enumerable:false, writable:true, value:function VTTCue (){return bodavm.toolsFunc.dispatch(this, window, "window", "VTTCue", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "UserActivation", {configurable:true, enumerable:false, writable:true, value:function UserActivation (){return bodavm.toolsFunc.dispatch(this, window, "window", "UserActivation", arguments)}});
@ -116,7 +191,6 @@ bodavm.toolsFunc.windowdefineProperty(window, "StyleSheet", {configurable:true,
bodavm.toolsFunc.windowdefineProperty(window, "StylePropertyMapReadOnly", {configurable:true, enumerable:false, writable:true, value:function StylePropertyMapReadOnly (){return bodavm.toolsFunc.dispatch(this, window, "window", "StylePropertyMapReadOnly", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "StylePropertyMap", {configurable:true, enumerable:false, writable:true, value:function StylePropertyMap (){return bodavm.toolsFunc.dispatch(this, window, "window", "StylePropertyMap", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "StorageEvent", {configurable:true, enumerable:false, writable:true, value:function StorageEvent (){return bodavm.toolsFunc.dispatch(this, window, "window", "StorageEvent", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Storage", {configurable:true, enumerable:false, writable:true, value:function Storage (){return bodavm.toolsFunc.dispatch(this, window, "window", "Storage", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "StereoPannerNode", {configurable:true, enumerable:false, writable:true, value:function StereoPannerNode (){return bodavm.toolsFunc.dispatch(this, window, "window", "StereoPannerNode", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "StaticRange", {configurable:true, enumerable:false, writable:true, value:function StaticRange (){return bodavm.toolsFunc.dispatch(this, window, "window", "StaticRange", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "ShadowRoot", {configurable:true, enumerable:false, writable:true, value:function ShadowRoot (){return bodavm.toolsFunc.dispatch(this, window, "window", "ShadowRoot", arguments)}});
@ -124,7 +198,6 @@ bodavm.toolsFunc.windowdefineProperty(window, "Selection", {configurable:true, e
bodavm.toolsFunc.windowdefineProperty(window, "SecurityPolicyViolationEvent", {configurable:true, enumerable:false, writable:true, value:function SecurityPolicyViolationEvent (){return bodavm.toolsFunc.dispatch(this, window, "window", "SecurityPolicyViolationEvent", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "ScriptProcessorNode", {configurable:true, enumerable:false, writable:true, value:function ScriptProcessorNode (){return bodavm.toolsFunc.dispatch(this, window, "window", "ScriptProcessorNode", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "ScreenOrientation", {configurable:true, enumerable:false, writable:true, value:function ScreenOrientation (){return bodavm.toolsFunc.dispatch(this, window, "window", "ScreenOrientation", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Screen", {configurable:true, enumerable:false, writable:true, value:function Screen (){return bodavm.toolsFunc.dispatch(this, window, "window", "Screen", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "SVGViewElement", {configurable:true, enumerable:false, writable:true, value:function SVGViewElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "SVGViewElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "SVGUseElement", {configurable:true, enumerable:false, writable:true, value:function SVGUseElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "SVGUseElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "SVGUnitTypes", {configurable:true, enumerable:false, writable:true, value:function SVGUnitTypes (){return bodavm.toolsFunc.dispatch(this, window, "window", "SVGUnitTypes", arguments)}});
@ -279,7 +352,6 @@ bodavm.toolsFunc.windowdefineProperty(window, "PerformanceLongTaskTiming", {conf
bodavm.toolsFunc.windowdefineProperty(window, "PerformanceEventTiming", {configurable:true, enumerable:false, writable:true, value:function PerformanceEventTiming (){return bodavm.toolsFunc.dispatch(this, window, "window", "PerformanceEventTiming", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "PerformanceEntry", {configurable:true, enumerable:false, writable:true, value:function PerformanceEntry (){return bodavm.toolsFunc.dispatch(this, window, "window", "PerformanceEntry", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "PerformanceElementTiming", {configurable:true, enumerable:false, writable:true, value:function PerformanceElementTiming (){return bodavm.toolsFunc.dispatch(this, window, "window", "PerformanceElementTiming", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Performance", {configurable:true, enumerable:false, writable:true, value:function Performance (){return bodavm.toolsFunc.dispatch(this, window, "window", "Performance", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Path2D", {configurable:true, enumerable:false, writable:true, value:function Path2D (){return bodavm.toolsFunc.dispatch(this, window, "window", "Path2D", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "PannerNode", {configurable:true, enumerable:false, writable:true, value:function PannerNode (){return bodavm.toolsFunc.dispatch(this, window, "window", "PannerNode", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "PageTransitionEvent", {configurable:true, enumerable:false, writable:true, value:function PageTransitionEvent (){return bodavm.toolsFunc.dispatch(this, window, "window", "PageTransitionEvent", arguments)}});
@ -294,7 +366,6 @@ bodavm.toolsFunc.windowdefineProperty(window, "NodeIterator", {configurable:true
bodavm.toolsFunc.windowdefineProperty(window, "NodeFilter", {configurable:true, enumerable:false, writable:true, value:function NodeFilter (){return bodavm.toolsFunc.dispatch(this, window, "window", "NodeFilter", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Node", {configurable:true, enumerable:false, writable:true, value:function Node (){return bodavm.toolsFunc.dispatch(this, window, "window", "Node", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "NetworkInformation", {configurable:true, enumerable:false, writable:true, value:function NetworkInformation (){return bodavm.toolsFunc.dispatch(this, window, "window", "NetworkInformation", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Navigator", {configurable:true, enumerable:false, writable:true, value:function Navigator (){return bodavm.toolsFunc.dispatch(this, window, "window", "Navigator", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "NamedNodeMap", {configurable:true, enumerable:false, writable:true, value:function NamedNodeMap (){return bodavm.toolsFunc.dispatch(this, window, "window", "NamedNodeMap", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "MutationRecord", {configurable:true, enumerable:false, writable:true, value:function MutationRecord (){return bodavm.toolsFunc.dispatch(this, window, "window", "MutationRecord", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "MutationObserver", {configurable:true, enumerable:false, writable:true, value:function MutationObserver (){return bodavm.toolsFunc.dispatch(this, window, "window", "MutationObserver", arguments)}});
@ -318,7 +389,6 @@ bodavm.toolsFunc.windowdefineProperty(window, "MediaError", {configurable:true,
bodavm.toolsFunc.windowdefineProperty(window, "MediaEncryptedEvent", {configurable:true, enumerable:false, writable:true, value:function MediaEncryptedEvent (){return bodavm.toolsFunc.dispatch(this, window, "window", "MediaEncryptedEvent", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "MediaElementAudioSourceNode", {configurable:true, enumerable:false, writable:true, value:function MediaElementAudioSourceNode (){return bodavm.toolsFunc.dispatch(this, window, "window", "MediaElementAudioSourceNode", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "MediaCapabilities", {configurable:true, enumerable:false, writable:true, value:function MediaCapabilities (){return bodavm.toolsFunc.dispatch(this, window, "window", "MediaCapabilities", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Location", {configurable:true, enumerable:false, writable:true, value:function Location (){return bodavm.toolsFunc.dispatch(this, window, "window", "Location", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "LayoutShiftAttribution", {configurable:true, enumerable:false, writable:true, value:function LayoutShiftAttribution (){return bodavm.toolsFunc.dispatch(this, window, "window", "LayoutShiftAttribution", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "LayoutShift", {configurable:true, enumerable:false, writable:true, value:function LayoutShift (){return bodavm.toolsFunc.dispatch(this, window, "window", "LayoutShift", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "LargestContentfulPaint", {configurable:true, enumerable:false, writable:true, value:function LargestContentfulPaint (){return bodavm.toolsFunc.dispatch(this, window, "window", "LargestContentfulPaint", arguments)}});
@ -342,90 +412,87 @@ bodavm.toolsFunc.windowdefineProperty(window, "IDBOpenDBRequest", {configurable:
bodavm.toolsFunc.windowdefineProperty(window, "IDBObjectStore", {configurable:true, enumerable:false, writable:true, value:function IDBObjectStore (){return bodavm.toolsFunc.dispatch(this, window, "window", "IDBObjectStore", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "IDBKeyRange", {configurable:true, enumerable:false, writable:true, value:function IDBKeyRange (){return bodavm.toolsFunc.dispatch(this, window, "window", "IDBKeyRange", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "IDBIndex", {configurable:true, enumerable:false, writable:true, value:function IDBIndex (){return bodavm.toolsFunc.dispatch(this, window, "window", "IDBIndex", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "IDBFactory", {configurable:true, enumerable:false, writable:true, value:function IDBFactory (){return bodavm.toolsFunc.dispatch(this, window, "window", "IDBFactory", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "IDBDatabase", {configurable:true, enumerable:false, writable:true, value:function IDBDatabase (){return bodavm.toolsFunc.dispatch(this, window, "window", "IDBDatabase", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "IDBCursorWithValue", {configurable:true, enumerable:false, writable:true, value:function IDBCursorWithValue (){return bodavm.toolsFunc.dispatch(this, window, "window", "IDBCursorWithValue", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "IDBCursor", {configurable:true, enumerable:false, writable:true, value:function IDBCursor (){return bodavm.toolsFunc.dispatch(this, window, "window", "IDBCursor", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "History", {configurable:true, enumerable:false, writable:true, value:function History (){return bodavm.toolsFunc.dispatch(this, window, "window", "History", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Headers", {configurable:true, enumerable:false, writable:true, value:function Headers (){return bodavm.toolsFunc.dispatch(this, window, "window", "Headers", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HashChangeEvent", {configurable:true, enumerable:false, writable:true, value:function HashChangeEvent (){return bodavm.toolsFunc.dispatch(this, window, "window", "HashChangeEvent", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLVideoElement", {configurable:true, enumerable:false, writable:true, value:function HTMLVideoElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLVideoElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLUnknownElement", {configurable:true, enumerable:false, writable:true, value:function HTMLUnknownElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLUnknownElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLUListElement", {configurable:true, enumerable:false, writable:true, value:function HTMLUListElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLUListElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTrackElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTrackElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTrackElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTitleElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTitleElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTitleElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTimeElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTimeElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTimeElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTextAreaElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTextAreaElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTextAreaElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTemplateElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTemplateElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTemplateElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTableSectionElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTableSectionElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTableSectionElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTableRowElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTableRowElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTableRowElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTableElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTableElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTableElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTableColElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTableColElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTableColElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTableCellElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTableCellElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTableCellElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTableCaptionElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTableCaptionElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTableCaptionElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLStyleElement", {configurable:true, enumerable:false, writable:true, value:function HTMLStyleElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLStyleElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLSpanElement", {configurable:true, enumerable:false, writable:true, value:function HTMLSpanElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLSpanElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLSourceElement", {configurable:true, enumerable:false, writable:true, value:function HTMLSourceElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLSourceElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLSlotElement", {configurable:true, enumerable:false, writable:true, value:function HTMLSlotElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLSlotElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLSelectElement", {configurable:true, enumerable:false, writable:true, value:function HTMLSelectElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLSelectElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLScriptElement", {configurable:true, enumerable:false, writable:true, value:function HTMLScriptElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLScriptElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLQuoteElement", {configurable:true, enumerable:false, writable:true, value:function HTMLQuoteElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLQuoteElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLProgressElement", {configurable:true, enumerable:false, writable:true, value:function HTMLProgressElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLProgressElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLPreElement", {configurable:true, enumerable:false, writable:true, value:function HTMLPreElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLPreElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLPictureElement", {configurable:true, enumerable:false, writable:true, value:function HTMLPictureElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLPictureElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLParamElement", {configurable:true, enumerable:false, writable:true, value:function HTMLParamElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLParamElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLParagraphElement", {configurable:true, enumerable:false, writable:true, value:function HTMLParagraphElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLParagraphElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLOutputElement", {configurable:true, enumerable:false, writable:true, value:function HTMLOutputElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLOutputElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLOptionsCollection", {configurable:true, enumerable:false, writable:true, value:function HTMLOptionsCollection (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLOptionsCollection", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLOptionElement", {configurable:true, enumerable:false, writable:true, value:function HTMLOptionElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLOptionElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLOptGroupElement", {configurable:true, enumerable:false, writable:true, value:function HTMLOptGroupElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLOptGroupElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLObjectElement", {configurable:true, enumerable:false, writable:true, value:function HTMLObjectElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLObjectElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLOListElement", {configurable:true, enumerable:false, writable:true, value:function HTMLOListElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLOListElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLModElement", {configurable:true, enumerable:false, writable:true, value:function HTMLModElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLModElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLMeterElement", {configurable:true, enumerable:false, writable:true, value:function HTMLMeterElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLMeterElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLMetaElement", {configurable:true, enumerable:false, writable:true, value:function HTMLMetaElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLMetaElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLMenuElement", {configurable:true, enumerable:false, writable:true, value:function HTMLMenuElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLMenuElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLMediaElement", {configurable:true, enumerable:false, writable:true, value:function HTMLMediaElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLMediaElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLMarqueeElement", {configurable:true, enumerable:false, writable:true, value:function HTMLMarqueeElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLMarqueeElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLMapElement", {configurable:true, enumerable:false, writable:true, value:function HTMLMapElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLMapElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLLinkElement", {configurable:true, enumerable:false, writable:true, value:function HTMLLinkElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLLinkElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLLegendElement", {configurable:true, enumerable:false, writable:true, value:function HTMLLegendElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLLegendElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLLabelElement", {configurable:true, enumerable:false, writable:true, value:function HTMLLabelElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLLabelElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLLIElement", {configurable:true, enumerable:false, writable:true, value:function HTMLLIElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLLIElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLInputElement", {configurable:true, enumerable:false, writable:true, value:function HTMLInputElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLInputElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLImageElement", {configurable:true, enumerable:false, writable:true, value:function HTMLImageElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLImageElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLIFrameElement", {configurable:true, enumerable:false, writable:true, value:function HTMLIFrameElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLIFrameElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLHtmlElement", {configurable:true, enumerable:false, writable:true, value:function HTMLHtmlElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLHtmlElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLHeadingElement", {configurable:true, enumerable:false, writable:true, value:function HTMLHeadingElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLHeadingElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLHeadElement", {configurable:true, enumerable:false, writable:true, value:function HTMLHeadElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLHeadElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLHRElement", {configurable:true, enumerable:false, writable:true, value:function HTMLHRElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLHRElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLFrameSetElement", {configurable:true, enumerable:false, writable:true, value:function HTMLFrameSetElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLFrameSetElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLFrameElement", {configurable:true, enumerable:false, writable:true, value:function HTMLFrameElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLFrameElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLFormElement", {configurable:true, enumerable:false, writable:true, value:function HTMLFormElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLFormElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLFormControlsCollection", {configurable:true, enumerable:false, writable:true, value:function HTMLFormControlsCollection (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLFormControlsCollection", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLFontElement", {configurable:true, enumerable:false, writable:true, value:function HTMLFontElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLFontElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLFieldSetElement", {configurable:true, enumerable:false, writable:true, value:function HTMLFieldSetElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLFieldSetElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLEmbedElement", {configurable:true, enumerable:false, writable:true, value:function HTMLEmbedElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLEmbedElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLElement", {configurable:true, enumerable:false, writable:true, value:function HTMLElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLDocument", {configurable:true, enumerable:false, writable:true, value:function HTMLDocument (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLDocument", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLDivElement", {configurable:true, enumerable:false, writable:true, value:function HTMLDivElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLDivElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLDirectoryElement", {configurable:true, enumerable:false, writable:true, value:function HTMLDirectoryElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLDirectoryElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLDialogElement", {configurable:true, enumerable:false, writable:true, value:function HTMLDialogElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLDialogElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLDetailsElement", {configurable:true, enumerable:false, writable:true, value:function HTMLDetailsElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLDetailsElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLDataListElement", {configurable:true, enumerable:false, writable:true, value:function HTMLDataListElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLDataListElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLDataElement", {configurable:true, enumerable:false, writable:true, value:function HTMLDataElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLDataElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLDListElement", {configurable:true, enumerable:false, writable:true, value:function HTMLDListElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLDListElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLCollection", {configurable:true, enumerable:false, writable:true, value:function HTMLCollection (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLCollection", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLCanvasElement", {configurable:true, enumerable:false, writable:true, value:function HTMLCanvasElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLCanvasElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLButtonElement", {configurable:true, enumerable:false, writable:true, value:function HTMLButtonElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLButtonElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLBodyElement", {configurable:true, enumerable:false, writable:true, value:function HTMLBodyElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLBodyElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLBaseElement", {configurable:true, enumerable:false, writable:true, value:function HTMLBaseElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLBaseElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLBRElement", {configurable:true, enumerable:false, writable:true, value:function HTMLBRElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLBRElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLAudioElement", {configurable:true, enumerable:false, writable:true, value:function HTMLAudioElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLAudioElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLAreaElement", {configurable:true, enumerable:false, writable:true, value:function HTMLAreaElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLAreaElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLAnchorElement", {configurable:true, enumerable:false, writable:true, value:function HTMLAnchorElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLAnchorElement", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLAllCollection", {configurable:true, enumerable:false, writable:true, value:function HTMLAllCollection (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLAllCollection", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "GeolocationPositionError", {configurable:true, enumerable:false, writable:true, value:function GeolocationPositionError (){return bodavm.toolsFunc.dispatch(this, window, "window", "GeolocationPositionError", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "HashChangeEvent", {configurable:true, enumerable:false, writable:true, value:function HashChangeEvent (){return bodavm.toolsFunc.dispatch(this, window, "window", "HashChangeEvent", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLVideoElement", {configurable:true, enumerable:false, writable:true, value:function HTMLVideoElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLVideoElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLUnknownElement", {configurable:true, enumerable:false, writable:true, value:function HTMLUnknownElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLUnknownElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLUListElement", {configurable:true, enumerable:false, writable:true, value:function HTMLUListElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLUListElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTrackElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTrackElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTrackElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTitleElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTitleElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTitleElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTimeElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTimeElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTimeElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTextAreaElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTextAreaElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTextAreaElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTemplateElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTemplateElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTemplateElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTableSectionElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTableSectionElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTableSectionElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTableRowElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTableRowElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTableRowElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTableElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTableElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTableElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTableColElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTableColElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTableColElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTableCellElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTableCellElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTableCellElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLTableCaptionElement", {configurable:true, enumerable:false, writable:true, value:function HTMLTableCaptionElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLTableCaptionElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLStyleElement", {configurable:true, enumerable:false, writable:true, value:function HTMLStyleElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLStyleElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLSpanElement", {configurable:true, enumerable:false, writable:true, value:function HTMLSpanElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLSpanElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLSourceElement", {configurable:true, enumerable:false, writable:true, value:function HTMLSourceElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLSourceElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLSlotElement", {configurable:true, enumerable:false, writable:true, value:function HTMLSlotElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLSlotElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLSelectElement", {configurable:true, enumerable:false, writable:true, value:function HTMLSelectElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLSelectElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLScriptElement", {configurable:true, enumerable:false, writable:true, value:function HTMLScriptElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLScriptElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLQuoteElement", {configurable:true, enumerable:false, writable:true, value:function HTMLQuoteElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLQuoteElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLProgressElement", {configurable:true, enumerable:false, writable:true, value:function HTMLProgressElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLProgressElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLPreElement", {configurable:true, enumerable:false, writable:true, value:function HTMLPreElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLPreElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLPictureElement", {configurable:true, enumerable:false, writable:true, value:function HTMLPictureElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLPictureElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLParamElement", {configurable:true, enumerable:false, writable:true, value:function HTMLParamElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLParamElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLParagraphElement", {configurable:true, enumerable:false, writable:true, value:function HTMLParagraphElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLParagraphElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLOutputElement", {configurable:true, enumerable:false, writable:true, value:function HTMLOutputElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLOutputElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLOptionsCollection", {configurable:true, enumerable:false, writable:true, value:function HTMLOptionsCollection (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLOptionsCollection", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLOptionElement", {configurable:true, enumerable:false, writable:true, value:function HTMLOptionElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLOptionElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLOptGroupElement", {configurable:true, enumerable:false, writable:true, value:function HTMLOptGroupElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLOptGroupElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLObjectElement", {configurable:true, enumerable:false, writable:true, value:function HTMLObjectElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLObjectElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLOListElement", {configurable:true, enumerable:false, writable:true, value:function HTMLOListElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLOListElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLModElement", {configurable:true, enumerable:false, writable:true, value:function HTMLModElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLModElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLMeterElement", {configurable:true, enumerable:false, writable:true, value:function HTMLMeterElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLMeterElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLMetaElement", {configurable:true, enumerable:false, writable:true, value:function HTMLMetaElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLMetaElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLMenuElement", {configurable:true, enumerable:false, writable:true, value:function HTMLMenuElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLMenuElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLMediaElement", {configurable:true, enumerable:false, writable:true, value:function HTMLMediaElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLMediaElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLMarqueeElement", {configurable:true, enumerable:false, writable:true, value:function HTMLMarqueeElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLMarqueeElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLMapElement", {configurable:true, enumerable:false, writable:true, value:function HTMLMapElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLMapElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLLinkElement", {configurable:true, enumerable:false, writable:true, value:function HTMLLinkElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLLinkElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLLegendElement", {configurable:true, enumerable:false, writable:true, value:function HTMLLegendElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLLegendElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLLabelElement", {configurable:true, enumerable:false, writable:true, value:function HTMLLabelElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLLabelElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLLIElement", {configurable:true, enumerable:false, writable:true, value:function HTMLLIElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLLIElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLInputElement", {configurable:true, enumerable:false, writable:true, value:function HTMLInputElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLInputElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLImageElement", {configurable:true, enumerable:false, writable:true, value:function HTMLImageElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLImageElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLIFrameElement", {configurable:true, enumerable:false, writable:true, value:function HTMLIFrameElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLIFrameElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLHtmlElement", {configurable:true, enumerable:false, writable:true, value:function HTMLHtmlElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLHtmlElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLHeadingElement", {configurable:true, enumerable:false, writable:true, value:function HTMLHeadingElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLHeadingElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLHeadElement", {configurable:true, enumerable:false, writable:true, value:function HTMLHeadElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLHeadElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLHRElement", {configurable:true, enumerable:false, writable:true, value:function HTMLHRElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLHRElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLFrameSetElement", {configurable:true, enumerable:false, writable:true, value:function HTMLFrameSetElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLFrameSetElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLFrameElement", {configurable:true, enumerable:false, writable:true, value:function HTMLFrameElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLFrameElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLFormElement", {configurable:true, enumerable:false, writable:true, value:function HTMLFormElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLFormElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLFormControlsCollection", {configurable:true, enumerable:false, writable:true, value:function HTMLFormControlsCollection (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLFormControlsCollection", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLFontElement", {configurable:true, enumerable:false, writable:true, value:function HTMLFontElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLFontElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLFieldSetElement", {configurable:true, enumerable:false, writable:true, value:function HTMLFieldSetElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLFieldSetElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLEmbedElement", {configurable:true, enumerable:false, writable:true, value:function HTMLEmbedElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLEmbedElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLElement", {configurable:true, enumerable:false, writable:true, value:function HTMLElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLDocument", {configurable:true, enumerable:false, writable:true, value:function HTMLDocument (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLDocument", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLDivElement", {configurable:true, enumerable:false, writable:true, value:function HTMLDivElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLDivElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLDirectoryElement", {configurable:true, enumerable:false, writable:true, value:function HTMLDirectoryElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLDirectoryElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLDialogElement", {configurable:true, enumerable:false, writable:true, value:function HTMLDialogElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLDialogElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLDetailsElement", {configurable:true, enumerable:false, writable:true, value:function HTMLDetailsElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLDetailsElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLDataListElement", {configurable:true, enumerable:false, writable:true, value:function HTMLDataListElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLDataListElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLDataElement", {configurable:true, enumerable:false, writable:true, value:function HTMLDataElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLDataElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLDListElement", {configurable:true, enumerable:false, writable:true, value:function HTMLDListElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLDListElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLCollection", {configurable:true, enumerable:false, writable:true, value:function HTMLCollection (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLCollection", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLCanvasElement", {configurable:true, enumerable:false, writable:true, value:function HTMLCanvasElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLCanvasElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLButtonElement", {configurable:true, enumerable:false, writable:true, value:function HTMLButtonElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLButtonElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLBodyElement", {configurable:true, enumerable:false, writable:true, value:function HTMLBodyElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLBodyElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLBaseElement", {configurable:true, enumerable:false, writable:true, value:function HTMLBaseElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLBaseElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLBRElement", {configurable:true, enumerable:false, writable:true, value:function HTMLBRElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLBRElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLAudioElement", {configurable:true, enumerable:false, writable:true, value:function HTMLAudioElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLAudioElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLAreaElement", {configurable:true, enumerable:false, writable:true, value:function HTMLAreaElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLAreaElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLAnchorElement", {configurable:true, enumerable:false, writable:true, value:function HTMLAnchorElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLAnchorElement", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "HTMLAllCollection", {configurable:true, enumerable:false, writable:true, value:function HTMLAllCollection (){return bodavm.toolsFunc.dispatch(this, window, "window", "HTMLAllCollection", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "GeolocationPositionError", {configurable:true, enumerable:false, writable:true, value:function GeolocationPositionError (){return bodavm.toolsFunc.dispatch(this, window, "window", "GeolocationPositionError", arguments)}()});
bodavm.toolsFunc.windowdefineProperty(window, "GeolocationPosition", {configurable:true, enumerable:false, writable:true, value:function GeolocationPosition (){return bodavm.toolsFunc.dispatch(this, window, "window", "GeolocationPosition", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "GeolocationCoordinates", {configurable:true, enumerable:false, writable:true, value:function GeolocationCoordinates (){return bodavm.toolsFunc.dispatch(this, window, "window", "GeolocationCoordinates", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Geolocation", {configurable:true, enumerable:false, writable:true, value:function Geolocation (){return bodavm.toolsFunc.dispatch(this, window, "window", "Geolocation", arguments)}});
@ -443,7 +510,6 @@ bodavm.toolsFunc.windowdefineProperty(window, "FileReader", {configurable:true,
bodavm.toolsFunc.windowdefineProperty(window, "FileList", {configurable:true, enumerable:false, writable:true, value:function FileList (){return bodavm.toolsFunc.dispatch(this, window, "window", "FileList", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "File", {configurable:true, enumerable:false, writable:true, value:function File (){return bodavm.toolsFunc.dispatch(this, window, "window", "File", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "FeaturePolicy", {configurable:true, enumerable:false, writable:true, value:function FeaturePolicy (){return bodavm.toolsFunc.dispatch(this, window, "window", "FeaturePolicy", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "External", {configurable:true, enumerable:false, writable:true, value:function External (){return bodavm.toolsFunc.dispatch(this, window, "window", "External", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "EventTarget", {configurable:true, enumerable:false, writable:true, value:function EventTarget (){return bodavm.toolsFunc.dispatch(this, window, "window", "EventTarget", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "EventSource", {configurable:true, enumerable:false, writable:true, value:function EventSource (){return bodavm.toolsFunc.dispatch(this, window, "window", "EventSource", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "EventCounts", {configurable:true, enumerable:false, writable:true, value:function EventCounts (){return bodavm.toolsFunc.dispatch(this, window, "window", "EventCounts", arguments)}});
@ -455,7 +521,6 @@ bodavm.toolsFunc.windowdefineProperty(window, "DynamicsCompressorNode", {configu
bodavm.toolsFunc.windowdefineProperty(window, "DragEvent", {configurable:true, enumerable:false, writable:true, value:function DragEvent (){return bodavm.toolsFunc.dispatch(this, window, "window", "DragEvent", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "DocumentType", {configurable:true, enumerable:false, writable:true, value:function DocumentType (){return bodavm.toolsFunc.dispatch(this, window, "window", "DocumentType", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "DocumentFragment", {configurable:true, enumerable:false, writable:true, value:function DocumentFragment (){return bodavm.toolsFunc.dispatch(this, window, "window", "DocumentFragment", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Document", {configurable:true, enumerable:false, writable:true, value:function Document (){return bodavm.toolsFunc.dispatch(this, window, "window", "Document", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "DelayNode", {configurable:true, enumerable:false, writable:true, value:function DelayNode (){return bodavm.toolsFunc.dispatch(this, window, "window", "DelayNode", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "DecompressionStream", {configurable:true, enumerable:false, writable:true, value:function DecompressionStream (){return bodavm.toolsFunc.dispatch(this, window, "window", "DecompressionStream", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "DataTransferItemList", {configurable:true, enumerable:false, writable:true, value:function DataTransferItemList (){return bodavm.toolsFunc.dispatch(this, window, "window", "DataTransferItemList", arguments)}});
@ -477,7 +542,6 @@ bodavm.toolsFunc.windowdefineProperty(window, "DOMImplementation", {configurable
bodavm.toolsFunc.windowdefineProperty(window, "DOMException", {configurable:true, enumerable:false, writable:true, value:function DOMException (){return bodavm.toolsFunc.dispatch(this, window, "window", "DOMException", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "DOMError", {configurable:true, enumerable:false, writable:true, value:function DOMError (){return bodavm.toolsFunc.dispatch(this, window, "window", "DOMError", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "CustomEvent", {configurable:true, enumerable:false, writable:true, value:function CustomEvent (){return bodavm.toolsFunc.dispatch(this, window, "window", "CustomEvent", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "CustomElementRegistry", {configurable:true, enumerable:false, writable:true, value:function CustomElementRegistry (){return bodavm.toolsFunc.dispatch(this, window, "window", "CustomElementRegistry", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Crypto", {configurable:true, enumerable:false, writable:true, value:function Crypto (){return bodavm.toolsFunc.dispatch(this, window, "window", "Crypto", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "CountQueuingStrategy", {configurable:true, enumerable:false, writable:true, value:function CountQueuingStrategy (){return bodavm.toolsFunc.dispatch(this, window, "window", "CountQueuingStrategy", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "ConvolverNode", {configurable:true, enumerable:false, writable:true, value:function ConvolverNode (){return bodavm.toolsFunc.dispatch(this, window, "window", "ConvolverNode", arguments)}});
@ -552,7 +616,6 @@ bodavm.toolsFunc.windowdefineProperty(window, "BeforeUnloadEvent", {configurable
bodavm.toolsFunc.windowdefineProperty(window, "BeforeInstallPromptEvent", {configurable:true, enumerable:false, writable:true, value:function BeforeInstallPromptEvent (){return bodavm.toolsFunc.dispatch(this, window, "window", "BeforeInstallPromptEvent", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "BatteryManager", {configurable:true, enumerable:false, writable:true, value:function BatteryManager (){return bodavm.toolsFunc.dispatch(this, window, "window", "BatteryManager", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "BaseAudioContext", {configurable:true, enumerable:false, writable:true, value:function BaseAudioContext (){return bodavm.toolsFunc.dispatch(this, window, "window", "BaseAudioContext", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "BarProp", {configurable:true, enumerable:false, writable:true, value:function BarProp (){return bodavm.toolsFunc.dispatch(this, window, "window", "BarProp", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "AudioWorkletNode", {configurable:true, enumerable:false, writable:true, value:function AudioWorkletNode (){return bodavm.toolsFunc.dispatch(this, window, "window", "AudioWorkletNode", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "AudioScheduledSourceNode", {configurable:true, enumerable:false, writable:true, value:function AudioScheduledSourceNode (){return bodavm.toolsFunc.dispatch(this, window, "window", "AudioScheduledSourceNode", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "AudioProcessingEvent", {configurable:true, enumerable:false, writable:true, value:function AudioProcessingEvent (){return bodavm.toolsFunc.dispatch(this, window, "window", "AudioProcessingEvent", arguments)}});
@ -572,19 +635,11 @@ bodavm.toolsFunc.windowdefineProperty(window, "AnalyserNode", {configurable:true
bodavm.toolsFunc.windowdefineProperty(window, "AbstractRange", {configurable:true, enumerable:false, writable:true, value:function AbstractRange (){return bodavm.toolsFunc.dispatch(this, window, "window", "AbstractRange", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "AbortSignal", {configurable:true, enumerable:false, writable:true, value:function AbortSignal (){return bodavm.toolsFunc.dispatch(this, window, "window", "AbortSignal", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "AbortController", {configurable:true, enumerable:false, writable:true, value:function AbortController (){return bodavm.toolsFunc.dispatch(this, window, "window", "AbortController", arguments)}});
// bodavm.toolsFunc.windowdefineProperty(window, "window", {configurable:false, enumerable:true, get:function window (){return bodavm.toolsFunc.dispatch(this, window, "window", "window_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "self", {configurable:true, enumerable:true, get:function self (){return bodavm.toolsFunc.dispatch(this, window, "window", "self_get", arguments)}, set:function self (){return bodavm.toolsFunc.dispatch(this, window, "window", "self_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "document", {configurable:false, enumerable:true, get:function document (){return bodavm.toolsFunc.dispatch(this, window, "window", "document_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "name", {configurable:true, enumerable:true, get:function name (){return bodavm.toolsFunc.dispatch(this, window, "window", "name_get", arguments, '')}, set:function name (){return bodavm.toolsFunc.dispatch(this, window, "window", "name_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "location", {configurable:false, enumerable:true, get:function location (){return bodavm.toolsFunc.dispatch(this, window, "window", "location_get", arguments)}, set:function location (){return bodavm.toolsFunc.dispatch(this, window, "window", "location_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "customElements", {configurable:true, enumerable:true, get:function customElements (){return bodavm.toolsFunc.dispatch(this, window, "window", "customElements_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "history", {configurable:true, enumerable:true, get:function history (){return bodavm.toolsFunc.dispatch(this, window, "window", "history_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "locationbar", {configurable:true, enumerable:true, get:function locationbar (){return bodavm.toolsFunc.dispatch(this, window, "window", "locationbar_get", arguments)}, set:function locationbar (){return bodavm.toolsFunc.dispatch(this, window, "window", "locationbar_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "menubar", {configurable:true, enumerable:true, get:function menubar (){return bodavm.toolsFunc.dispatch(this, window, "window", "menubar_get", arguments)}, set:function menubar (){return bodavm.toolsFunc.dispatch(this, window, "window", "menubar_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "personalbar", {configurable:true, enumerable:true, get:function personalbar (){return bodavm.toolsFunc.dispatch(this, window, "window", "personalbar_get", arguments)}, set:function personalbar (){return bodavm.toolsFunc.dispatch(this, window, "window", "personalbar_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "scrollbars", {configurable:true, enumerable:true, get:function scrollbars (){return bodavm.toolsFunc.dispatch(this, window, "window", "scrollbars_get", arguments)}, set:function scrollbars (){return bodavm.toolsFunc.dispatch(this, window, "window", "scrollbars_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "statusbar", {configurable:true, enumerable:true, get:function statusbar (){return bodavm.toolsFunc.dispatch(this, window, "window", "statusbar_get", arguments)}, set:function statusbar (){return bodavm.toolsFunc.dispatch(this, window, "window", "statusbar_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "toolbar", {configurable:true, enumerable:true, get:function toolbar (){return bodavm.toolsFunc.dispatch(this, window, "window", "toolbar_get", arguments)}, set:function toolbar (){return bodavm.toolsFunc.dispatch(this, window, "window", "toolbar_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "status", {configurable:true, enumerable:true, get:function status (){return bodavm.toolsFunc.dispatch(this, window, "window", "status_get", arguments, '')}, set:function status (){return bodavm.toolsFunc.dispatch(this, window, "window", "status_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "closed", {configurable:true, enumerable:true, get:function closed (){return bodavm.toolsFunc.dispatch(this, window, "window", "closed_get", arguments, false)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "frames", {configurable:true, enumerable:true, get:function frames (){return bodavm.toolsFunc.dispatch(this, window, "window", "frames_get", arguments)}, set:function frames (){return bodavm.toolsFunc.dispatch(this, window, "window", "frames_set", arguments)}});
@ -593,17 +648,13 @@ bodavm.toolsFunc.windowdefineProperty(window, "top", {configurable:false, enumer
bodavm.toolsFunc.windowdefineProperty(window, "opener", {configurable:true, enumerable:true, get:function opener (){return bodavm.toolsFunc.dispatch(this, window, "window", "opener_get", arguments, null)}, set:function opener (){return bodavm.toolsFunc.dispatch(this, window, "window", "opener_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "parent", {configurable:true, enumerable:true, get:function parent (){return bodavm.toolsFunc.dispatch(this, window, "window", "parent_get", arguments)}, set:function parent (){return bodavm.toolsFunc.dispatch(this, window, "window", "parent_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "frameElement", {configurable:true, enumerable:true, get:function frameElement (){return bodavm.toolsFunc.dispatch(this, window, "window", "frameElement_get", arguments, null)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "navigator", {configurable:true, enumerable:true, get:function navigator (){return bodavm.toolsFunc.dispatch(this, window, "window", "navigator_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "origin", {configurable:true, enumerable:true, get:function origin (){return bodavm.toolsFunc.dispatch(this, window, "window", "origin_get", arguments, 'http://127.0.0.1:5000')}, set:function origin (){return bodavm.toolsFunc.dispatch(this, window, "window", "origin_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "external", {configurable:true, enumerable:true, get:function external (){return bodavm.toolsFunc.dispatch(this, window, "window", "external_get", arguments)}, set:function external (){return bodavm.toolsFunc.dispatch(this, window, "window", "external_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "screen", {configurable:true, enumerable:true, get:function screen (){return bodavm.toolsFunc.dispatch(this, window, "window", "screen_get", arguments)}, set:function screen (){return bodavm.toolsFunc.dispatch(this, window, "window", "screen_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "innerWidth", {configurable:true, enumerable:true, get:function innerWidth (){return bodavm.toolsFunc.dispatch(this, window, "window", "innerWidth_get", arguments, 1440)}, set:function innerWidth (){return bodavm.toolsFunc.dispatch(this, window, "window", "innerWidth_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "innerHeight", {configurable:true, enumerable:true, get:function innerHeight (){return bodavm.toolsFunc.dispatch(this, window, "window", "innerHeight_get", arguments, 174)}, set:function innerHeight (){return bodavm.toolsFunc.dispatch(this, window, "window", "innerHeight_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "innerHeight", {configurable:true, enumerable:true, get:function innerHeight (){return bodavm.toolsFunc.dispatch(this, window, "window", "innerHeight_get", arguments, 150)}, set:function innerHeight (){return bodavm.toolsFunc.dispatch(this, window, "window", "innerHeight_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "scrollX", {configurable:true, enumerable:true, get:function scrollX (){return bodavm.toolsFunc.dispatch(this, window, "window", "scrollX_get", arguments, 0)}, set:function scrollX (){return bodavm.toolsFunc.dispatch(this, window, "window", "scrollX_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "pageXOffset", {configurable:true, enumerable:true, get:function pageXOffset (){return bodavm.toolsFunc.dispatch(this, window, "window", "pageXOffset_get", arguments, 0)}, set:function pageXOffset (){return bodavm.toolsFunc.dispatch(this, window, "window", "pageXOffset_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "scrollY", {configurable:true, enumerable:true, get:function scrollY (){return bodavm.toolsFunc.dispatch(this, window, "window", "scrollY_get", arguments, 0)}, set:function scrollY (){return bodavm.toolsFunc.dispatch(this, window, "window", "scrollY_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "pageYOffset", {configurable:true, enumerable:true, get:function pageYOffset (){return bodavm.toolsFunc.dispatch(this, window, "window", "pageYOffset_get", arguments, 0)}, set:function pageYOffset (){return bodavm.toolsFunc.dispatch(this, window, "window", "pageYOffset_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "visualViewport", {configurable:true, enumerable:true, get:function visualViewport (){return bodavm.toolsFunc.dispatch(this, window, "window", "visualViewport_get", arguments)}, set:function visualViewport (){return bodavm.toolsFunc.dispatch(this, window, "window", "visualViewport_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "screenX", {configurable:true, enumerable:true, get:function screenX (){return bodavm.toolsFunc.dispatch(this, window, "window", "screenX_get", arguments, 0)}, set:function screenX (){return bodavm.toolsFunc.dispatch(this, window, "window", "screenX_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "screenY", {configurable:true, enumerable:true, get:function screenY (){return bodavm.toolsFunc.dispatch(this, window, "window", "screenY_get", arguments, 0)}, set:function screenY (){return bodavm.toolsFunc.dispatch(this, window, "window", "screenY_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "outerWidth", {configurable:true, enumerable:true, get:function outerWidth (){return bodavm.toolsFunc.dispatch(this, window, "window", "outerWidth_get", arguments, 1440)}, set:function outerWidth (){return bodavm.toolsFunc.dispatch(this, window, "window", "outerWidth_set", arguments)}});
@ -619,14 +670,10 @@ bodavm.toolsFunc.windowdefineProperty(window, "defaultstatus", {configurable:tru
bodavm.toolsFunc.windowdefineProperty(window, "styleMedia", {configurable:true, enumerable:true, get:function styleMedia (){return bodavm.toolsFunc.dispatch(this, window, "window", "styleMedia_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "onsearch", {configurable:true, enumerable:true, get:function onsearch (){return bodavm.toolsFunc.dispatch(this, window, "window", "onsearch_get", arguments, null)}, set:function onsearch (){return bodavm.toolsFunc.dispatch(this, window, "window", "onsearch_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "isSecureContext", {configurable:true, enumerable:true, get:function isSecureContext (){return bodavm.toolsFunc.dispatch(this, window, "window", "isSecureContext_get", arguments, true)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "performance", {configurable:true, enumerable:true, get:function performance (){return bodavm.toolsFunc.dispatch(this, window, "window", "performance_get", arguments)}, set:function performance (){return bodavm.toolsFunc.dispatch(this, window, "window", "performance_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "onappinstalled", {configurable:true, enumerable:true, get:function onappinstalled (){return bodavm.toolsFunc.dispatch(this, window, "window", "onappinstalled_get", arguments, null)}, set:function onappinstalled (){return bodavm.toolsFunc.dispatch(this, window, "window", "onappinstalled_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "onbeforeinstallprompt", {configurable:true, enumerable:true, get:function onbeforeinstallprompt (){return bodavm.toolsFunc.dispatch(this, window, "window", "onbeforeinstallprompt_get", arguments, null)}, set:function onbeforeinstallprompt (){return bodavm.toolsFunc.dispatch(this, window, "window", "onbeforeinstallprompt_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "crypto", {configurable:true, enumerable:true, get:function crypto (){return bodavm.toolsFunc.dispatch(this, window, "window", "crypto_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "indexedDB", {configurable:true, enumerable:true, get:function indexedDB (){return bodavm.toolsFunc.dispatch(this, window, "window", "indexedDB_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "webkitStorageInfo", {configurable:true, enumerable:true, get:function webkitStorageInfo (){return bodavm.toolsFunc.dispatch(this, window, "window", "webkitStorageInfo_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "sessionStorage", {configurable:true, enumerable:true, get:function sessionStorage (){return bodavm.toolsFunc.dispatch(this, window, "window", "sessionStorage_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "localStorage", {configurable:true, enumerable:true, get:function localStorage (){return bodavm.toolsFunc.dispatch(this, window, "window", "localStorage_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "onbeforexrselect", {configurable:true, enumerable:true, get:function onbeforexrselect (){return bodavm.toolsFunc.dispatch(this, window, "window", "onbeforexrselect_get", arguments, null)}, set:function onbeforexrselect (){return bodavm.toolsFunc.dispatch(this, window, "window", "onbeforexrselect_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "onabort", {configurable:true, enumerable:true, get:function onabort (){return bodavm.toolsFunc.dispatch(this, window, "window", "onabort_get", arguments, null)}, set:function onabort (){return bodavm.toolsFunc.dispatch(this, window, "window", "onabort_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "onblur", {configurable:true, enumerable:true, get:function onblur (){return bodavm.toolsFunc.dispatch(this, window, "window", "onblur_get", arguments, null)}, set:function onblur (){return bodavm.toolsFunc.dispatch(this, window, "window", "onblur_set", arguments)}});
@ -732,8 +779,10 @@ bodavm.toolsFunc.windowdefineProperty(window, "onrejectionhandled", {configurabl
bodavm.toolsFunc.windowdefineProperty(window, "onstorage", {configurable:true, enumerable:true, get:function onstorage (){return bodavm.toolsFunc.dispatch(this, window, "window", "onstorage_get", arguments, null)}, set:function onstorage (){return bodavm.toolsFunc.dispatch(this, window, "window", "onstorage_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "onunhandledrejection", {configurable:true, enumerable:true, get:function onunhandledrejection (){return bodavm.toolsFunc.dispatch(this, window, "window", "onunhandledrejection_get", arguments, null)}, set:function onunhandledrejection (){return bodavm.toolsFunc.dispatch(this, window, "window", "onunhandledrejection_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "onunload", {configurable:true, enumerable:true, get:function onunload (){return bodavm.toolsFunc.dispatch(this, window, "window", "onunload_get", arguments, null)}, set:function onunload (){return bodavm.toolsFunc.dispatch(this, window, "window", "onunload_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "alert", {configurable:true, enumerable:true, writable:true, value:function alert (){return bodavm.toolsFunc.dispatch(this, window, "window", "alert", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "blur", {configurable:true, enumerable:true, writable:true, value:function blur (){return bodavm.toolsFunc.dispatch(this, window, "window", "blur", arguments)}});
// bodavm.toolsFunc.windowdefineProperty(window, "alert", {configurable:true, enumerable:true, writable:true, value:function alert (){return bodavm.toolsFunc.dispatch(this, window, "window", "alert", arguments)}});
// bodavm.toolsFunc.windowdefineProperty(window, "atob", {configurable:true, enumerable:true, writable:true, value:function atob (){return bodavm.toolsFunc.dispatch(this, window, "window", "atob", arguments)}});
// bodavm.toolsFunc.windowdefineProperty(window, "blur", {configurable:true, enumerable:true, writable:true, value:function blur (){return bodavm.toolsFunc.dispatch(this, window, "window", "blur", arguments)}});
// bodavm.toolsFunc.windowdefineProperty(window, "btoa", {configurable:true, enumerable:true, writable:true, value:function btoa (){return bodavm.toolsFunc.dispatch(this, window, "window", "btoa", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "cancelAnimationFrame", {configurable:true, enumerable:true, writable:true, value:function cancelAnimationFrame (){return bodavm.toolsFunc.dispatch(this, window, "window", "cancelAnimationFrame", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "cancelIdleCallback", {configurable:true, enumerable:true, writable:true, value:function cancelIdleCallback (){return bodavm.toolsFunc.dispatch(this, window, "window", "cancelIdleCallback", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "captureEvents", {configurable:true, enumerable:true, writable:true, value:function captureEvents (){return bodavm.toolsFunc.dispatch(this, window, "window", "captureEvents", arguments)}});
@ -770,8 +819,6 @@ bodavm.toolsFunc.windowdefineProperty(window, "stop", {configurable:true, enumer
bodavm.toolsFunc.windowdefineProperty(window, "structuredClone", {configurable:true, enumerable:true, writable:true, value:function structuredClone (){return bodavm.toolsFunc.dispatch(this, window, "window", "structuredClone", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "webkitCancelAnimationFrame", {configurable:true, enumerable:true, writable:true, value:function webkitCancelAnimationFrame (){return bodavm.toolsFunc.dispatch(this, window, "window", "webkitCancelAnimationFrame", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "webkitRequestAnimationFrame", {configurable:true, enumerable:true, writable:true, value:function webkitRequestAnimationFrame (){return bodavm.toolsFunc.dispatch(this, window, "window", "webkitRequestAnimationFrame", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "caches", {configurable:true, enumerable:true, get:function caches (){return bodavm.toolsFunc.dispatch(this, window, "window", "caches_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "cookieStore", {configurable:true, enumerable:true, get:function cookieStore (){return bodavm.toolsFunc.dispatch(this, window, "window", "cookieStore_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "ondevicemotion", {configurable:true, enumerable:true, get:function ondevicemotion (){return bodavm.toolsFunc.dispatch(this, window, "window", "ondevicemotion_get", arguments, null)}, set:function ondevicemotion (){return bodavm.toolsFunc.dispatch(this, window, "window", "ondevicemotion_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "ondeviceorientation", {configurable:true, enumerable:true, get:function ondeviceorientation (){return bodavm.toolsFunc.dispatch(this, window, "window", "ondeviceorientation_get", arguments, null)}, set:function ondeviceorientation (){return bodavm.toolsFunc.dispatch(this, window, "window", "ondeviceorientation_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "ondeviceorientationabsolute", {configurable:true, enumerable:true, get:function ondeviceorientationabsolute (){return bodavm.toolsFunc.dispatch(this, window, "window", "ondeviceorientationabsolute_get", arguments, null)}, set:function ondeviceorientationabsolute (){return bodavm.toolsFunc.dispatch(this, window, "window", "ondeviceorientationabsolute_set", arguments)}});
@ -780,11 +827,9 @@ bodavm.toolsFunc.windowdefineProperty(window, "AbsoluteOrientationSensor", {conf
bodavm.toolsFunc.windowdefineProperty(window, "Accelerometer", {configurable:true, enumerable:false, writable:true, value:function Accelerometer (){return bodavm.toolsFunc.dispatch(this, window, "window", "Accelerometer", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "AudioWorklet", {configurable:true, enumerable:false, writable:true, value:function AudioWorklet (){return bodavm.toolsFunc.dispatch(this, window, "window", "AudioWorklet", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Cache", {configurable:true, enumerable:false, writable:true, value:function Cache (){return bodavm.toolsFunc.dispatch(this, window, "window", "Cache", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "CacheStorage", {configurable:true, enumerable:false, writable:true, value:function CacheStorage (){return bodavm.toolsFunc.dispatch(this, window, "window", "CacheStorage", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Clipboard", {configurable:true, enumerable:false, writable:true, value:function Clipboard (){return bodavm.toolsFunc.dispatch(this, window, "window", "Clipboard", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "ClipboardItem", {configurable:true, enumerable:false, writable:true, value:function ClipboardItem (){return bodavm.toolsFunc.dispatch(this, window, "window", "ClipboardItem", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "CookieChangeEvent", {configurable:true, enumerable:false, writable:true, value:function CookieChangeEvent (){return bodavm.toolsFunc.dispatch(this, window, "window", "CookieChangeEvent", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "CookieStore", {configurable:true, enumerable:false, writable:true, value:function CookieStore (){return bodavm.toolsFunc.dispatch(this, window, "window", "CookieStore", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "CookieStoreManager", {configurable:true, enumerable:false, writable:true, value:function CookieStoreManager (){return bodavm.toolsFunc.dispatch(this, window, "window", "CookieStoreManager", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Credential", {configurable:true, enumerable:false, writable:true, value:function Credential (){return bodavm.toolsFunc.dispatch(this, window, "window", "Credential", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "CredentialsContainer", {configurable:true, enumerable:false, writable:true, value:function CredentialsContainer (){return bodavm.toolsFunc.dispatch(this, window, "window", "CredentialsContainer", arguments)}});
@ -944,9 +989,6 @@ bodavm.toolsFunc.windowdefineProperty(window, "showDirectoryPicker", {configurab
bodavm.toolsFunc.windowdefineProperty(window, "showOpenFilePicker", {configurable:true, enumerable:true, writable:true, value:function showOpenFilePicker (){return bodavm.toolsFunc.dispatch(this, window, "window", "showOpenFilePicker", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "showSaveFilePicker", {configurable:true, enumerable:true, writable:true, value:function showSaveFilePicker (){return bodavm.toolsFunc.dispatch(this, window, "window", "showSaveFilePicker", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "originAgentCluster", {configurable:true, enumerable:true, get:function originAgentCluster (){return bodavm.toolsFunc.dispatch(this, window, "window", "originAgentCluster_get", arguments, false)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "trustedTypes", {configurable:true, enumerable:true, get:function trustedTypes (){return bodavm.toolsFunc.dispatch(this, window, "window", "trustedTypes_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "navigation", {configurable:true, enumerable:true, get:function navigation (){return bodavm.toolsFunc.dispatch(this, window, "window", "navigation_get", arguments)}, set:function navigation (){return bodavm.toolsFunc.dispatch(this, window, "window", "navigation_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "speechSynthesis", {configurable:true, enumerable:true, get:function speechSynthesis (){return bodavm.toolsFunc.dispatch(this, window, "window", "speechSynthesis_get", arguments)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "onpointerrawupdate", {configurable:true, enumerable:true, get:function onpointerrawupdate (){return bodavm.toolsFunc.dispatch(this, window, "window", "onpointerrawupdate_get", arguments, null)}, set:function onpointerrawupdate (){return bodavm.toolsFunc.dispatch(this, window, "window", "onpointerrawupdate_set", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "crossOriginIsolated", {configurable:true, enumerable:true, get:function crossOriginIsolated (){return bodavm.toolsFunc.dispatch(this, window, "window", "crossOriginIsolated_get", arguments, false)}, set:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "scheduler", {configurable:true, enumerable:true, get:function scheduler (){return bodavm.toolsFunc.dispatch(this, window, "window", "scheduler_get", arguments)}, set:function scheduler (){return bodavm.toolsFunc.dispatch(this, window, "window", "scheduler_set", arguments)}});
@ -971,7 +1013,6 @@ bodavm.toolsFunc.windowdefineProperty(window, "SourceBuffer", {configurable:true
bodavm.toolsFunc.windowdefineProperty(window, "SourceBufferList", {configurable:true, enumerable:false, writable:true, value:function SourceBufferList (){return bodavm.toolsFunc.dispatch(this, window, "window", "SourceBufferList", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "MediaStreamTrack", {configurable:true, enumerable:false, writable:true, value:function MediaStreamTrack (){return bodavm.toolsFunc.dispatch(this, window, "window", "MediaStreamTrack", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "NavigateEvent", {configurable:true, enumerable:false, writable:true, value:function NavigateEvent (){return bodavm.toolsFunc.dispatch(this, window, "window", "NavigateEvent", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "Navigation", {configurable:true, enumerable:false, writable:true, value:function Navigation (){return bodavm.toolsFunc.dispatch(this, window, "window", "Navigation", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "NavigationCurrentEntryChangeEvent", {configurable:true, enumerable:false, writable:true, value:function NavigationCurrentEntryChangeEvent (){return bodavm.toolsFunc.dispatch(this, window, "window", "NavigationCurrentEntryChangeEvent", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "NavigationDestination", {configurable:true, enumerable:false, writable:true, value:function NavigationDestination (){return bodavm.toolsFunc.dispatch(this, window, "window", "NavigationDestination", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "NavigationHistoryEntry", {configurable:true, enumerable:false, writable:true, value:function NavigationHistoryEntry (){return bodavm.toolsFunc.dispatch(this, window, "window", "NavigationHistoryEntry", arguments)}});
@ -1002,7 +1043,6 @@ bodavm.toolsFunc.windowdefineProperty(window, "TrustedHTML", {configurable:true,
bodavm.toolsFunc.windowdefineProperty(window, "TrustedScript", {configurable:true, enumerable:false, writable:true, value:function TrustedScript (){return bodavm.toolsFunc.dispatch(this, window, "window", "TrustedScript", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "TrustedScriptURL", {configurable:true, enumerable:false, writable:true, value:function TrustedScriptURL (){return bodavm.toolsFunc.dispatch(this, window, "window", "TrustedScriptURL", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "TrustedTypePolicy", {configurable:true, enumerable:false, writable:true, value:function TrustedTypePolicy (){return bodavm.toolsFunc.dispatch(this, window, "window", "TrustedTypePolicy", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "TrustedTypePolicyFactory", {configurable:true, enumerable:false, writable:true, value:function TrustedTypePolicyFactory (){return bodavm.toolsFunc.dispatch(this, window, "window", "TrustedTypePolicyFactory", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "URLPattern", {configurable:true, enumerable:false, writable:true, value:function URLPattern (){return bodavm.toolsFunc.dispatch(this, window, "window", "URLPattern", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "VideoPlaybackQuality", {configurable:true, enumerable:false, writable:true, value:function VideoPlaybackQuality (){return bodavm.toolsFunc.dispatch(this, window, "window", "VideoPlaybackQuality", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "VirtualKeyboardGeometryChangeEvent", {configurable:true, enumerable:false, writable:true, value:function VirtualKeyboardGeometryChangeEvent (){return bodavm.toolsFunc.dispatch(this, window, "window", "VirtualKeyboardGeometryChangeEvent", arguments)}});
@ -1016,6 +1056,8 @@ bodavm.toolsFunc.windowdefineProperty(window, "openDatabase", {configurable:true
bodavm.toolsFunc.windowdefineProperty(window, "webkitRequestFileSystem", {configurable:true, enumerable:true, writable:true, value:function webkitRequestFileSystem (){return bodavm.toolsFunc.dispatch(this, window, "window", "webkitRequestFileSystem", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "webkitResolveLocalFileSystemURL", {configurable:true, enumerable:true, writable:true, value:function webkitResolveLocalFileSystemURL (){return bodavm.toolsFunc.dispatch(this, window, "window", "webkitResolveLocalFileSystemURL", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "vilame_setter", {configurable:true, enumerable:true, writable:true, value:{}});
bodavm.toolsFunc.windowdefineProperty(window, "code2", {configurable:true, enumerable:true, writable:true, value:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "code1", {configurable:true, enumerable:true, writable:true, value:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "dir", {configurable:true, enumerable:false, writable:true, value:function dir (){return bodavm.toolsFunc.dispatch(this, window, "window", "dir", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "dirxml", {configurable:true, enumerable:false, writable:true, value:function dirxml (){return bodavm.toolsFunc.dispatch(this, window, "window", "dirxml", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "profile", {configurable:true, enumerable:false, writable:true, value:function profile (){return bodavm.toolsFunc.dispatch(this, window, "window", "profile", arguments)}});
@ -1031,7 +1073,7 @@ bodavm.toolsFunc.windowdefineProperty(window, "unmonitor", {configurable:true, e
bodavm.toolsFunc.windowdefineProperty(window, "inspect", {configurable:true, enumerable:false, writable:true, value:function inspect (){return bodavm.toolsFunc.dispatch(this, window, "window", "inspect", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "copy", {configurable:true, enumerable:false, writable:true, value:function copy (){return bodavm.toolsFunc.dispatch(this, window, "window", "copy", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "queryObjects", {configurable:true, enumerable:false, writable:true, value:function queryObjects (){return bodavm.toolsFunc.dispatch(this, window, "window", "queryObjects", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "$_", {configurable:true, enumerable:false, writable:true, value:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "$_", {configurable:true, enumerable:false, writable:true, value:{}});
bodavm.toolsFunc.windowdefineProperty(window, "$0", {configurable:true, enumerable:false, writable:true, value:{}});
bodavm.toolsFunc.windowdefineProperty(window, "$1", {configurable:true, enumerable:false, writable:true, value:undefined});
bodavm.toolsFunc.windowdefineProperty(window, "$2", {configurable:true, enumerable:false, writable:true, value:undefined});
@ -1045,9 +1087,6 @@ bodavm.toolsFunc.windowdefineProperty(window, "unmonitorEvents", {configurable:t
bodavm.toolsFunc.windowdefineProperty(window, "$", {configurable:true, enumerable:false, writable:true, value:function $ (){return bodavm.toolsFunc.dispatch(this, window, "window", "$", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "$$", {configurable:true, enumerable:false, writable:true, value:function $$ (){return bodavm.toolsFunc.dispatch(this, window, "window", "$$", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "$x", {configurable:true, enumerable:false, writable:true, value:function $x (){return bodavm.toolsFunc.dispatch(this, window, "window", "$x", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "getProtoEnvCode", {configurable:true, enumerable:true, writable:true, value:function getProtoEnvCode (){return bodavm.toolsFunc.dispatch(this, window, "window", "getProtoEnvCode", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "getObjEnvCode", {configurable:true, enumerable:true, writable:true, value:function getObjEnvCode (){return bodavm.toolsFunc.dispatch(this, window, "window", "getObjEnvCode", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "getDescriptor", {configurable:true, enumerable:true, writable:true, value:function getDescriptor (){return bodavm.toolsFunc.dispatch(this, window, "window", "getDescriptor", arguments)}});
bodavm.toolsFunc.windowdefineProperty(window, "chrome", {
@ -1086,7 +1125,7 @@ eval = function (x) {
eval.toString = function () { return 'function eval() { [native code] }' }
window.Element.prototype[Symbol.unscopables] = {
window.bodavm.memory.globalobj['Element'].prototype[Symbol.unscopables] = {
after: true,
append: true,
before: true,
@ -1096,7 +1135,7 @@ window.Element.prototype[Symbol.unscopables] = {
replaceWith: true,
slot: true,
};
window.Element.prototype[Symbol.unscopables].__proto__ = null;
window.bodavm.memory.globalobj['Element'].prototype[Symbol.unscopables].__proto__ = null;
// debugger
// Object.defineProperty(this, 'window', {
// get: function window() {

File diff suppressed because it is too large Load Diff

View File

@ -3,14 +3,18 @@ window=bodavm.toolsFunc.proxy(window,"window")
// CSS=bodavm.toolsFunc.proxy(CSS,"CSS");
// performance=bodavm.toolsFunc.proxy(performance,'performance')
// // Storage=bodavm.toolsFunc.proxy(Storage,Storage)
// database=bodavm.toolsFunc.proxy(database,'database')
// navigation=bodavm.toolsFunc.proxy(navigation,'navigation')
// webkitStorageInfo=bodavm.toolsFunc.proxy(webkitStorageInfo,'webkitStorageInfo')
// speechSynthesis=bodavm.toolsFunc.proxy(speechSynthesis,'speechSynthesis')
// localStorage=bodavm.toolsFunc.proxy(localStorage,"localStorage")
// sessionStorage=bodavm.toolsFunc.proxy(sessionStorage,"sessionStorage")
// location=bodavm.toolsFunc.proxy(location,"location")
// customElements=bodavm.toolsFunc.proxy(customElements,'customElements')
// document=bodavm.toolsFunc.proxy(document,"document")
// menubar=bodavm.toolsFunc.proxy(menubar,'menubar')
// toolbar=bodavm.toolsFunc.proxy(toolbar,'toolbar')

View File

@ -281,88 +281,6 @@
}, 'bobo');
return proxyObj;
}
// bodavm.toolsFunc.proxy = function (obj, objName) {
// // bodavm.toolsFunc.symbolProperty(obj)
// bodavm.memory.globalobj[objName]=obj
// if (bodavm.config.proxy == false) { return obj };
// if(bodavm.memory.symbolProxy in obj){// 判断对象obj是否是已代理的对象
// return obj[bodavm.memory.symbolProxy];
// }
// let handler = {
// get(target, prop, receiver) {
// if(prop =='_createHelper'){debugger}
// if (prop == 'onmessage'){debugger}
// let result = Reflect.get(target, prop, receiver)
// // if (target ==window.$_ts._$Aw){return result }
// if (bodavm.toolsFunc.filterProxyProp(prop)) {
// return result;
// }
// if (prop ==hasOwnProperty){debugger}
// // let mylog=
// console.log('['+objName+']', ' 获取属性: ', prop, ' value: ', result);
// if (typeof result =='function'){
// myloglist.push({ 'type': 'get:'+objName , 'prop0': prop, 'prop1': result.toString() })
// }
// else {
// if (!result){
// myundefinedlist.push({ 'type': 'get:'+objName , 'prop0': prop, 'prop1': result })
// }
// myloglist.push({ 'type': 'get:'+objName , 'prop0': prop, 'prop1': result })
// }
// if (result instanceof Object) {
// // bodavm.toolsFunc.symbolProperty(result)
// // return bodavm.toolsFunc.proxy(result, `${objName}.${prop.toString()}`)
// }
// return result;
// },
// set(target, propKey, value, receiver) {
// // debugger
// if (objName=='window'&& propKey){
// bodavm.memory.window[propKey]=value
// }
// console.log('['+objName+']', " 设置属性: ", propKey, " value: ", value);
// if (typeof value =='function'){
// myloglist.push({ 'type': 'set:'+ objName, 'prop0': propKey, 'prop1': value.toString() })
// }
// else{
// if (!value){
// myundefinedlist.push({ 'type':'set:'+ objName , 'prop0': propKey, 'prop1': value })
// }
// myloglist.push({ 'type':'set:'+ objName , 'prop0': propKey, 'prop1': value })
// }
// let res=Reflect.set(target, propKey, value, receiver);
// // bodavm.toolsFunc.symbolProperty(res)
// return res
// }
// };
// // debugger
// let proxyObj = new Proxy(obj, handler);
// // Object.defineProperty(obj, bodavm.memory.symbolProxy, {
// // configurable:false,
// // enumerable:false,
// // writable:false,
// // value:proxyObj
// // });
// return proxyObj;
// }
// return bodavm.toolsFunc.dispatch(this,Document.prototype,"Document","implementation_get",arguments,)
//env函数分发器
bodavm.toolsFunc.dispatch = function dispatch(self, obj, objName, funcName, argList, defaultValue) {
//obj Document.prototype
//obj loction
@ -437,12 +355,18 @@
}
newDescriptior.set = set;
}
// if (bodavm.memory.globalobj[prop]){
// // debugger
// Object.defineProperty(obj[prop], bodavm.memory.globalobj[prop]?bodavm.memory.globalobj[prop]:prop, newDescriptior, 'bobo')
// }else{
// // debugger
Object.defineProperty(obj, prop, newDescriptior, 'bobo')
}
// let name=obj.name?obj.name:obj.constructor.name
};
// };
//定义对象属性 defineProperty
bodavm.toolsFunc.defineProperty = function defineProperty(obj, prop, OldDescriptior, proto) {