diff --git a/env_xbb_lastest_bo/tools/envFunc.js b/env_xbb_lastest_bo/tools/envFunc.js index 33014cfa..1989417f 100644 --- a/env_xbb_lastest_bo/tools/envFunc.js +++ b/env_xbb_lastest_bo/tools/envFunc.js @@ -1,759 +1,427 @@ // 浏览器接口具体的实现 !function () { - bodavm.envFunc.window_onmessage_get = function window_onmessage_get() { - if (bodavm.config.isdebug) { debugger };; - let onmessage = bodavm.memory.window['onmessage'] ? bodavm.memory.window['onmessage'] : null - console.log(`window_onmessage_get `, `onmessage:${onmessage}`); - return onmessage - } - - bodavm.envFunc.window_onbeforeunload_get=function window_onbeforeunload_get(){ - - let onbeforeunload=bodavm.memory.window['onbeforeunload'] - console.log(`window_onbeforeunload_get` ,`onbeforeunload:${onbeforeunload}`); - return onbeforeunload - } - bodavm.envFunc.window_onbeforeunload_set=function window_onbeforeunload_set(){ - let onbeforeunload=arguments[0] - console.log(`window_onbeforeunload_set `,`onbeforeunload:${onbeforeunload}`); - bodavm.memory.window['onbeforeunload']=onbeforeunload - return onbeforeunload - } - bodavm.envFunc.window_openDatabase = function window_openDatabase() { - // let data=arguments[0] + bodavm.envFunc.XMLHttpRequestEventTarget_onabort_set=function XMLHttpRequestEventTarget_onabort_set(){ // debugger - // let database={} - // database.__proto__= Database.prototype - console.log(`window_openDatabase `, database); - bodavm.toolsFunc.symbolProperty(database) - return database - } - bodavm.envFunc.window_matchMedia = function window_matchMedia() { - let arg = arguments[0] - let media = {} - media.__proto__ = MediaQueryList.prototype - - bodavm.toolsFunc.symbolProperty(media) - console.log(`window_matchMedia `, media); - return media - } - bodavm.envFunc.window_onmessage_set = function window_onmessage_set() { - if (bodavm.config.isdebug) { debugger };; - let onmessage = arguments[0] - bodavm.memory.window['onmessage'] = onmessage - console.log(`window_onmessage_set `, `onmessage:${onmessage}`); - return onmessage - } - bodavm.envFunc.window_devicePixelRatio_set = function () { - let device = arguments[0] - bodavm.memory.window['devicePixelRatio'] = device - console.log(`window_devicePixelRatio_set `, `device:${device}`); - return device - } - bodavm.envFunc.window_devicePixelRatio_get = function window_devicePixelRatio_get() { - let device = bodavm.memory.window['devicePixelRatio'] - console.log(`window_devicePixelRatio_get `, `device:${device}`); - return device - } - bodavm.envFunc.window_getComputedStyle = function getComputedStyle() { - let element = arguments[0] - let option = arguments[1] - let style = {} - if (bodavm.config.isdebug) { debugger };; - - console.log(`window_getComputedStyle `, `element:${element} `, `option:${option} `, '未完善'); - style.__proto__ = CSSStyleDeclaration.prototype - // style对象 - bodavm.toolsFunc.defineProperty(style, "accentColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "additiveSymbols", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "alignContent", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "alignItems", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "alignSelf", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "alignmentBaseline", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "all", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "animation", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "animationDelay", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "animationDirection", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "animationDuration", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "animationFillMode", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "animationIterationCount", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "animationName", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "animationPlayState", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "animationTimingFunction", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "appRegion", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "appearance", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "ascentOverride", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "aspectRatio", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "backdropFilter", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "backfaceVisibility", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "background", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "backgroundAttachment", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "backgroundBlendMode", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "backgroundClip", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "backgroundColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "backgroundImage", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "backgroundOrigin", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "backgroundPosition", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "backgroundPositionX", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "backgroundPositionY", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "backgroundRepeat", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "backgroundRepeatX", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "backgroundRepeatY", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "backgroundSize", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "basePalette", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "baselineShift", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "blockSize", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "border", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBlock", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBlockColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBlockEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBlockEndColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBlockEndStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBlockEndWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBlockStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBlockStartColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBlockStartStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBlockStartWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBlockStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBlockWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBottom", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBottomColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBottomLeftRadius", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBottomRightRadius", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBottomStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderBottomWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderCollapse", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderEndEndRadius", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderEndStartRadius", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderImage", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderImageOutset", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderImageRepeat", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderImageSlice", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderImageSource", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderImageWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderInline", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderInlineColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderInlineEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderInlineEndColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderInlineEndStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderInlineEndWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderInlineStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderInlineStartColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderInlineStartStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderInlineStartWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderInlineStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderInlineWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderLeft", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderLeftColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderLeftStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderLeftWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderRadius", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderRight", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderRightColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderRightStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderRightWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderSpacing", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderStartEndRadius", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderStartStartRadius", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderTop", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderTopColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderTopLeftRadius", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderTopRightRadius", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderTopStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderTopWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "borderWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "bottom", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "boxShadow", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "boxSizing", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "breakAfter", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "breakBefore", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "breakInside", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "bufferedRendering", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "captionSide", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "caretColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "clear", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "clip", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "clipPath", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "clipRule", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "color", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "colorInterpolation", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "colorInterpolationFilters", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "colorRendering", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "colorScheme", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "columnCount", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "columnFill", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "columnGap", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "columnRule", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "columnRuleColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "columnRuleStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "columnRuleWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "columnSpan", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "columnWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "columns", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "contain", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "containIntrinsicBlockSize", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "containIntrinsicHeight", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "containIntrinsicInlineSize", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "containIntrinsicSize", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "containIntrinsicWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "content", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "contentVisibility", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "counterIncrement", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "counterReset", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "counterSet", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "cursor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "cx", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "cy", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "d", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "descentOverride", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "direction", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "display", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "dominantBaseline", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "emptyCells", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fallback", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fill", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fillOpacity", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fillRule", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "filter", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "flex", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "flexBasis", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "flexDirection", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "flexFlow", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "flexGrow", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "flexShrink", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "flexWrap", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "float", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "floodColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "floodOpacity", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "font", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontDisplay", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontFamily", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontFeatureSettings", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontKerning", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontOpticalSizing", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontPalette", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontSize", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontStretch", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontSynthesis", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontSynthesisSmallCaps", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontSynthesisStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontSynthesisWeight", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontVariant", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontVariantCaps", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontVariantEastAsian", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontVariantLigatures", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontVariantNumeric", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontVariationSettings", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "fontWeight", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "forcedColorAdjust", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gap", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "grid", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridArea", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridAutoColumns", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridAutoFlow", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridAutoRows", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridColumn", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridColumnEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridColumnGap", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridColumnStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridGap", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridRow", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridRowEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridRowGap", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridRowStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridTemplate", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridTemplateAreas", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridTemplateColumns", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "gridTemplateRows", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "height", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "hyphens", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "imageOrientation", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "imageRendering", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "inherits", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "initialValue", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "inlineSize", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "inset", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "insetBlock", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "insetBlockEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "insetBlockStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "insetInline", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "insetInlineEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "insetInlineStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "isolation", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "justifyContent", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "justifyItems", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "justifySelf", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "left", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "letterSpacing", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "lightingColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "lineBreak", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "lineGapOverride", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "lineHeight", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "listStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "listStyleImage", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "listStylePosition", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "listStyleType", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "margin", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "marginBlock", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "marginBlockEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "marginBlockStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "marginBottom", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "marginInline", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "marginInlineEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "marginInlineStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "marginLeft", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "marginRight", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "marginTop", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "marker", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "markerEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "markerMid", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "markerStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "mask", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "maskType", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "maxBlockSize", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "maxHeight", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "maxInlineSize", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "maxWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "maxZoom", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "minBlockSize", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "minHeight", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "minInlineSize", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "minWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "minZoom", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "mixBlendMode", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "negative", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "objectFit", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "objectPosition", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "offset", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "offsetDistance", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "offsetPath", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "offsetRotate", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "opacity", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "order", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "orientation", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "orphans", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "outline", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "outlineColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "outlineOffset", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "outlineStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "outlineWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "overflow", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "overflowAnchor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "overflowClipMargin", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "overflowWrap", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "overflowX", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "overflowY", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "overrideColors", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "overscrollBehavior", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "overscrollBehaviorBlock", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "overscrollBehaviorInline", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "overscrollBehaviorX", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "overscrollBehaviorY", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "pad", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "padding", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "paddingBlock", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "paddingBlockEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "paddingBlockStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "paddingBottom", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "paddingInline", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "paddingInlineEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "paddingInlineStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "paddingLeft", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "paddingRight", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "paddingTop", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "page", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "pageBreakAfter", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "pageBreakBefore", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "pageBreakInside", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "pageOrientation", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "paintOrder", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "perspective", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "perspectiveOrigin", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "placeContent", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "placeItems", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "placeSelf", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "pointerEvents", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "position", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "prefix", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "quotes", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "r", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "range", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "resize", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "right", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "rowGap", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "rubyPosition", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "rx", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "ry", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollBehavior", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollMargin", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollMarginBlock", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollMarginBlockEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollMarginBlockStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollMarginBottom", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollMarginInline", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollMarginInlineEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollMarginInlineStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollMarginLeft", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollMarginRight", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollMarginTop", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollPadding", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollPaddingBlock", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollPaddingBlockEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollPaddingBlockStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollPaddingBottom", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollPaddingInline", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollPaddingInlineEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollPaddingInlineStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollPaddingLeft", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollPaddingRight", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollPaddingTop", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollSnapAlign", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollSnapStop", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollSnapType", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "scrollbarGutter", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "shapeImageThreshold", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "shapeMargin", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "shapeOutside", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "shapeRendering", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "size", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "sizeAdjust", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "speak", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "speakAs", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "src", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "stopColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "stopOpacity", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "stroke", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "strokeDasharray", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "strokeDashoffset", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "strokeLinecap", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "strokeLinejoin", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "strokeMiterlimit", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "strokeOpacity", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "strokeWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "suffix", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "symbols", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "syntax", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "system", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "tabSize", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "tableLayout", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textAlign", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textAlignLast", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textAnchor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textCombineUpright", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textDecoration", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textDecorationColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textDecorationLine", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textDecorationSkipInk", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textDecorationStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textDecorationThickness", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textEmphasis", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textEmphasisColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textEmphasisPosition", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textEmphasisStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textIndent", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textOrientation", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textOverflow", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textRendering", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textShadow", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textSizeAdjust", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textTransform", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textUnderlineOffset", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "textUnderlinePosition", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "top", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "touchAction", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "transform", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "transformBox", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "transformOrigin", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "transformStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "transition", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "transitionDelay", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "transitionDuration", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "transitionProperty", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "transitionTimingFunction", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "unicodeBidi", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "unicodeRange", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "userSelect", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "userZoom", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "vectorEffect", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "verticalAlign", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "visibility", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitAlignContent", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitAlignItems", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitAlignSelf", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitAnimation", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitAnimationDelay", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitAnimationDirection", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitAnimationDuration", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitAnimationFillMode", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitAnimationIterationCount", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitAnimationName", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitAnimationPlayState", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitAnimationTimingFunction", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitAppRegion", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitAppearance", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBackfaceVisibility", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBackgroundClip", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBackgroundOrigin", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBackgroundSize", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderAfter", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderAfterColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderAfterStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderAfterWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderBefore", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderBeforeColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderBeforeStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderBeforeWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderBottomLeftRadius", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderBottomRightRadius", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderEndColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderEndStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderEndWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderHorizontalSpacing", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderImage", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderRadius", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderStartColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderStartStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderStartWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderTopLeftRadius", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderTopRightRadius", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBorderVerticalSpacing", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBoxAlign", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBoxDecorationBreak", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBoxDirection", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBoxFlex", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBoxOrdinalGroup", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBoxOrient", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBoxPack", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBoxReflect", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBoxShadow", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitBoxSizing", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitClipPath", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitColumnBreakAfter", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitColumnBreakBefore", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitColumnBreakInside", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitColumnCount", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitColumnGap", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitColumnRule", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitColumnRuleColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitColumnRuleStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitColumnRuleWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitColumnSpan", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitColumnWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitColumns", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitFilter", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitFlex", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitFlexBasis", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitFlexDirection", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitFlexFlow", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitFlexGrow", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitFlexShrink", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitFlexWrap", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitFontFeatureSettings", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitFontSmoothing", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitHighlight", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitHyphenateCharacter", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitJustifyContent", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitLineBreak", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitLineClamp", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitLocale", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitLogicalHeight", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitLogicalWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMarginAfter", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMarginBefore", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMarginEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMarginStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMask", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskBoxImage", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskBoxImageOutset", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskBoxImageRepeat", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskBoxImageSlice", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskBoxImageSource", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskBoxImageWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskClip", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskComposite", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskImage", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskOrigin", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskPosition", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskPositionX", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskPositionY", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskRepeat", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskRepeatX", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskRepeatY", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaskSize", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaxLogicalHeight", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMaxLogicalWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMinLogicalHeight", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitMinLogicalWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitOpacity", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitOrder", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitPaddingAfter", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitPaddingBefore", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitPaddingEnd", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitPaddingStart", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitPerspective", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitPerspectiveOrigin", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitPerspectiveOriginX", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitPerspectiveOriginY", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitPrintColorAdjust", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitRtlOrdering", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitRubyPosition", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitShapeImageThreshold", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitShapeMargin", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitShapeOutside", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTapHighlightColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTextCombine", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTextDecorationsInEffect", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTextEmphasis", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTextEmphasisColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTextEmphasisPosition", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTextEmphasisStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTextFillColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTextOrientation", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTextSecurity", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTextSizeAdjust", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTextStroke", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTextStrokeColor", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTextStrokeWidth", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTransform", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTransformOrigin", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTransformOriginX", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTransformOriginY", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTransformOriginZ", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTransformStyle", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTransition", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTransitionDelay", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTransitionDuration", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTransitionProperty", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitTransitionTimingFunction", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitUserDrag", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitUserModify", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitUserSelect", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "webkitWritingMode", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "whiteSpace", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "widows", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "width", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "willChange", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "wordBreak", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "wordSpacing", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "wordWrap", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "writingMode", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "x", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "y", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "zIndex", {configurable:true, enumerable:true, writable:true, value:""}); - bodavm.toolsFunc.defineProperty(style, "zoom", {configurable:true, enumerable:true, writable:true, value:""}); - - bodavm.toolsFunc.symbolProperty(style) - return style + // this._boarg= + if (arguments.length >1){return bodavm.toolsFunc.throwError('TypeError','XMLHttpRequestEventTarget_onabort_set')} + let arg=arguments[0] + this._boarg.onabort=arg + console.log(`XMLHttpRequestEventTarget_onabort_set` ,`arg->${arg}`); + return arg } - bodavm.envFunc.window_innerWidth_get = function window_innerWidth_get() { - let innerWidth = bodavm.memory.window['innerWidth'] - console.log("window_innerWidth_get ", innerWidth) - return innerWidth + bodavm.envFunc.XMLHttpRequestEventTarget_onerror_set=function XMLHttpRequestEventTarget_onerror_set(){ + // debugger + // this._boarg= + if (arguments.length >1){return bodavm.toolsFunc.throwError('TypeError','XMLHttpRequestEventTarget_onerror_set')} + let arg=arguments[0] + this._boarg.onerror=arg + console.log(`XMLHttpRequestEventTarget_onerror_set` ,`arg->${arg}`); + return arg } - bodavm.envFunc.window_innerHeight_get = function window_innerHeight_get() { - let innerHeight = bodavm.memory.window['innerHeight'] - - console.log("window_innerHeight_get ", innerHeight) - return innerHeight + bodavm.envFunc.XMLHttpRequestEventTarget_onload_set=function XMLHttpRequestEventTarget_onload_set(){ + if (arguments.length >1){return bodavm.toolsFunc.throwError('TypeError','XMLHttpRequestEventTarget_onload_set')} + let arg=arguments[0] + this._boarg.onload=arg + console.log(`XMLHttpRequestEventTarget_onload_set` ,`arg->${arg}`); + return arg + } + bodavm.envFunc.XMLHttpRequestEventTarget_onloadend_set=function XMLHttpRequestEventTarget_onloadend_set(){ + if (arguments.length >1){return bodavm.toolsFunc.throwError('TypeError','XMLHttpRequestEventTarget_onloadend_set')} + let arg=arguments[0] + this._boarg.onloadend=arg + console.log(`XMLHttpRequestEventTarget_onloadend_set` ,`arg->${arg}`); + return arg + } + bodavm.envFunc.XMLHttpRequestEventTarget_onloadstart_set=function XMLHttpRequestEventTarget_onloadstart_set(){ + if (arguments.length >1){return bodavm.toolsFunc.throwError('TypeError','XMLHttpRequestEventTarget_onloadstart_set')} + let arg=arguments[0] + this._boarg.onloadstart=arg + console.log(`XMLHttpRequestEventTarget_onloadstart_set` ,`arg->${arg}`); + return arg } - bodavm.envFunc.window_outerWidth_get = function window_outerWidth_get() { - let outerWidth = bodavm.memory.window['outerWidth'] - console.log("window_outerWidth_get ", outerWidth) - return outerWidth + bodavm.envFunc.XMLHttpRequestEventTarget_onprogress_set=function XMLHttpRequestEventTarget_onprogress_set(){ + if (arguments.length >1){return bodavm.toolsFunc.throwError('TypeError','XMLHttpRequestEventTarget_onprogress_set')} + let arg=arguments[0] + this._boarg.onprogress=arg + console.log(`XMLHttpRequestEventTarget_onprogress_set` ,`arg->${arg}`); + return arg } - bodavm.envFunc.window_outerHeight_get = function window_outerHeight_get() { - let outerHeight = bodavm.memory.window['outerHeight'] - console.log("window_outerHeight_get ", outerHeight) - return outerHeight + bodavm.envFunc.XMLHttpRequestEventTarget_ontimeout_set=function XMLHttpRequestEventTarget_ontimeout_set(){ + if (arguments.length >1){return bodavm.toolsFunc.throwError('TypeError','XMLHttpRequestEventTarget_ontimeout_set')} + let arg=arguments[0] + this._boarg.ontimeout=arg + console.log(`XMLHttpRequestEventTarget_ontimeout_set` ,`arg->${arg}`); + return arg } - bodavm.envFunc.window_status_get = function window_status_get() { - let status = bodavm.memory.window['status'] - console.log("window_status_get ", status) + + + bodavm.envFunc.XMLHttpRequest_upload_get=function XMLHttpRequest_upload_get(){ + let upload=this._boarg.upload + console.log(`XMLHttpRequestEventTarget_upload_get ` ,`upload -> ${upload}`); + return upload + } + bodavm.envFunc.XMLHttpRequestEventTarget_ontimeout_get=function XMLHttpRequestEventTarget_ontimeout_get(){ + let ontimeout=this._boarg.ontimeout + console.log(`XMLHttpRequestEventTarget_ontimeout_get ` ,`ontimeout -> ${ontimeout}`); + return ontimeout + } + bodavm.envFunc.XMLHttpRequestEventTarget_onprogress_get=function XMLHttpRequestEventTarget_onprogress_get(){ + let onprogress=this._boarg.onprogress + console.log(`XMLHttpRequestEventTarget_onprogress_get ` ,`onprogress -> ${onprogress}`); + return onprogress + } + bodavm.envFunc.XMLHttpRequestEventTarget_onloadend_get=function XMLHttpRequestEventTarget_onloadend_get(){ + let onloadend=this._boarg.onloadend + console.log(`XMLHttpRequestEventTarget_onloadend_get ` ,`onloadend -> ${onloadend}`); + return onloadend + } + bodavm.envFunc.XMLHttpRequestEventTarget_onloadstart_get=function XMLHttpRequestEventTarget_onloadstart_get(){ + // debugger + let onloadstart=this._boarg.onloadstart + console.log(`XMLHttpRequestEventTarget_onloadstart_get ` ,`onloadstart -> ${onloadstart}`); + return onloadstart + } + bodavm.envFunc.XMLHttpRequestEventTarget_onerror_get=function XMLHttpRequestEventTarget_onerror_get(){ + let onerror=this._boarg.onerror + console.log(`XMLHttpRequestEventTarget_onerror_get ` ,`onerror -> ${onerror}`); + return onerror + } + bodavm.envFunc.XMLHttpRequestEventTarget_onload_get=function XMLHttpRequestEventTarget_onload_get(){ + let onload=this._boarg.onload + console.log(`XMLHttpRequestEventTarget_onload_get ` ,`onerror -> ${onload}`); + return onload + } + bodavm.envFunc.XMLHttpRequestEventTarget_onabort_get=function XMLHttpRequestEventTarget_onabort_get(){ + // debugger + let onabort=this._boarg.onabort + console.log(`XMLHttpRequestEventTarget_onabort_get ` ,`onabort -> ${onabort}`); + return onabort + } + bodavm.envFunc.XMLHttpRequest_withCredentials_set=function XMLHttpRequest_withCredentials_set(){ + debugger + let arg=arguments[0] + this._boarg.withCredentials =arg + console.log(`XMLHttpRequest_withCredentials_set ` ,`arg -> ${arg}`); + return arg + } + bodavm.envFunc.CanvasRenderingContext2D_shadowBlur_set=function CanvasRenderingContext2D_shadowBlur_set(){ + // debugger + if (bodavm.config.isdebug) { debugger }; + let shadowBlur=arguments[0] + this._bocanvas.shadowBlur=shadowBlur + console.log(`CanvasRenderingContext2D_shadowBlur_set `,`shadowBlur ->${shadowBlur}` ); + return shadowBlur + } + bodavm.envFunc.CanvasRenderingContext2D_arc=function CanvasRenderingContext2D_arc(){ + // debugger + let arg=arguments[0] + let arg1=arguments[1] + let arg2=arguments[2] + let arg3=arguments[3] + let arg4=arguments[4] + this._bocanvas.arc(arg,arg1,arg2,arg3,arg4) + //无返回值 + console.log(`CanvasRenderingContext2D_arc `,`arg->${arg} arg1->${arg1} arg2->${arg2} arg2->${arg2} arg3->${arg3} arg4->${arg4}`); + + } + bodavm.envFunc.CanvasRenderingContext2D_stroke=function CanvasRenderingContext2D_stroke(){ + // debugger + //无返回值 + this._bocanvas.stroke() + console.log(`CanvasRenderingContext2D_stroke `); + } + bodavm.envFunc.HTMLScriptElement_text_set=function HTMLScriptElement_text_set(){ + if (bodavm.config.isdebug) { debugger }; + let arg=arguments[0] + this._boarg.text=arg + console.log(`HTMLScriptElement_text_set `,`arg -> ${arg}`); + return arg + } + + bodavm.envFunc.Permissions_query=function Permissions_query(){ + // debugger + let query=arguments[0] + if (query['name'] =='geolocation'){ + let res={} + res.__proto__=PermissionStatus.prototype + let promise = new Promise((resolve, reject) => { + resolve(res) + }) + console.log(`Permissions_query `,`res ->${promise}`); + + return promise + }else{ + console.log(`Permissions_query `,`${query} 未实现`); + } + + + } + bodavm.envFunc.Document_images_get=function (){ + let imgs=bodaobj.document.images + if (bodavm.config.isdebug) { debugger }; + + let res={} + res.__proto__=HTMLCollection.prototype + res._boarg=imgs + console.log(`Document_images_get `,`res -> ${res}`); + return res + } + bodavm.envFunc.Navigator_deviceMemory_get=function Navigator_deviceMemory_get(){ + let deviceMemory=bodavm.memory.navigator['deviceMemory'] + if (bodavm.config.isdebug) { debugger }; + + console.log(`Navigator_deviceMemory_get `,`deviceMemory ->${deviceMemory}`); + return deviceMemory + } + + bodavm.envFunc.Navigator_credentials_get=function Navigator_credentials_get(){ + let credentials={} + if (bodavm.config.isdebug) { debugger }; + + credentials.__proto__=CredentialsContainer.prototype + console.log(`Navigator_credentials_get `,`credentials ->${credentials}`); + return credentials + } + bodavm.envFunc.Navigator_storage_get=function Navigator_storage_get(){ + let storage={} + if (bodavm.config.isdebug) { debugger }; + storage.__proto__=StorageManager.prototype + console.log(`Navigator_storage_get `,`storage ->${storage}`); + return storage + } + bodavm.envFunc.Navigator_maxTouchPoints_get=function Navigator_maxTouchPoints_get(){ + let maxTouchPoints=bodavm.memory.navigator['maxTouchPoints'] + if (bodavm.config.isdebug) { debugger }; + + console.log(`Navigator_maxTouchPoints_get `,`maxTouchPoints ->${maxTouchPoints}`); + return maxTouchPoints + } + bodavm.envFunc.Navigator_bluetooth_get=function Navigator_bluetooth_get(){ + let bluetooth={} + bluetooth.__proto__=Bluetooth.prototype + if (bodavm.config.isdebug) { debugger }; + + console.log(`Navigator_bluetooth_get `,`bluetooth ->${bluetooth}`); + return bluetooth + } + bodavm.envFunc.Navigator_vendorSub_get=function Navigator_vendorSub_get(){ + let vendorSub=bodavm.memory.navigator['vendorSub'] + if (bodavm.config.isdebug) { debugger }; + + console.log(`Navigator_vendorSub_get `,`vendorSub ->${vendorSub}`); + return vendorSub + } + bodavm.envFunc.Navigator_product_get=function Navigator_product_get(){ + let product=bodavm.memory.navigator['product'] + if (bodavm.config.isdebug) { debugger }; + + console.log(`Navigator_product_get `,`product ->${product}`); + return product + } + bodavm.envFunc.Navigator_doNotTrack_get=function Navigator_doNotTrack_get(){ + let doNotTrack=null + if (bodavm.config.isdebug) { debugger }; + + console.log(`Navigator_doNotTrack_get `,`doNotTrack ->${doNotTrack}`); + return doNotTrack + } + bodavm.envFunc.RTCPeerConnection_createDataChannel = function RTCPeerConnection_createDataChannel() { + let label = arguments[0] + let options = arguments[1] + if (bodavm.config.isdebug) { debugger }; + if (label =='label'){ + let DataChannel={} + DataChannel.__proto__=RTCDataChannel.prototype + console.log(`RTCPeerConnection_createDataChannel `, `label->${label} `, `options->${options} `, `DataChannel->${DataChannel} `); + return DataChannel + } + + + } + bodavm.envFunc.RTCPeerConnection_onicegatheringstatechange_set=function RTCPeerConnection_onicegatheringstatechange_set(){ + if (bodavm.config.isdebug) { debugger }; + + let change=arguments[0] + this._onicegatheringstatechange=change + console.log(`RTCPeerConnection_onicegatheringstatechange_set `,`onicegatheringstatechange ->${_onicegatheringstatechange}`); + return change + } + bodavm.envFunc.window_Image=function window_Image(){ + let domimg=bodaobj.window.Image.apply(this,arguments) + let img={} + if (bodavm.config.isdebug) { debugger }; + + img.__proto__=HTMLImageElement.prototype + img._boarg=domimg + console.log(`window_Image `,` img->${img}`); + return img + } + + + bodavm.envFunc.WebGLRenderingContext_getContextAttributes=function WebGLRenderingContext_getContextAttributes(){ + if (bodavm.config.isdebug) { debugger }; + + let context={ + "alpha": true, + "antialias": true, + "depth": true, + "desynchronized": false, + "failIfMajorPerformanceCaveat": false, + "powerPreference": "default", + "premultipliedAlpha": true, + "preserveDrawingBuffer": false, + "stencil": false, + "xrCompatible": false + } + console.log(`WebGLRenderingContext_getContextAttributes `,`context->${JSON.stringify(context)}`); + return context + } + + bodavm.envFunc.document_write=function document_write(){ + let html=arguments[0] + bodaobj.document.write(html) + console.log(`document_write `,`html ->${html}`); + } + bodavm.envFunc.window_frames_get=function window_frames_get(){ + let iframe=bodaobj.window + console.log(`window_frames_get `,` 返回的为jsdom中的window`); + iframe=bodavm.toolsFunc.proxy(iframe,'iframewinodow') + return iframe + } + bodavm.envFunc.window_closed_get=function window_closed_get(){ + let closed=bodaobj.window.closed; + console.log(`window_closed_get `,` 返回的为jsdom中的window.closed->${closed}`); + return closed + + } + bodavm.envFunc.window_status_get=function window_status_get(){ + let status=bodaobj.window.status; + console.log(`window_closed_get `,` 返回的为jsdom中的window.status->${status}`); return status } - bodavm.envFunc.window_closed_get = function window_closed_get() { - console.log("window_closed_get ", false) - return false - } - bodavm.envFunc.window_frames_get = function window_frames_get() { - console.log("window_frames_get ", `window`, `未完善`) - return window - } - bodavm.envFunc.window_length_get = function window_length_get() { - let leng_ = bodavm.memory.window['length'] - console.log("window_length_get ", leng_) - - return leng_ - } - bodavm.envFunc.window_parent_get = function window_parent_get() { console.log("window_parent_get ", window); return window } - bodavm.envFunc.window_frameElement_get = function window_frameElement_get() { - console.log("window_frameElement_get ", null) - return null - } - bodavm.envFunc.window_origin_get = function window_origin_get() { - let origin = bodavm.memory.window['origin'] - console.log("window_origin_get ", origin) + bodavm.envFunc.window_origin_get=function window_origin_get(){ + let origin=bodaobj.window.origin; + console.log(`window_origin_get `,` 返回的为jsdom中的window.origin->${origin}`); return origin } - bodavm.envFunc.window_scrollX_get = function window_scrollX_get() { - - console.log("window_scrollX_get ", 0) - return 0 - } - bodavm.envFunc.window_pageXOffset_get = function window_pageXOffset_get() { - console.log("window_pageXOffset_get ", 0) - return 0 - } - bodavm.envFunc.window_scrollY_get = function window_scrollY_get() { - console.log("window_scrollY_get ", 0) - return 0 - } - bodavm.envFunc.window_pageYOffset_get = function window_pageYOffset_get() { - console.log("window_pageYOffset_get ", 0) - return 0 + bodavm.envFunc.window_onmessage_get=function window_onmessage_get(){ + let onmessage=bodaobj.window.onmessage; + console.log(`window_onmessage_get `,` 返回的为jsdom中的window.onmessage ->${onmessage}`); + return onmessage } + - bodavm.envFunc.window_screenX_get = function window_screenX_get() { console.log("window_screenX_get ", 0); return 0 } - bodavm.envFunc.window_screenY_get = function window_screenY_get() { console.log("window_screenY_get ", 0); return 0 } - - bodavm.envFunc.window_screenLeft_get = function window_screenLeft_get() { console.log("window_screenLeft_get ", 0); return 0 } - bodavm.envFunc.window_screenTop_get = function window_screenTop_get() { console.log("window_screenTop_get ", 0); return 0 } - - bodavm.envFunc.window_defaultStatus_get = function window_defaultStatus_get() { - let defaultStatus = bodavm.memory.window['defaultStatus'] - console.log("window_defaultStatus_get ", defaultStatus) + bodavm.envFunc.window_webkitRequestFileSystem=function window_webkitRequestFileSystem(){ + let webkitRequestFileSystem=bodaobj.window.webkitRequestFileSystem; + console.log(`window.webkitRequestFileSystem `,` 返回的为jsdom中的window.webkitRequestFileSystem ->${webkitRequestFileSystem}`); + return webkitRequestFileSystem + } + bodavm.envFunc.window_onbeforeunload_get=function window_onbeforeunload_get(){ + let onbeforeunload=bodaobj.window.onbeforeunload; + console.log(`window_onbeforeunload_get `,` 返回的为jsdom中的window.onbeforeunload ->${onbeforeunload}`); + return onbeforeunload + } + bodavm.envFunc.window_length_get=function window_length_get(){ + let _length=bodaobj.window.length; + console.log(`window_length_get `,` 返回的为jsdom中的window.length ->${_length}`); + return _length + } + bodavm.envFunc.window_onbeforeunload_set=function window_onbeforeunload_set(){ + let arg=arguments[0] + bodavm.memory.window['onbeforeunload']=arg + console.log(`window_onbeforeunload_set `,` window.onbeforeunload ->${arg}`); + } + bodavm.envFunc.window_openDatabase=function window_openDatabase(){ + let arg=arguments[0] + let arg1=arguments[1] + let arg2=arguments[2] + let arg3=arguments[2] + // let openDatabase + console.log(`window_openDatabase `,`->${arg}->${arg1}->${arg2}->${arg3} database`); + return database + } + bodavm.envFunc.window_defaultStatus_get=function window_defaultStatus_get(){ + let defaultStatus=bodavm.memory.window['defaultStatus'] + console.log(`window_defaultStatus_get `,`defaultStatus ->${defaultStatus}`); return defaultStatus } - bodavm.envFunc.window_defaultstatus_get = function window_defaultstatus_get() { - let defaultStatus = bodavm.memory.window['defaultstatus'] - console.log("window_defaultstatus_get ", defaultStatus) - return defaultStatus + bodavm.envFunc.window_defaultstatus_get=function window_defaultstatus_get(){ + let defaultstatus=bodavm.memory.window['defaultstatus'] + console.log(`window_defaultstatus_get `,`defaultstatus ->${defaultstatus}`); + return defaultstatus + } + bodavm.envFunc.window_innerWidth_get=function window_innerWidth_get(){ + let innerWidth=bodaobj.window['innerWidth'] + console.log(`window_innerWidth_get `,`innerWidth ->${innerWidth}`); + return innerWidth + } + bodavm.envFunc.window_devicePixelRatio_get=function window_devicePixelRatio_get(){ + let devicePixelRatio=bodavm.memory.window['devicePixelRatio'] + console.log(`window_innerWidth_get `,`devicePixelRatio ->${devicePixelRatio}`); + return devicePixelRatio + } + bodavm.envFunc.window_innerHeight_get=function window_innerHeight_get(){ + let innerHeight=bodaobj.window['innerHeight'] + console.log(`window_innerHeight_get `,`innerHeight ->${innerHeight}`); + return innerHeight + } + bodavm.envFunc.window_outerHeight_get=function window_outerHeight_get(){ + let outerHeight=bodaobj.window['outerHeight'] + console.log(`window_outerHeight_get `,`outerHeight ->${outerHeight}`); + return outerHeight + } + bodavm.envFunc.window_screenLeft_get=function window_screenLeft_get(){ + let screenLeft=bodaobj.window['screenLeft'] + console.log(`window_screenLeft_get `,`screenLeft ->${screenLeft}`); + return screenLeft + } + bodavm.envFunc.window_screenTop_get=function window_screenTop_get(){ + let screenTop=bodaobj.window['screenTop'] + console.log(`window_screenTop_get `,`screenTop ->${screenTop}`); + return screenTop } - bodavm.envFunc.window_origin_set = function window_origin_set() { - let origin = arguments[0] - bodavm.memory.window['origin'] = origin - - console.log(`window_origin_set `, origin); - if (bodavm.config.isdebug) { debugger };; - return origin - } - bodavm.envFunc.window_top_get = function window_top_get() { - console.log(`window_top_get `, `window `); - - if (bodavm.config.isdebug) { debugger };; - return window + bodavm.envFunc.window_outerWidth_get=function window_outerWidth_get(){ + let outerWidth=bodaobj.window['outerWidth'] + console.log(`window_outerWidth_get `,`outerWidth ->${outerWidth}`); + return outerWidth } + bodavm.envFunc.window_screenY_get=function window_screenY_get(){ + let screenY=bodaobj.window['screenY'] + console.log(`window_screenY_get `,`screenY ->${screenY}`); + return screenY + } + bodavm.envFunc.window_screenX_get=function window_screenX_get(){ + let screenX=bodaobj.window['screenX'] + console.log(`window_screenX_get `,`screenX ->${screenX}`); + return screenX + } + + bodavm.envFunc.window_pageYOffset_get=function window_pageYOffset_get(){ + let pageYOffset=bodaobj.window.pageYOffset + console.log(`window_pageYOffset_get `,`pageYOffset ->${pageYOffset}`); + return pageYOffset + } + bodavm.envFunc.window_pageXOffset_get=function window_pageXOffset_get(){ + let pageXOffset=bodaobj.window.pageXOffset + console.log(`window_pageXOffset_get `,`scrollX ->${pageXOffset}`); + return pageXOffset + } + bodavm.envFunc.window_scrollX_get=function window_scrollX_get(){ + let scrollX=bodaobj.window.scrollX + console.log(`window_scrollX_get `,`scrollX ->${scrollX}`); + return scrollX + } + bodavm.envFunc.window_scrollY_get=function window_scrollY_get(){ + let scrollY=bodaobj.window.scrollY + console.log(`window_scrollY_get `,`scrollY ->${scrollY}`); + return scrollY + } bodavm.envFunc.window_self_get = function window_top_get() { console.log(`window_self_get `, `window `); @@ -761,7 +429,25 @@ return window } - + bodavm.envFunc.window_parent_get=function window_parent_get(){ + console.log(`window_parent_get `,`window`); + return window + } + bodavm.envFunc.window_top_get=function window_top_get(){ + console.log(`window_top_get `,`window`); + return window + } + bodavm.envFunc.window_name_get=function window_name_get(){ + let name=bodavm.memory.window['name'] + console.log(`window_name_get `,`name ->${name}`); + return name + } + bodavm.envFunc.window_name_set=function window_name_set(){ + let name=arguments[0] + bodavm.memory.window['name']=name + console.log(`window_name_get `,`name ->${name}`); + return name + } bodavm.envFunc.window_setTimeout = function window_setTimeout() { let func = arguments[0]; let delay = arguments[1] || 0; @@ -770,7 +456,7 @@ for (let i = 2; i < length; i++) { argList.push(arguments[i]); } - console.log(`window_setTimeout `, `func:${func} `, `delay:${delay} `, `argList:${argList} `); + console.log(`window_setTimeout `, `func->${func} `, `delay->${delay} `, `argList->${argList} `); bodavm.memory.globalInit.timeoutID += 1 let event = { "callback": func, @@ -813,15 +499,16 @@ } bodavm.envFunc.window_setInterval = function window_setInterval() { + let func = arguments[0]; let delay = arguments[1] || 0; let length = arguments.length; - bodavm.toolsFunc.symbolProperty(func) + // bodavm.toolsFunc.symbolProperty(func) let argList = []; for (let i = 2; i < length; i++) { argList.push(arguments[i]); } - console.log(`window_setInterval `, `func:${func} `, `delay:${delay} `, `argList:${argList} `); + console.log(`window_setInterval `, `func->${func} `, `delay->${delay} `, `argList->${argList} `); bodavm.memory.globalInit.timeoutID += 1 let event = { @@ -839,38 +526,8 @@ return bodavm.memory.globalInit.timeoutID } - bodavm.envFunc.window_name_set = function window_name_set() { - if (bodavm.config.isdebug) { debugger } - let name_ = arguments[0] - console.log(`window_name_set `, `name:${name_}`) - bodavm.memory.window["name"] = name_ - return name_ - } - bodavm.envFunc.window_name_get = function window_name_get() { - if (bodavm.config.isdebug) { debugger } - // debugger - let name_ = bodavm.memory.window["name"] - console.log(`window_name_get `, name_) - return name_ - } - bodavm.envFunc.window_webkitRequestFileSystem = function window_webkitRequestFileSystem() { - if (bodavm.config.isdebug) { debugger } - let arg0 = arguments[0] - let arg1 = arguments[1] - let arg2 = arguments[2] - let arg3 = arguments[3] - try { - console.log(`window_webkitRequestFileSystem `, `arg0:${arg0} `, ` arg1:${arg1} `, `successCallback:${arg2} `) - arg2() - } catch { - console.log(`window_webkitRequestFileSystem `, `arg0:${arg0} `, ` arg1:${arg1} `, `errorCallback:${arg3} `) - - arg3() - } - } - //Storage bodavm.envFunc.Storage_setItem = function Storage_getItem() { @@ -878,21 +535,24 @@ let keyName = arguments[0]; let keyValue = arguments[1]; this[keyName] = keyValue - console.log(`Storage_setItem `, `keyName:${keyName} `, `keyValue:${keyValue} `) + + console.log(`Storage_setItem `, `keyName->${keyName} `, `keyValue->${keyValue} `) } bodavm.envFunc.Storage_getItem = function Storage_getItem() { if (bodavm.config.isdebug) { debugger } let key = arguments[0] let item = this[key] - console.log(`Storage_getItem `, `key:${key} `, `item:${item} `) + + console.log(`Storage_getItem `, `key->${key} `, `item->${item} `) return item } bodavm.envFunc.Storage_removeItem = function Storage_removeItem() { if (bodavm.config.isdebug) { debugger } let key = arguments[0] - console.log(`Storage_removeItem `, `key:${key} `); + console.log(`Storage_removeItem `, `key->${key} `); + delete this[key] } @@ -914,8 +574,11 @@ bodavm.envFunc.Storage_clear = function Storage_clear() { if (bodavm.config.isdebug) { debugger } debugger + // this = {} + // this.__proto__=Storage.prototype console.log(`Storage_clear `, `{} `); } + bodavm.envFunc.Storage_length_get = function Storage_length_get() { let i = 0; if (bodavm.config.isdebug) { debugger } @@ -923,7 +586,8 @@ for (const key in Object.getOwnPropertyDescriptors(this)) { i++ } - console.log(`Storage_length_get `, `length:${i} `); + console.log(`Storage_length_get `, `length->${i} `); + return i; } @@ -1005,7 +669,6 @@ bodavm.envFunc.Document_fullscreen_get = function Document_fullscreen_get() { console.log("Document_fullscreen_get ", undefined, "未完善") } bodavm.envFunc.Document_fullscreenElement_get = function Document_fullscreenElement_get() { console.log("Document_fullscreenElement_get ", undefined, "未完善") } bodavm.envFunc.Document_fullscreenEnabled_get = function Document_fullscreenEnabled_get() { console.log("Document_fullscreenEnabled_get ", undefined, "未完善") } - bodavm.envFunc.Document_images_get = function Document_images_get() { console.log("Document_images_get ", undefined, "未完善") } bodavm.envFunc.Document_lastElementChild_get = function Document_lastElementChild_get() { console.log("Document_lastElementChild_get ", undefined, "未完善") } bodavm.envFunc.Document_linkColor_get = function Document_linkColor_get() { console.log("Document_linkColor_get ", undefined, "未完善") } bodavm.envFunc.Document_links_get = function Document_links_get() { console.log("Document_links_get ", undefined, "未完善") } @@ -1085,6 +748,7 @@ let event = {} switch (arg) { case 'MOUSEEVENT': + event.__proto__ = MouseEvent.prototype console.log(`Document_createEvent `, event); bodavm.toolsFunc.symbolProperty(event) @@ -1094,6 +758,7 @@ console.log(`Document_createEvent `, event); bodavm.toolsFunc.symbolProperty(event) return event + case "TOUCHEVENT": console.log(`Document_createEvent `, event, ` 该事件只有在触摸平面(触摸屏、触摸板等)才会触发`); bodavm.toolsFunc.throwError('DOMException', `Failed to execute 'createEvent' on 'Document': The provided event type ('TouchEvent') is invalid.`) @@ -1103,25 +768,18 @@ } + } + bodavm.envFunc.Document_scripts_get=function Document_scripts_get(){ + let res={} + let scripts=bodaobj.document.scripts + res.__proto__=HTMLCollection.prototype + res._boarg=scripts + console.log(`Document_scripts_get `,`res ->${res}`); + return res } bodavm.envFunc.Document_body_set = function Document_body_set() { - if (bodavm.config.isdebug) { debugger };; - let body = arguments[0] - let childs = this[0]._children - for (let i = 0; i < childs.length; i++) { - if (childs[i]._tagName == 'body') { - let id = childs[i]._attrs['id'] - delete bodavm.memory.tag[0]._idelements[id] - bodavm.memory.tag[0]._tagelements['body'] = [] - childs[i] = body - bodavm.memory.tag[0]._tagelements['body'].push(body) - console.log(`Document_body_set `, `body:${body} `); - return body - }; - - } return bodavm.toolsFunc.throwError('TypeError', `Document_body_set失败 `) } bodavm.envFunc.Document_forms_get = function Document_forms_get() { @@ -1132,41 +790,17 @@ return forms } - bodavm.envFunc.Document_getElementsByClassName = function Document_getElementsByClassName() { - if (bodavm.config.isdebug) { debugger };; - let class_name = arguments[0] - for (let i in this[0]._className) { - if (i == class_name) { - let classlist = this[0]._className[i] - console.log(`Document_getElementsByClassName `, `class_name:${class_name} `, `classlist:${classlist} `); - return classlist - } - } - bodavm.toolsFunc.throwError('TypeError', 'Document_getElementsByClassName执行出错') - } - bodavm.envFunc.Document_createTextNode = function Document_createTextNode() { - let data = arguments[0] - if (bodavm.config.isdebug) { debugger };; - let textnode = bodavm.toolsFunc.HTMLParser(data) - console.log(`Document_createTextNode `, `'${data}' `); - textnode.__proto__ = Text.prototype - return textnode - } + bodavm.envFunc.Document_URL_get = function Document_URL_get() { - let URL = bodavm.memory.document["URL"] + let URL =bodaobj.document["URL"] console.log(`Document_URL_get `, `${URL} `); if (bodavm.config.isdebug) { debugger };; return URL } - bodavm.envFunc.Document_readyState_get = function Document_readyState_get() { - let readyState = bodavm.memory.document['readyState'] - console.log(`Document_readyState_get `, `${readyState} `); - if (bodavm.config.isdebug) { debugger };; - return readyState - } + bodavm.envFunc.Document_lastModified_get = function Document_lastModified_get() { let date = new Date(); let month = date.getMonth() + 1 @@ -1176,25 +810,28 @@ let hours = date.getHours() let minutes = date.getMinutes() let seconds = date.getSeconds() - let time = `${month}/${day}/${year} ${hours}:${minutes}:${seconds}` + let time = `${month}/${day}/${year} ${hours}->${minutes}->${seconds}` console.log(`Document_lastModified_get `, `${time} `); return time; } bodavm.envFunc.Document_contentType_get = function Document_contentType_get() { - let contenttype = bodavm.memory.document['contentType'] + let contenttype =bodaobj.document['contentType'] console.log(`Document_contentType_get `, `${contenttype} `); if (bodavm.config.isdebug) { debugger };; + return contenttype } bodavm.envFunc.Document_inputEncoding_get = function Document_inputEncoding_get() { - let inputEncoding = bodavm.memory.document['inputEncoding'] + let inputEncoding =bodaobj.document['inputEncoding'] console.log(`Document_inputEncoding_get `, `${inputEncoding} `); if (bodavm.config.isdebug) { debugger };; + return inputEncoding } bodavm.envFunc.Document_referrer_get = function Document_referrer_get() { if (bodavm.config.isdebug) { debugger } - let referrer = bodavm.memory.document["referrer"] + + let referrer =bodaobj.document["referrer"] console.log(`Document_referrer_get `, `${referrer} `); return referrer } @@ -1206,80 +843,76 @@ if (bodavm.config.isdebug) { debugger }; switch (tagName) { case "div": - dom = { _children: [], _attrs: {}, _tagName: 'div', _parentNode: {}, _rawAttrs: '', _type: 'element', _innerHTML: '' } + dom._boarg = bodaobj.document.createElement('div') dom = Object.setPrototypeOf(dom, HTMLDivElement.prototype) break; case "meta": - dom = { _children: [], _attrs: {}, _tagName: 'meta', _parentNode: {}, _rawAttrs: '', _type: 'element', _innerHTML: '' } + + dom._boarg = bodaobj.document.createElement('meta') dom = Object.setPrototypeOf(dom, HTMLMetaElement.prototype) break; case "canvas": - dom = { _children: [], _attrs: {}, _tagName: 'canvas', _parentNode: {}, _rawAttrs: '', _type: 'element', _innerHTML: '' } - + dom._boarg = bodaobj.document.createElement('canvas') + dom._bocanvas=bocreateCanvas(300,150) dom = Object.setPrototypeOf(dom, HTMLCanvasElement.prototype) break; case "a": - dom = { _children: [], _attrs: {}, _tagName: 'a', _parentNode: {}, _rawAttrs: '', _type: 'element', _innerHTML: '' } + dom._boarg = bodaobj.document.createElement('a') dom = Object.setPrototypeOf(dom, HTMLAnchorElement.prototype) break; case "script": - dom = { _children: [], _attrs: {}, _tagName: 'script', _parentNode: {}, _rawAttrs: '', _type: 'element', _innerHTML: '' } + dom._boarg = bodaobj.document.createElement('script') dom = Object.setPrototypeOf(dom, HTMLScriptElement.prototype) break; case "style": - dom = { _children: [], _attrs: {}, _tagName: 'style', _parentNode: {}, _rawAttrs: '', _type: 'element', _innerHTML: '' } + dom._boarg = bodaobj.document.createElement('style') dom = Object.setPrototypeOf(dom, HTMLStyleElement.prototype) break; case "head": - dom = { _children: [], _attrs: {}, _tagName: 'head', _parentNode: {}, _rawAttrs: '', _type: 'element', _innerHTML: '' } + dom._boarg = bodaobj.document.createElement('head') dom = Object.setPrototypeOf(dom, HTMLHeadElement.prototype) break; case "body": - dom = { _children: [], _attrs: {}, _tagName: 'body', _parentNode: {}, _rawAttrs: '', _type: 'element', _innerHTML: '' } + dom._boarg = bodaobj.document.createElement('body') dom = Object.setPrototypeOf(dom, HTMLBodyElement.prototype) break; case "form": - dom = { _children: [], _attrs: {}, _tagName: 'form', _parentNode: {}, _rawAttrs: '', _type: 'element', _innerHTML: '' } + dom._boarg = bodaobj.document.createElement('form') dom = Object.setPrototypeOf(dom, HTMLFormElement.prototype) break; - case "fake": - dom = { _children: [], _attrs: {}, _tagName: 'fake', _parentNode: {}, _rawAttrs: '', _type: 'element', _innerHTML: '' } - - dom = Object.setPrototypeOf(dom, HTMLUnknownElement.prototype) - break; case "p": - dom = { _children: [], _attrs: {}, _tagName: 'p', _parentNode: {}, _rawAttrs: '', _type: 'element', _innerHTML: '' } + dom._boarg = bodaobj.document.createElement('p') dom = Object.setPrototypeOf(dom, HTMLParagraphElement.prototype) break; case "iframe": - dom = { _children: [], _attrs: {}, _tagName: 'iframe', _parentNode: {}, _rawAttrs: '', _type: 'element', _innerHTML: '' } + dom._boarg = bodaobj.document.createElement('iframe') dom = Object.setPrototypeOf(dom, HTMLIFrameElement.prototype) break; case "span": - dom = { _children: [], _attrs: {}, _tagName: 'span', _parentNode: {}, _rawAttrs: '', _type: 'element', _innerHTML: '' } + dom._boarg = bodaobj.document.createElement('span') dom = Object.setPrototypeOf(dom, HTMLSpanElement.prototype) break; case "img": - dom = { _children: [], _attrs: {}, _tagName: 'img', _parentNode: {}, _rawAttrs: '', _type: 'element', _innerHTML: '' } + dom._boarg = bodaobj.document.createElement('img') dom = Object.setPrototypeOf(dom, HTMLImageElement.prototype) break; case "li": - dom = { _children: [], _attrs: {}, _tagName: 'li', _parentNode: {}, _rawAttrs: '', _type: 'element', _innerHTML: '' } + dom._boarg = bodaobj.document.createElement('li') dom = Object.setPrototypeOf(dom, HTMLLIElement.prototype) break; case 'h1': - dom = { _children: [], _attrs: {}, _tagName: 'h1', _parentNode: {}, _rawAttrs: '', _type: 'element', _innerHTML: '' } + dom._boarg = bodaobj.document.createElement('h1') dom = Object.setPrototypeOf(dom, HTMLHeadingElement.prototype) break; @@ -1287,20 +920,21 @@ console.log(`Document_createElement `, `${tagName}属性未实现 `); break; } - bodavm.toolsFunc.symbolProperty(dom) - console.log(`Document_createElement `, `tagName:${tagName} `, dom) + console.log(`Document_createElement `, `tagName->${tagName} `, dom) return dom; + } bodavm.envFunc.Document_body_get = function Document_body_get() { + if (bodavm.config.isdebug) { debugger };; - let body = bodavm.memory.tag[0]._tagelements['body'] ? bodavm.memory.tag[0]._tagelements['body'][0] : null - console.log(`Document_body_get `, `body:${body} `); - bodavm.toolsFunc.symbolProperty(body) - return body + let res=bodavm.toolsFunc.setProto('body') + res._boarg = bodaobj.document.body + console.log(`Document_body_get `, `body->${res} `); + return res } bodavm.envFunc.Document_domain_get = function Document_domain_get() { - let domain = bodavm.memory.document["domain"] + let domain =bodaobj.document["domain"] if (bodavm.config.isdebug) { debugger } console.log(`Document_domain_get `, `${domain} `) return domain @@ -1308,126 +942,56 @@ bodavm.envFunc.Document_domain_set = function Document_domain_set() { let domain = arguments[0] - bodavm.memory.document["domain"] = domain + bodaobj.document["domain"] = domain console.log(`Document_domain_set `, `${domain} `) if (bodavm.config.isdebug) { debugger } return domain } - bodavm.envFunc.Document_getElementById = function Document_getElementById() { - let id = arguments[0]; - + bodavm.envFunc.Document_getElementById=function Document_getElementById(){ + // debugger if (bodavm.config.isdebug) { debugger }; - for (let key in bodavm.memory.tag[0]._idelements) { - if (key == id) { - let ele = bodavm.memory.tag[0]._idelements[key] - // ele.__proto__=bodavm.toolsFunc.setProto(ele._nodeName) - console.log(`Document_getElementById `, `id:${id} `, `res:${ele} `); - bodavm.toolsFunc.symbolProperty(ele) - return ele - } + + let id=arguments[0] + let res=bodaobj.document.getElementById(id) + if (res){ + let value=bodavm.toolsFunc.setProto(res.nodeName) + value._boarg=res //防止this丢失 + console.log(`Document_getElementById `,`id->${id}`,` res->${value}`); + return value + }else{ + console.log(`Document_getElementById `,`id->${id}`,` res->${null}`); + return null } - - console.log(`Document_getElementById `, `id:${id} `, `res:${null} `); - - return null - - - } + + } //'[{"type":"node","tag":"meta",attrs:{"id":id}},{"type":"node","tag":"canvas"},{"type":"node","tag":"a"},{"type":"node","tag":"script"},{"type":"node","tag":"style"}]' bodavm.envFunc.Document_getElementsByTagName = function Document_getElementsByTagName() { var tagName = arguments[0].toLowerCase() + let res={} if (bodavm.config.isdebug) { debugger }; - // let tagslist = [] - // if (tagName == 'base') { debugger } - // if (bodavm.memory.collection[tagName] == undefined) { - // bodavm.memory.collection[tagName] = [] - // } - bodavm.memory.collection[tagName] = [] - //rs5 - if (bodavm.config.isrs) { - if (tagName == 'script') { - debugger + let taglist=bodaobj.document.getElementsByTagName(tagName) + num=0 + for (let i = 0; i < taglist.length; i++) { + num++ + res[i] = bodavm.toolsFunc.setProto( taglist[i].nodeName); + res[i]._boarg=taglist[i] + if (num ==2 && tagName =='script' && bodavm.config.isrs){ + // debugger + break - - bodavm.memory.collection[tagName].__proto__ = Array.prototype - s0=bodavm.memory.tag[0]._tagelements['script'][0] - s1=bodavm.memory.tag[0]._tagelements['script'][1] - bodavm.memory.collection[tagName].push(s0) - - bodavm.memory.collection[tagName].push(s1) - - - - bodavm.memory.collection[tagName].__proto__ = HTMLCollection.prototype - bodavm.memory.rs=1 - return bodavm.memory.collection[tagName]; - - } - - } - - if (bodavm.memory.tag[0]._tagelements[tagName]) { - for (let i = 0; i < bodavm.memory.tag[0]._tagelements[tagName].length; i++) { - bodavm.memory.collection[tagName].__proto__ = Array.prototype - bodavm.toolsFunc.symbolProperty(bodavm.memory.tag[0]._tagelements[tagName][i]) - bodavm.memory.collection[tagName].push(bodavm.memory.tag[0]._tagelements[tagName][i]) } } + res.__proto__=HTMLCollection.prototype + res._boarg=taglist + console.log(`Document_getElementsByTagName ` ,`tagName->${tagName} `,` taglist->${taglist}`); + + + return res - bodavm.toolsFunc.symbolProperty(bodavm.memory.collection[tagName]) - console.log(`Document_getElementsByTagName `, `tagName:${tagName} `, ` tagslist:${bodavm.memory.collection[tagName]} `) - bodavm.memory.collection[tagName].__proto__ = HTMLCollection.prototype - bodavm.toolsFunc.symbolProperty(bodavm.memory.collection[tagName]) - return bodavm.memory.collection[tagName]; - } - bodavm.envFunc.document_write = function () { - debugger - let text = arguments[0] - if (arguments.length > 1) { debugger } - let parse_text = bodavm.toolsFunc.HTMLParser(text) - // debugger - if (bodavm.config.isdebug) { debugger } - if (bodavm.memory.tag[0]._tagelements['body'] == undefined) { - bodavm.memory.tag[0]._tagelements['body'] = [] - } - bodavm.toolsFunc.symbolProperty(parse_text) - //body标签添加该节点 - bodavm.memory.tag[0]._tagelements['body'][0]._children.push(parse_text[0]._children[0]) - - //判断是否带有id ,如果有加入全局idelements - let id = parse_text[0]._children[0]._attrs['id'] - if (id) { - bodavm.memory.tag[0]._idelements[id] = parse_text[0]._children[0] - } - //判断是否带有class ,如果有加入全局_className - let class_ = parse_text[0]._children[0]._attrs['class'] - if (class_) { - if (bodavm.memory.tag[0]._className[class_] == undefined) { - bodavm.memory.tag[0]._className[class_] = [] - } - bodavm.memory.tag[0]._className[class_].push(parse_text[0]._children[0]) - - } - let tag = parse_text[0]._children[0]._tagName - - if (bodavm.memory.tag[0]._tagelements[tag] == undefined) { - bodavm.memory.tag[0]._tagelements[tag] = [] - } - bodavm.memory.tag[0]._tagelements[tag].push(parse_text[0]._children[0]) - console.log(`document_write `, `text:${text} `) - - - // return text - return - } - bodavm.envFunc.Document_write = function Document_write() { - let tagStr = arguments[0] - debugger - if (bodavm.config.isdebug) { debugger } - console.log(`Document_write `, `${tagStr}未实现 `) } + bodavm.envFunc.Document_cookie_get = function Document_cookie_get(){ let jsonCookie = bodavm.memory.globalInit.jsonCookie; let tempCookie = ""; @@ -1456,23 +1020,23 @@ bodavm.memory.globalInit.jsonCookie[k] = v; } console.log(`Document_cookie_set `,`cookie -> ${cookieValue}`); - return cookieValue + return cookieValue } bodavm.envFunc.document_location_get = function document_location_get() { if (bodavm.config.isdebug) { debugger } console.log(`document_location_get== `, `Location `); - return location; + return bodaobj.document.location; } bodavm.envFunc.Document_characterSet_get = function Document_characterSet_get() { - let characterSet = bodavm.memory.document['characterSet'] + let characterSet =bodaobj.document['characterSet'] console.log(`Document_characterSet_get `, `${characterSet} `); if (bodavm.config.isdebug) { debugger };; return characterSet } bodavm.envFunc.Document_charset_get = function Document_charset_get() { - let charset = bodavm.memory.document['charset'] + let charset =bodaobj.document['charset'] console.log(`Document_characterSet_get `, `${charset} `); if (bodavm.config.isdebug) { debugger };; @@ -1481,7 +1045,7 @@ bodavm.envFunc.Document_title_set = function Document_title_set() { let title = arguments[0] - bodavm.memory.document["title"] = title + bodaobj.document["title"] = title console.log(`Document_title_set `, `${title} `) if (bodavm.config.isdebug) { debugger };; @@ -1489,20 +1053,20 @@ return title } bodavm.envFunc.Document_title_get = function Document_title_get() { - let title = bodavm.memory.document["title"] + let title =bodaobj.document["title"] console.log(`Document_title_get `, `${title} `) return title } bodavm.envFunc.Document_dir_set = function Document_dir_set() { let dir = arguments[0] - bodavm.memory.document["dir"] = dir + bodaobj.document["dir"] = dir console.log(`Document_dir_set `, `${dir} `) if (bodavm.config.isdebug) { debugger };; return dir } bodavm.envFunc.Document_dir_get = function Document_dir_get() { - let dir = bodavm.memory.document["dir"] + let dir =bodaobj.document["dir"] console.log(`Document_dir_get `, `${dir} `) if (bodavm.config.isdebug) { debugger };; @@ -1511,101 +1075,77 @@ bodavm.envFunc.Document_designMode_set = function Document_designMode_set() { let designMode = arguments[0] - bodavm.memory.document["designMode"] = designMode + bodaobj.document["designMode"] = designMode console.log(`Document_designMode_set `, `${designMode} `) if (bodavm.config.isdebug) { debugger } return designMode } bodavm.envFunc.Document_designMode_get = function Document_designMode_get() { - let designMode = bodavm.memory.document["designMode"] + let designMode =bodaobj.document["designMode"] console.log(`Document_designMode_get `, `${designMode} `) if (bodavm.config.isdebug) { debugger } return designMode } bodavm.envFunc.Document_documentElement_get = function Document_documentElement_get() { if (bodavm.config.isdebug) { debugger } - - for (const key in bodavm.memory.tag[0]._tagelements) { - if (key == 'html') { - console.log(`Document_documentElement_get `, `html:${bodavm.memory.tag[0]._tagelements[key][0]} `); - bodavm.toolsFunc.symbolProperty(bodavm.memory.tag[0]._tagelements[key][0]) - return bodavm.memory.tag[0]._tagelements[key][0] - } - } - bodavm.toolsFunc.throwError('TypeError', 'Document_documentElement_get执行失败') + // debugger + let html=bodaobj.document.documentElement + let res=bodavm.toolsFunc.setProto(html.nodeName) + res._boarg=html + console.log(`Document_documentElement_get `, `html->${res} `); + return res } - bodavm.envFunc.Document_scripts_get = function Document_scripts_get() { - debugger - console.log(`Document_scripts_get `, `未完善 `); - if (bodavm.config.isdebug) { debugger }; - return bodavm.toolsFunc.throwError('TypeError', 'Document_scripts_get ', `未完善`) - } bodavm.envFunc.Document_hidden_get = function Document_hidden_get() { - let hidden = bodavm.memory.document['hidden'] + let hidden =bodaobj.document['hidden'] console.log(`Document_hidden_get `, `${hidden} `); if (bodavm.config.isdebug) { debugger };; return hidden } - bodavm.envFunc.Document_implementation_get = function Document_implementation_get() { - if (bodavm.config.isdebug) { debugger } - let implementation = {} - console.log(`Document_implementation_get `, `implementation:${implementation} `); - Object.setPrototypeOf(implementation, DOMImplementation.prototype) - return implementation - } + bodavm.envFunc.Document_documentURI_get = function Document_documentURI_get() { if (bodavm.config.isdebug) { debugger } - let documentURI = bodavm.memory.document["documentURI"] + let documentURI =bodaobj.document["documentURI"] console.log(`Document_documentURI_get `, `${documentURI} `); return documentURI } bodavm.envFunc.Document_compatMode_get = function Document_compatMode_get() { if (bodavm.config.isdebug) { debugger } - let compatMode = bodavm.memory.document["compatMode"] + let compatMode =bodaobj.document["compatMode"] console.log(`Document_compatMode_get `, `${compatMode} `); return compatMode } bodavm.envFunc.Document_onmousemove_get = function Document_onmousemove_get() { if (bodavm.config.isdebug) { debugger } - let onmousemove = bodavm.memory.document['onmousemove'] - console.log(`Document_onmousemove_get `, `onmousemove:${onmousemove} `); + let onmousemove =bodaobj.document['onmousemove'] + console.log(`Document_onmousemove_get `, `onmousemove->${onmousemove} `); return onmousemove } bodavm.envFunc.Document_onselectionchange_get = function Document_onselectionchange_get() { if (bodavm.config.isdebug) { debugger } - let onselectionchange = bodavm.memory.document['onselectionchange'] - console.log(`Document_onselectionchange_get `, `onselectionchange:${onselectionchange} `); + let onselectionchange =bodaobj.document['onselectionchange'] + console.log(`Document_onselectionchange_get `, `onselectionchange->${onselectionchange} `); return onselectionchange } bodavm.envFunc.Document_scrollingElement_get = function Document_scrollingElement_get() { if (bodavm.config.isdebug) { debugger } - - let html = bodavm.memory.tag[0]._tagelements['html'][0] + let res={} + let html = bodaobj.document.documentElement + + res=bodavm.toolsFunc.setProto('html') + res._boarg=html // return onselectionchange - console.log(`Document_scrollingElement_get==> `, `html:${html}`); - return html + console.log(`Document_scrollingElement_get==> `, `html->${res}`); + return res } - bodavm.envFunc.Document_head_get = function Document_head_xget() { - if (bodavm.config.isdebug) { debugger };; - - let head = bodavm.memory.tag[0]._tagelements['head'][0] - bodavm.toolsFunc.symbolProperty(head) - console.log(`Document_head_get `, `head:${head} `); - - return head - // bodavm.toolsFunc.throwError('TypeError','Document_head_get执行失败') - - - } //HTMLDivElement bodavm.envFunc.HTMLDivElement_align_get = function HTMLDivElement_align_get() { @@ -1627,11 +1167,11 @@ //HTMLMetaElement bodavm.envFunc.HTMLMetaElement_content_get = function HTMLMetaElement_content_get() { if (bodavm.config.isdebug) { debugger } - - let value = this._attrs['content'] + // debugger + let content=this._boarg.content // let value = self.attr["content"] - console.log(`HTMLMetaElement_content_get `, `${value} `); - return value + console.log(`HTMLMetaElement_content_get `, `content->${content.length>50?content.substr(0,30)+'...':content} `); + return content } bodavm.envFunc.HTMLMetaElement_content_set = function HTMLMetaElement_content_set() { @@ -1675,254 +1215,99 @@ bodavm.envFunc.Node_isConnected_get = function Node_isConnected_get() { console.log("Node_isConnected_get", undefined, "未完善") } bodavm.envFunc.Node_nextSibling_get = function Node_nextSibling_get() { // debugger - let parent_length = this._parentNode._children.length - if (parent_length > 1) { - for (let i = 0; i < parent_length; i++) { - if (this._parentNode._children == this) { - let nextSibling = this._parentNode._children[i + 1] - console.log("Node_nextSibling_get", nextSibling) - return nextSibling - } - - } - } else { - console.log("Node_nextSibling_get", null) - } - - return null + + console.log(`Node_nextSibling_get ` ,`res->${res}`); + res._boarg =this._boarg.next + return res } bodavm.envFunc.Node_nodeType_get = function Node_nodeType_get() { if (bodavm.config.isdebug) { debugger } - // debugger - let type_ = this._type - let ___t = 0 - switch (type_) { - case "element": - ___t = 1 - break; - default: - console.log(`Node_nodeType_get `, `${type_} 未实现`); - } - return ___t + + console.log(`Node_nodeType_get `,`${this._boarg.type}未完善`); } bodavm.envFunc.Node_nodeValue_get = function Node_nodeValue_get() { console.log("Node_nodeValue_get", undefined, "未完善") } bodavm.envFunc.Node_nodeName_get = function Node_nodeName_get() { if (bodavm.config.isdebug) { debugger } - let nodeName_ = this._tagName == '#text' ? '#text' : this._tagName.toUpperCase() - console.log(`Node_nodeName_get `, ` nodeName_:${nodeName_} `); + console.log(`Node_nodeName_get 未完善`); return nodeName_ } bodavm.envFunc.Node_firstChild_get = function Node_firstChild_get() { - debugger - if (bodavm.config.isdebug) { debugger } - - let child = this._children[0] - if (child._type == 'text') { - let text = { _tagName: '#text', _parentNode: this } - text.__proto__ = Text.prototype - console.log(`Node_firstChild_get `, `child:${text} `); - return text - } else { - console.log(`Node_firstChild_get `, `child:${child} `); - return child - } + // debugger + let res=this._boarg.firstChild + console.log(`Node_firstChild_get `,`res->${res}`); + return res } bodavm.envFunc.Node_insertBefore = function Node_insertBefore() { let newNode = arguments[0] let referenceNode = arguments[1] + console.log(`Node_insertBefore `, `未完善 `); - if (bodavm.config.isdebug) { debugger } - if (referenceNode == undefined || referenceNode == null) { - - if (newNode in this._children) { - - } else { - console.log(`Node_insertBefore `, `newNode:${newNode} referenceNode:${referenceNode} `) - this._children.push(newNode) - return newNode - } - - } else if (typeof referenceNode == 'string') { - return bodavm.toolsFunc.throwError('TypeError', `Failed to execute 'insertBefore' on 'Node': parameter 2 is not of type 'Node'. `) - } - - for (let i = 0; i < this._children.length; i++) { - if (referenceNode == this._children[i]) { - this._children.splice(i, 0, newNode) - console.log(`Node_insertBefore `, `newNode:${newNode} referenceNode:${referenceNode} `) - - - return newNode - } - - } } bodavm.envFunc.Node_lastChild_get = function Node_lastChild_get() { if (bodavm.config.isdebug) { debugger } - var childs = this._children; - var lastChild = childs ? childs[childs.length - 1] : null - console.log(`Node_lastChild_get `, `lastChild:${lastChild} `); - return lastChild + + console.log(`Node_lastChild_get `, `lastChild->${lastChild} 未完善 `); } bodavm.envFunc.Node_cloneNode = function Node_cloneNode() { let mode = arguments[0] - if (bodavm.config.isdebug) { debugger } - - - let child = mode ? this['_children'] : [] - let cloneNode = { - _attrs: this['_attrs'], - _children: child, - _innerHTML: this['_innerHTML'], - _parentNode: [], - _rawAttrs: "", - _tagName: this['_tagName'], - _type: this['_type'] - } - - cloneNode.__proto__ = this.__proto__ - console.log(`Node_cloneNode `, `cloneNode:${cloneNode} `, `mode:${mode} `) + console.log(`Node_cloneNode `, `未完善 `); return cloneNode } bodavm.envFunc.Node_parentNode_get = function Node_parentNode_get() { //获取父节点 - + // debugger if (bodavm.config.isdebug) { debugger } - let parent = this._parentNode - bodavm.toolsFunc.symbolProperty(parent) + let parent = this._boarg.parentNode + let res=bodavm.toolsFunc.setProto(parent.nodeName) + res._boarg=parent // if (Object.prototype.toString.call(parent) == '[object Object]') { - // console.log(`Node_parentNode_get `, `parent:${null} `); + // console.log(`Node_parentNode_get `, `parent->${null} `); // return null // } // parent.__proto__ = bodavm.toolsFunc.setProto(parent._nodeName) - console.log(`Node_parentNode_get `, `parent:${parent} `); - bodavm.toolsFunc.symbolProperty(parent) - return parent; + console.log(`Node_parentNode_get `, `parent->${res} `); + return res; } bodavm.envFunc.Node_removeChild = function Node_removeChild() { //删除子节点 // debugger if (bodavm.config.isdebug) { debugger };; - let tag = arguments[0] - if (tag == undefined) { - debugger - bodavm.toolsFunc.throwError('TypeError', 'top.removeChild is not a function') - } - - let childs = this._children - let removetag = '' - for (let i = 0; i < childs.length; i++) { - if (childs[i] == tag) { - removetag = childs[i] - this._children.splice(i, 1) - if (tag._attrs['id']) { - if (bodavm.memory.tag[0]._idelements[tag._attrs['id']]) { - delete bodavm.memory.tag[0]._idelements[tag._attrs['id']] - } - } - if (tag._attrs['class']) { - for (let i = 0; i < bodavm.memory.tag[0]._className[tag._attrs['class']].length; i++) { - if (bodavm.memory.tag[0]._className[tag._attrs['class']][i] == tag) { - bodavm.memory.tag[0]._className[tag._attrs['class']].splice(i, 1) - } - - } - } - - - for (let i = 0; i < bodavm.memory.tag[0]._tagelements[tag._tagName].length; i++) { - if (bodavm.memory.tag[0]._tagelements[tag._tagName][i] == tag) { - - bodavm.memory.tag[0]._tagelements[tag._tagName].splice(i, 1) - if (bodavm.memory.collection[tag._tagName]) { - bodavm.memory.collection[tag._tagName].__proto__ = Array.prototype - bodavm.memory.collection[tag._tagName].splice(i, 1) - bodavm.memory.collection[tag._tagName].__proto__ = HTMLCollection.prototype - } - } - - } - - console.log(`Node_removeChild `, `removetag:${removetag} `) - removetag['_parentNode'] = {} - - - return removetag - } - } - debugger - return bodavm.toolsFunc.throwError('TypeError', 'top.removeChild is not a function') + let child=arguments[0] + this._boarg.removeChild(child._boarg) + console.log(`Node_removeChild `, `child->${child}`); + + // debugger + + return child + + } bodavm.envFunc.Node_parentElement_get = function Node_parentElement_get() { - let parent = this._parentNode - // for (const iterator of document._elements) { - // if (iterator ==this){ - // console.log(`Node_parentElement_get${this} parent is document `); - // return document - // } - // } if (bodavm.config.isdebug) { debugger };; + let parent={} + // debugger + let temp=this._boarg.parentElement + parent=bodavm.toolsFunc.setProto(temp.nodeName) + parent._boarg=temp + console.log(`Node_parentElement_get `, `parent${temp} `); - console.log(`Node_parentElement_get `, `parent${parent} 存在问题需修改 `); - if (parent._tagName == '#document') { - console.log(`Node_parentElement_get `, `parent${null} `); - // debugger - - return null - } - bodavm.toolsFunc.symbolProperty(parent) return parent; } bodavm.envFunc.Node_appendChild = function Node_appendChild() { ; if (bodavm.config.isdebug) { debugger };; - debugger - let child = arguments[0] - // child = child[0] ? child[0] : child - // let self = this == document ? document : this - // if (self == document) { - // debugger - // } - - this._children.push(child) - if (child._attrs['id']) { - //先判断是否已经存在 - if (bodavm.memory.tag[0]._idelements[child._attrs['id']]) { - - } else { - bodavm.memory.tag[0]._idelements[child._attrs['id']] = child - } - - } - if (child._attrs['class']) { - if (bodavm.memory.tag[0]._className[child._attrs['class']] == undefined) { - bodavm.memory.tag[0]._className[child._attrs['class']] = [] - } - if (child in bodavm.memory.tag[0]._className[child._attrs['class']]) { - - } else { - bodavm.memory.tag[0]._className[child._attrs['class']].push(child) - } - - } - if (bodavm.memory.tag[0]._tagelements[child._tagName] == undefined) { - bodavm.memory.tag[0]._tagelements[child._tagName] = [] - } - if (child in bodavm.memory.tag[0]._tagelements[child._tagName]) { - - } else { - bodavm.memory.tag[0]._tagelements[child._tagName].push(child) - - } - console.log(this, ` Node_appendChild `, `${child}`); + let child=arguments[0] + this._boarg.appendChild(child._boarg) + // bobo$(this._boarg).append(child._boarg) + console.log(`Node_appendChild `,`child->${child}`); return child } @@ -1993,49 +1378,45 @@ bodavm.envFunc.Element_scrollWidth_get = function Element_scrollWidth_get() { console.log("Element_scrollWidth_get", undefined, "未完善") } bodavm.envFunc.Element_slot_get = function Element_slot_get() { console.log("Element_slot_get", undefined, "未完善") } bodavm.envFunc.Element_tagName_get = function Element_tagName_get() { - debugger - let tagname = this._tagName + let tagname = this._boarg.tagName if (bodavm.memory.isdebug) { debugger } - console.log("Element_tagName_get ", `tagname:${tagname}`) + console.log("Element_tagName_get ", `tagname->${tagname}`) return tagname } bodavm.envFunc.Element_getElementsByClassName = function Element_getElementsByClassName() { - if (bodavm.config.isdebug) { debugger } - let class_name = arguments[0] - let _classes = bodavm.memory.tag[0]._className[class_name] - let class_list = [] - for (let i = 0; i < _classes.length; i++) { - if (_classes[i]._parentNode == this) { - class_list.push(_classes[i]) - } - } console.log(`Element_getElementsByClassName `, `未完善 `); class_list.__proto__ = HTMLCollection.prototype return class_list + } + bodavm.envFunc.Element_append=function Element_append(){ + let child=arguments[0] + console.log(`Element_append `,`child->${child}`); + bobo$(this._boarg).append(child._boarg) + // debugger + } bodavm.envFunc.Element_id_get = function () { if (bodavm.config.isdebug) { debugger } - let id = this._attrs['id'] - console.log(`Element_id_get `, `id:${id} `); - return id + + console.log(`Element_id_get `, `value->${value} `); + return value } bodavm.envFunc.Element_id_set = function Element_id_set() { - let id = arguments[0] - + // let value=arguments[0] + if (bodavm.config.isdebug) { debugger } // bodavm.toolsFunc.setProtoAttr.call(this,'id',id) - this._attrs['id'] = id - bodavm.memory.tag[0]._idelements[id] = this - console.log(`Element_id_set `, `id:${id} `); - return id + this._boarg.attribs['id']=value + console.log(`Element_id_set `,` value->${value}`); + return value } bodavm.envFunc.Element_className_set = function () { - let className = arguments[0] + // let className = arguments[0] debugger if (bodavm.config.isdebug) { debugger } console.log(`Element_className_set`, `未完善`); @@ -2081,12 +1462,7 @@ debugger let tagname = this._tagName let self = this - let id = this._attrs['id'] - let class_ = this._attrs['class'] //class名字 - if (id) { - - delete bodavm.memory.tag[0]._idelements[id] - } + if (class_) { //取到bodavm.memory.tag[0]._className[class_]列表 @@ -2105,27 +1481,7 @@ } - // function traverse(obj) { - // // debugger - // // let parent=obj - // for (let i = 0; i < obj._children.length; i++) { - // if (obj._children[i] ==self ) { - // obj._children.splice(i,1) - // // debugger - - // } - // if (obj._children.length >0) { - // traverse(obj._children[i]) - // } - - // } - - // } - // traverse(bodavm.memory.tag[0]) - console.log(`Element_remove `, `${this} `); - // if (bodavm.config.isdebug) { debugger };; - ; - // delete this; + } bodavm.envFunc.Element_clientHeight_get = function Element_clientHeight_get() { let clientHeight = 0 @@ -2136,34 +1492,22 @@ } bodavm.envFunc.Element_removeAttribute = function Element_removeAttribute() { let attr = arguments[0] + //无返回值 if (bodavm.config.isdebug) { debugger };; + this._boarg.removeAttribute(attr) console.log(`Element_removeAttribute `, `${attr} `, `=============================未完善`); //IE 返回 boolean 类型值,其他返回 undefined } bodavm.envFunc.Element_setAttribute = function Element_setAttribute() { + // debugger + if (bodavm.config.isdebug) { debugger };; + //无返回值 let name = arguments[0] let value = arguments[1] + this._boarg.setAttribute(name,value) - console.log(`Element_setAttribute `, `name:${name} `, `value:${value} `); - if (bodavm.config.isdebug) { debugger };; + console.log(`Element_setAttribute `, `name->${name} `, `value->${value} `); ; - if (name == "id") { - bodavm.memory.tag[0]._idelements[value] = this - this._attrs[name] = value - return - } else if (name == 'class') { - - if (bodavm.memory.tag[0]._className[value] == undefined) { - bodavm.memory.tag[0]._className[value] = [] - } - bodavm.memory.tag[0]._className[value].push(this) - this._attrs[name] = value - return - } else { - this._attrs[name] = value - return - } - } bodavm.envFunc.Element_clientWidth_get = function Element_clientWidth_get() { @@ -2175,31 +1519,29 @@ bodavm.envFunc.Element_outerHTML_get = function Element_outerHTML_get() { // let outerHtml = this._elements[0].outerHTML - console.log(`Element_outerHTML_get==> `, `${"