From ae25ad78906179e1448ff7d97957810e2be40206 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Thu, 7 Apr 2022 12:17:38 +1000 Subject: nop whitespace formatting change. - ran eglot-format using typescript-language-server on all js files in the repo except those under /hash_script/ - verify only whitespace changed: git diff --word-diff-regex=. 62d6a71 62d6a71~1 --- evaluation test/test.js | 1934 +++++++++++++++++++++++------------------------ 1 file changed, 967 insertions(+), 967 deletions(-) (limited to 'evaluation test') diff --git a/evaluation test/test.js b/evaluation test/test.js index 091c47c..d6dbd4a 100644 --- a/evaluation test/test.js +++ b/evaluation test/test.js @@ -2,834 +2,834 @@ var acornLoose = require('acorn-loose'); var acorn = require("acorn"); var fname_data = { - "WebGLShader": true, - "WebGLShaderPrecisionFormat": true, - "WebGLQuery": true, - "WebGLRenderbuffer": true, - "WebGLSampler": true, - "WebGLUniformLocation": true, - "WebGLFramebuffer": true, - "WebGLProgram": true, - "WebGLContextEvent": true, - "WebGL2RenderingContext": true, - "WebGLTexture": true, - "WebGLRenderingContext": true, - "WebGLVertexArrayObject": true, - "WebGLActiveInfo": true, - "WebGLTransformFeedback": true, - "WebGLSync": true, - "WebGLBuffer": true, - "cat_svg": true, - "SVGPoint": true, - "SVGEllipseElement": true, - "SVGRadialGradientElement": true, - "SVGComponentTransferFunctionElement": true, - "SVGPathSegCurvetoQuadraticAbs": true, - "SVGAnimatedNumberList": true, - "SVGPathSegCurvetoQuadraticSmoothRel": true, - "SVGFEColorMatrixElement": true, - "SVGPathSegLinetoHorizontalAbs": true, - "SVGLinearGradientElement": true, - "SVGStyleElement": true, - "SVGPathSegMovetoRel": true, - "SVGStopElement": true, - "SVGPathSegLinetoRel": true, - "SVGFEConvolveMatrixElement": true, - "SVGAnimatedAngle": true, - "SVGPathSegLinetoAbs": true, - "SVGPreserveAspectRatio": true, - "SVGFEOffsetElement": true, - "SVGFEImageElement": true, - "SVGFEDiffuseLightingElement": true, - "SVGAnimatedNumber": true, - "SVGTextElement": true, - "SVGFESpotLightElement": true, - "SVGFEMorphologyElement": true, - "SVGAngle": true, - "SVGScriptElement": true, - "SVGFEDropShadowElement": true, - "SVGPathSegArcRel": true, - "SVGNumber": true, - "SVGPathSegLinetoHorizontalRel": true, - "SVGFEFuncBElement": true, - "SVGClipPathElement": true, - "SVGPathSeg": true, - "SVGUseElement": true, - "SVGPathSegArcAbs": true, - "SVGPathSegCurvetoQuadraticSmoothAbs": true, - "SVGRect": true, - "SVGAnimatedPreserveAspectRatio": true, - "SVGImageElement": true, - "SVGAnimatedEnumeration": true, - "SVGAnimatedLengthList": true, - "SVGFEFloodElement": true, - "SVGFECompositeElement": true, - "SVGAElement": true, - "SVGAnimatedBoolean": true, - "SVGMaskElement": true, - "SVGFilterElement": true, - "SVGPathSegLinetoVerticalRel": true, - "SVGAnimatedInteger": true, - "SVGTSpanElement": true, - "SVGMarkerElement": true, - "SVGStringList": true, - "SVGTransform": true, - "SVGTitleElement": true, - "SVGFEBlendElement": true, - "SVGTextPositioningElement": true, - "SVGFEFuncGElement": true, - "SVGFEPointLightElement": true, - "SVGAnimateElement": true, - "SVGPolylineElement": true, - "SVGDefsElement": true, - "SVGPathSegList": true, - "SVGAnimatedTransformList": true, - "SVGPathSegClosePath": true, - "SVGGradientElement": true, - "SVGSwitchElement": true, - "SVGViewElement": true, - "SVGUnitTypes": true, - "SVGPathSegMovetoAbs": true, - "SVGSymbolElement": true, - "SVGFEFuncAElement": true, - "SVGAnimatedString": true, - "SVGFEMergeElement": true, - "SVGPathSegLinetoVerticalAbs": true, - "SVGAnimationElement": true, - "SVGPathSegCurvetoCubicAbs": true, - "SVGLength": true, - "SVGTextPathElement": true, - "SVGPolygonElement": true, - "SVGAnimatedRect": true, - "SVGPathSegCurvetoCubicRel": true, - "SVGFEFuncRElement": true, - "SVGLengthList": true, - "SVGTextContentElement": true, - "SVGFETurbulenceElement": true, - "SVGMatrix": true, - "SVGZoomAndPan": true, - "SVGMetadataElement": true, - "SVGFEDistantLightElement": true, - "SVGAnimateMotionElement": true, - "SVGDescElement": true, - "SVGPathSegCurvetoCubicSmoothRel": true, - "SVGFESpecularLightingElement": true, - "SVGFEGaussianBlurElement": true, - "SVGFEComponentTransferElement": true, - "SVGNumberList": true, - "SVGTransformList": true, - "SVGForeignObjectElement": true, - "SVGRectElement": true, - "SVGFEDisplacementMapElement": true, - "SVGAnimateTransformElement": true, - "SVGAnimatedLength": true, - "SVGPointList": true, - "SVGPatternElement": true, - "SVGPathSegCurvetoCubicSmoothAbs": true, - "SVGCircleElement": true, - "SVGSetElement": true, - "SVGFETileElement": true, - "SVGMPathElement": true, - "SVGFEMergeNodeElement": true, - "SVGPathSegCurvetoQuadraticRel": true, - "SVGElement": true, - "SVGGraphicsElement": true, - "SVGSVGElement": true, - "SVGGElement": true, - "SVGGeometryElement": true, - "SVGPathElement": true, - "SVGLineElement": true, - "cat_html": true, - "HTMLTimeElement": true, - "HTMLPictureElement": true, - "HTMLMenuItemElement": true, - "HTMLFormElement": true, - "HTMLOptionElement": true, - "HTMLCanvasElement": true, - "HTMLTableSectionElement": true, - "HTMLSelectElement": true, - "HTMLUListElement": true, - "HTMLMetaElement": true, - "HTMLLinkElement": true, - "HTMLBaseElement": true, - "HTMLDataListElement": true, - "HTMLInputElement": true, - "HTMLMeterElement": true, - "HTMLSourceElement": true, - "HTMLTrackElement": true, - "HTMLTableColElement": true, - "HTMLFieldSetElement": true, - "HTMLDirectoryElement": true, - "HTMLTableCellElement": true, - "HTMLStyleElement": true, - "HTMLAudioElement": true, - "HTMLLegendElement": true, - "HTMLOListElement": true, - "HTMLEmbedElement": true, - "HTMLQuoteElement": true, - "HTMLMenuElement": true, - "HTMLHeadElement": true, - "HTMLUnknownElement": true, - "HTMLBRElement": true, - "HTMLProgressElement": true, - "HTMLMediaElement": true, - "HTMLFormControlsCollection": true, - "HTMLCollection": true, - "HTMLLIElement": true, - "HTMLDetailsElement": true, - "HTMLObjectElement": true, - "HTMLHeadingElement": true, - "HTMLTableCaptionElement": true, - "HTMLPreElement": true, - "HTMLAllCollection": true, - "HTMLFrameSetElement": true, - "HTMLFontElement": true, - "HTMLFrameElement": true, - "HTMLAnchorElement": true, - "HTMLOptGroupElement": true, - "HTMLVideoElement": true, - "HTMLModElement": true, - "HTMLBodyElement": true, - "HTMLTableElement": true, - "HTMLButtonElement": true, - "HTMLTableRowElement": true, - "HTMLAreaElement": true, - "HTMLDataElement": true, - "HTMLParamElement": true, - "HTMLLabelElement": true, - "HTMLTemplateElement": true, - "HTMLOptionsCollection": true, - "HTMLIFrameElement": true, - "HTMLTitleElement": true, - "HTMLMapElement": true, - "HTMLOutputElement": true, - "HTMLDListElement": true, - "HTMLParagraphElement": true, - "HTMLHRElement": true, - "HTMLImageElement": true, - "HTMLDocument": true, - "HTMLElement": true, - "HTMLScriptElement": true, - "HTMLHtmlElement": true, - "HTMLTextAreaElement": true, - "HTMLDivElement": true, - "HTMLSpanElement": true, - "cat_css": true, - "CSSStyleRule": true, - "CSSFontFaceRule": true, - "CSSPrimitiveValue": true, - "CSSStyleDeclaration": true, - "CSSStyleSheet": true, - "CSSPageRule": true, - "CSSSupportsRule": true, - "CSSMozDocumentRule": true, - "CSSKeyframeRule": true, - "CSSGroupingRule": true, - "CSS2Properties": true, - "CSSFontFeatureValuesRule": true, - "CSSRuleList": true, - "CSSPseudoElement": true, - "CSSMediaRule": true, - "CSSCounterStyleRule": true, - "CSSImportRule": true, - "CSSTransition": true, - "CSSAnimation": true, - "CSSValue": true, - "CSSNamespaceRule": true, - "CSSRule": true, - "CSS": true, - "CSSKeyframesRule": true, - "CSSConditionRule": true, - "CSSValueList": true, - "cat_event": true, - "ondevicemotion": true, - "ondeviceorientation": true, - "onabsolutedeviceorientation": true, - "ondeviceproximity": true, - "onuserproximity": true, - "ondevicelight": true, - "onvrdisplayconnect": true, - "onvrdisplaydisconnect": true, - "onvrdisplayactivate": true, - "onvrdisplaydeactivate": true, - "onvrdisplaypresentchange": true, - "onabort": true, - "onblur": true, - "onfocus": true, - "onauxclick": true, - "oncanplay": true, - "oncanplaythrough": true, - "onchange": true, - "onclick": true, - "onclose": true, - "oncontextmenu": true, - "ondblclick": true, - "ondrag": true, - "ondragend": true, - "ondragenter": true, - "ondragexit": true, - "ondragleave": true, - "ondragover": true, - "ondragstart": true, - "ondrop": true, - "ondurationchange": true, - "onemptied": true, - "onended": true, - "oninput": true, - "oninvalid": true, - "onkeydown": true, - "onkeypress": true, - "onkeyup": true, - "onload": true, - "onloadeddata": true, - "onloadedmetadata": true, - "onloadend": true, - "onloadstart": true, - "onmousedown": true, - "onmouseenter": true, - "onmouseleave": true, - "onmousemove": true, - "onmouseout": true, - "onmouseover": true, - "onmouseup": true, - "onwheel": true, - "onpause": true, - "onplay": true, - "onplaying": true, - "onprogress": true, - "onratechange": true, - "onreset": true, - "onresize": true, - "onscroll": true, - "onseeked": true, - "onseeking": true, - "onselect": true, - "onshow": true, - "onstalled": true, - "onsubmit": true, - "onsuspend": true, - "ontimeupdate": true, - "onvolumechange": true, - "onwaiting": true, - "onselectstart": true, - "ontoggle": true, - "onpointercancel": true, - "onpointerdown": true, - "onpointerup": true, - "onpointermove": true, - "onpointerout": true, - "onpointerover": true, - "onpointerenter": true, - "onpointerleave": true, - "ongotpointercapture": true, - "onlostpointercapture": true, - "onmozfullscreenchange": true, - "onmozfullscreenerror": true, - "onanimationcancel": true, - "onanimationend": true, - "onanimationiteration": true, - "onanimationstart": true, - "ontransitioncancel": true, - "ontransitionend": true, - "ontransitionrun": true, - "ontransitionstart": true, - "onwebkitanimationend": true, - "onwebkitanimationiteration": true, - "onwebkitanimationstart": true, - "onwebkittransitionend": true, - "onerror": true, - "onafterprint": true, - "onbeforeprint": true, - "onbeforeunload": true, - "onhashchange": true, - "onlanguagechange": true, - "onmessage": true, - "onmessageerror": true, - "onoffline": true, - "ononline": true, - "onpagehide": true, - "onpageshow": true, - "onpopstate": true, - "onstorage": true, - "onunload": true, - "cat_rtc": true, - "RTCDTMFSender": true, - "RTCStatsReport": true, - "RTCTrackEvent": true, - "RTCDataChannelEvent": true, - "RTCPeerConnectionIceEvent": true, - "RTCCertificate": true, - "RTCDTMFToneChangeEvent": true, - "RTCPeerConnection": true, - "RTCIceCandidate": true, - "RTCRtpReceiver": true, - "RTCRtpSender": true, - "RTCSessionDescription": true, - "cat_vr": true, - "VRStageParameters": true, - "VRFrameData": true, - "VRDisplay": true, - "VRDisplayEvent": true, - "VRFieldOfView": true, - "VRDisplayCapabilities": true, - "VREyeParameters": true, - "VRPose": true, - "cat_dom": true, - "DOMStringMap": true, - "DOMRectReadOnly": true, - "DOMException": true, - "DOMRect": true, - "DOMMatrix": true, - "DOMMatrixReadOnly": true, - "DOMPointReadOnly": true, - "DOMPoint": true, - "DOMQuad": true, - "DOMRequest": true, - "DOMParser": true, - "DOMTokenList": true, - "DOMStringList": true, - "DOMImplementation": true, - "DOMError": true, - "DOMRectList": true, - "DOMCursor": true, - "cat_idb": true, - "IDBFileRequest": true, - "IDBTransaction": true, - "IDBCursor": true, - "IDBFileHandle": true, - "IDBMutableFile": true, - "IDBKeyRange": true, - "IDBVersionChangeEvent": true, - "IDBObjectStore": true, - "IDBFactory": true, - "IDBCursorWithValue": true, - "IDBOpenDBRequest": true, - "IDBRequest": true, - "IDBIndex": true, - "IDBDatabase": true, - "cat_audio": true, - "AudioContext": true, - "AudioBuffer": true, - "AudioBufferSourceNode": true, - "Audio": true, - "MediaElementAudioSourceNode": true, - "AudioNode": true, - "BaseAudioContext": true, - "AudioListener": true, - "MediaStreamAudioSourceNode": true, - "OfflineAudioContext": true, - "AudioDestinationNode": true, - "AudioParam": true, - "MediaStreamAudioDestinationNode": true, - "OfflineAudioCompletionEvent": true, - "AudioStreamTrack": true, - "AudioScheduledSourceNode": true, - "AudioProcessingEvent": true, - "cat_gamepad": true, - "GamepadButton": true, - "GamepadHapticActuator": true, - "GamepadAxisMoveEvent": true, - "GamepadPose": true, - "GamepadEvent": true, - "Gamepad": true, - "GamepadButtonEvent": true, - "cat_media": true, - "MediaKeys": true, - "MediaKeyError": true, - "MediaSource": true, - "MediaDevices": true, - "MediaKeyStatusMap": true, - "MediaStreamTrackEvent": true, - "MediaRecorder": true, - "MediaQueryListEvent": true, - "MediaStream": true, - "MediaEncryptedEvent": true, - "MediaStreamTrack": true, - "MediaError": true, - "MediaStreamEvent": true, - "MediaQueryList": true, - "MediaKeySystemAccess": true, - "MediaDeviceInfo": true, - "MediaKeySession": true, - "MediaList": true, - "MediaRecorderErrorEvent": true, - "MediaKeyMessageEvent": true, - "cat_event2": true, - "SpeechSynthesisErrorEvent": true, - "BeforeUnloadEvent": true, - "CustomEvent": true, - "PageTransitionEvent": true, - "PopupBlockedEvent": true, - "CloseEvent": true, - "ProgressEvent": true, - "MutationEvent": true, - "MessageEvent": true, - "FocusEvent": true, - "TrackEvent": true, - "DeviceMotionEvent": true, - "TimeEvent": true, - "PointerEvent": true, - "UserProximityEvent": true, - "StorageEvent": true, - "DragEvent": true, - "MouseScrollEvent": true, - "EventSource": true, - "PopStateEvent": true, - "DeviceProximityEvent": true, - "SpeechSynthesisEvent": true, - "XMLHttpRequestEventTarget": true, - "ClipboardEvent": true, - "AnimationPlaybackEvent": true, - "DeviceLightEvent": true, - "BlobEvent": true, - "MouseEvent": true, - "WheelEvent": true, - "InputEvent": true, - "HashChangeEvent": true, - "DeviceOrientationEvent": true, - "CompositionEvent": true, - "KeyEvent": true, - "ScrollAreaEvent": true, - "KeyboardEvent": true, - "TransitionEvent": true, - "ErrorEvent": true, - "AnimationEvent": true, - "FontFaceSetLoadEvent": true, - "EventTarget": true, - "captureEvents": true, - "releaseEvents": true, - "Event": true, - "UIEvent": true, - "cat_other": false, - "undefined": false, - "Array": false, - "Boolean": false, - "JSON": false, - "Date": false, - "Math": false, - "Number": false, - "String": false, - "RegExp": false, - "Error": false, - "InternalError": false, - "EvalError": false, - "RangeError": false, - "ReferenceError": false, - "SyntaxError": false, - "TypeError": false, - "URIError": false, - "ArrayBuffer": true, - "Int8Array": true, - "Uint8Array": true, - "Int16Array": true, - "Uint16Array": true, - "Int32Array": true, - "Uint32Array": true, - "Float32Array": true, - "Float64Array": true, - "Uint8ClampedArray": true, - "Proxy": true, - "WeakMap": true, - "Map": true, - "Set": true, - "DataView": false, - "Symbol": false, - "SharedArrayBuffer": true, - "Intl": false, - "TypedObject": true, - "Reflect": true, - "SIMD": true, - "WeakSet": true, - "Atomics": true, - "Promise": true, - "WebAssembly": true, - "NaN": false, - "Infinity": false, - "isNaN": false, - "isFinite": false, - "parseFloat": false, - "parseInt": false, - "escape": false, - "unescape": false, - "decodeURI": false, - "encodeURI": false, - "decodeURIComponent": false, - "encodeURIComponent": false, - "uneval": false, - "BatteryManager": true, - "CanvasGradient": true, - "TextDecoder": true, - "Plugin": true, - "PushManager": true, - "ChannelMergerNode": true, - "PerformanceResourceTiming": true, - "ServiceWorker": true, - "TextTrackCueList": true, - "PerformanceEntry": true, - "TextTrackList": true, - "StyleSheet": true, - "PerformanceMeasure": true, - "DesktopNotificationCenter": true, - "Comment": true, - "DelayNode": true, - "XPathResult": true, - "CDATASection": true, - "MessageChannel": true, - "BiquadFilterNode": true, - "SpeechSynthesisUtterance": true, - "Crypto": true, - "Navigator": true, - "FileList": true, - "URLSearchParams": false, - "ServiceWorkerContainer": true, - "ValidityState": true, - "ProcessingInstruction": true, - "AbortSignal": true, - "FontFace": true, - "FileReader": true, - "Worker": true, - "External": true, - "ImageBitmap": true, - "TimeRanges": true, - "Option": true, - "TextTrack": true, - "Image": true, - "AnimationTimeline": true, - "VideoPlaybackQuality": true, - "VTTCue": true, - "Storage": true, - "XPathExpression": true, - "CharacterData": false, - "TextMetrics": true, - "AnimationEffectReadOnly": true, - "PerformanceTiming": false, - "PerformanceMark": true, - "ImageBitmapRenderingContext": true, - "Headers": true, - "Range": false, - "Rect": true, - "AnimationEffectTimingReadOnly": true, - "KeyframeEffect": true, - "Permissions": true, - "TextEncoder": true, - "ImageData": true, - "SpeechSynthesisVoice": true, - "StorageManager": true, - "TextTrackCue": true, - "WebSocket": true, - "DocumentType": true, - "XPathEvaluator": true, - "PerformanceNavigationTiming": true, - "IdleDeadline": true, - "FileSystem": true, - "FileSystemFileEntry": true, - "CacheStorage": true, - "MimeType": true, - "PannerNode": true, - "NodeFilter": true, - "StereoPannerNode": true, - "console": false, - "DynamicsCompressorNode": true, - "PaintRequest": true, - "RGBColor": true, - "FontFaceSet": false, - "PaintRequestList": true, - "FileSystemEntry": true, - "XMLDocument": false, - "SourceBuffer": false, - "Screen": true, - "NamedNodeMap": false, - "History": true, - "Response": true, - "AnimationEffectTiming": true, - "ServiceWorkerRegistration": true, - "CanvasRenderingContext2D": true, - "ScriptProcessorNode": true, - "FileSystemDirectoryReader": true, - "MimeTypeArray": true, - "CanvasCaptureMediaStream": true, - "Directory": true, - "mozRTCPeerConnection": true, - "PerformanceObserverEntryList": true, - "PushSubscriptionOptions": true, - "Text": false, - "IntersectionObserverEntry": true, - "SubtleCrypto": true, - "Animation": true, - "DataTransfer": true, - "TreeWalker": true, - "XMLHttpRequest": true, - "LocalMediaStream": true, - "ConvolverNode": true, - "WaveShaperNode": true, - "DataTransferItemList": false, - "Request": true, - "SourceBufferList": false, - "XSLTProcessor": true, - "XMLHttpRequestUpload": true, - "SharedWorker": true, - "Notification": false, - "DataTransferItem": true, - "AnalyserNode": true, - "mozRTCIceCandidate": true, - "PerformanceObserver": true, - "OfflineResourceList": true, - "FileSystemDirectoryEntry": true, - "DesktopNotification": false, - "DataChannel": true, - "IIRFilterNode": true, - "ChannelSplitterNode": true, - "File": true, - "ConstantSourceNode": true, - "CryptoKey": true, - "GainNode": true, - "AbortController": true, - "Attr": true, - "SpeechSynthesis": true, - "PushSubscription": false, - "XMLStylesheetProcessingInstruction": false, - "NodeIterator": true, - "VideoStreamTrack": true, - "XMLSerializer": true, - "CaretPosition": true, - "FormData": true, - "CanvasPattern": true, - "mozRTCSessionDescription": true, - "Path2D": true, - "PerformanceNavigation": true, - "URL": false, - "PluginArray": true, - "MutationRecord": true, - "WebKitCSSMatrix": true, - "PeriodicWave": true, - "DocumentFragment": true, - "DocumentTimeline": false, - "ScreenOrientation": true, - "BroadcastChannel": true, - "PermissionStatus": true, - "IntersectionObserver": true, - "Blob": true, - "MessagePort": true, - "BarProp": true, - "OscillatorNode": true, - "Cache": true, - "RadioNodeList": true, - "KeyframeEffectReadOnly": true, - "InstallTrigger": true, - "Function": false, - "Object": false, - "eval": true, - "Window": false, - "close": false, - "stop": false, - "focus": false, - "blur": false, - "open": true, - "alert": false, - "confirm": false, - "prompt": false, - "print": false, - "postMessage": true, - "getSelection": true, - "getComputedStyle": true, - "matchMedia": true, - "moveTo": false, - "moveBy": false, - "resizeTo": false, - "resizeBy": false, - "scroll": false, - "scrollTo": false, - "scrollBy": false, - "requestAnimationFrame": true, - "cancelAnimationFrame": true, - "getDefaultComputedStyle": false, - "scrollByLines": false, - "scrollByPages": false, - "sizeToContent": false, - "updateCommands": true, - "find": false, - "dump": true, - "setResizable": false, - "requestIdleCallback": false, - "cancelIdleCallback": false, - "btoa": true, - "atob": true, - "setTimeout": true, - "clearTimeout": true, - "setInterval": true, - "clearInterval": true, - "createImageBitmap": true, - "fetch": true, - "self": true, - "name": false, - "history": true, - "locationbar": true, - "menubar": true, - "personalbar": true, - "scrollbars": true, - "statusbar": true, - "toolbar": true, - "status": true, - "closed": true, - "frames": true, - "length": false, - "opener": true, - "parent": true, - "frameElement": true, - "navigator": true, - "external": true, - "applicationCache": true, - "screen": true, - "innerWidth": true, - "innerHeight": true, - "scrollX": true, - "pageXOffset": true, - "scrollY": true, - "pageYOffset": true, - "screenX": true, - "screenY": true, - "outerWidth": true, - "outerHeight": true, - "performance": true, - "mozInnerScreenX": true, - "mozInnerScreenY": true, - "devicePixelRatio": true, - "scrollMaxX": true, - "scrollMaxY": true, - "fullScreen": false, - "mozPaintCount": true, - "sidebar": false, - "crypto": true, - "speechSynthesis": true, - "localStorage": true, - "origin": true, - "isSecureContext": false, - "indexedDB": true, - "caches": true, - "sessionStorage": true, - "window": false, - "document": true, - "location": false, - "top": true, - "netscape": true, - "Node": true, - "Document": true, - "Performance": false, - "startProfiling": true, - "stopProfiling": true, - "pauseProfilers": true, - "resumeProfilers": true, - "dumpProfile": true, - "getMaxGCPauseSinceClear": true, - "clearMaxGCPauseAccumulator": true, - "Location": true, - "StyleSheetList": false, - "Selection": false, - "Element": true, - "AnonymousContent": false, - "MutationObserver": true, - "NodeList": true, - "StopIteration": true + "WebGLShader": true, + "WebGLShaderPrecisionFormat": true, + "WebGLQuery": true, + "WebGLRenderbuffer": true, + "WebGLSampler": true, + "WebGLUniformLocation": true, + "WebGLFramebuffer": true, + "WebGLProgram": true, + "WebGLContextEvent": true, + "WebGL2RenderingContext": true, + "WebGLTexture": true, + "WebGLRenderingContext": true, + "WebGLVertexArrayObject": true, + "WebGLActiveInfo": true, + "WebGLTransformFeedback": true, + "WebGLSync": true, + "WebGLBuffer": true, + "cat_svg": true, + "SVGPoint": true, + "SVGEllipseElement": true, + "SVGRadialGradientElement": true, + "SVGComponentTransferFunctionElement": true, + "SVGPathSegCurvetoQuadraticAbs": true, + "SVGAnimatedNumberList": true, + "SVGPathSegCurvetoQuadraticSmoothRel": true, + "SVGFEColorMatrixElement": true, + "SVGPathSegLinetoHorizontalAbs": true, + "SVGLinearGradientElement": true, + "SVGStyleElement": true, + "SVGPathSegMovetoRel": true, + "SVGStopElement": true, + "SVGPathSegLinetoRel": true, + "SVGFEConvolveMatrixElement": true, + "SVGAnimatedAngle": true, + "SVGPathSegLinetoAbs": true, + "SVGPreserveAspectRatio": true, + "SVGFEOffsetElement": true, + "SVGFEImageElement": true, + "SVGFEDiffuseLightingElement": true, + "SVGAnimatedNumber": true, + "SVGTextElement": true, + "SVGFESpotLightElement": true, + "SVGFEMorphologyElement": true, + "SVGAngle": true, + "SVGScriptElement": true, + "SVGFEDropShadowElement": true, + "SVGPathSegArcRel": true, + "SVGNumber": true, + "SVGPathSegLinetoHorizontalRel": true, + "SVGFEFuncBElement": true, + "SVGClipPathElement": true, + "SVGPathSeg": true, + "SVGUseElement": true, + "SVGPathSegArcAbs": true, + "SVGPathSegCurvetoQuadraticSmoothAbs": true, + "SVGRect": true, + "SVGAnimatedPreserveAspectRatio": true, + "SVGImageElement": true, + "SVGAnimatedEnumeration": true, + "SVGAnimatedLengthList": true, + "SVGFEFloodElement": true, + "SVGFECompositeElement": true, + "SVGAElement": true, + "SVGAnimatedBoolean": true, + "SVGMaskElement": true, + "SVGFilterElement": true, + "SVGPathSegLinetoVerticalRel": true, + "SVGAnimatedInteger": true, + "SVGTSpanElement": true, + "SVGMarkerElement": true, + "SVGStringList": true, + "SVGTransform": true, + "SVGTitleElement": true, + "SVGFEBlendElement": true, + "SVGTextPositioningElement": true, + "SVGFEFuncGElement": true, + "SVGFEPointLightElement": true, + "SVGAnimateElement": true, + "SVGPolylineElement": true, + "SVGDefsElement": true, + "SVGPathSegList": true, + "SVGAnimatedTransformList": true, + "SVGPathSegClosePath": true, + "SVGGradientElement": true, + "SVGSwitchElement": true, + "SVGViewElement": true, + "SVGUnitTypes": true, + "SVGPathSegMovetoAbs": true, + "SVGSymbolElement": true, + "SVGFEFuncAElement": true, + "SVGAnimatedString": true, + "SVGFEMergeElement": true, + "SVGPathSegLinetoVerticalAbs": true, + "SVGAnimationElement": true, + "SVGPathSegCurvetoCubicAbs": true, + "SVGLength": true, + "SVGTextPathElement": true, + "SVGPolygonElement": true, + "SVGAnimatedRect": true, + "SVGPathSegCurvetoCubicRel": true, + "SVGFEFuncRElement": true, + "SVGLengthList": true, + "SVGTextContentElement": true, + "SVGFETurbulenceElement": true, + "SVGMatrix": true, + "SVGZoomAndPan": true, + "SVGMetadataElement": true, + "SVGFEDistantLightElement": true, + "SVGAnimateMotionElement": true, + "SVGDescElement": true, + "SVGPathSegCurvetoCubicSmoothRel": true, + "SVGFESpecularLightingElement": true, + "SVGFEGaussianBlurElement": true, + "SVGFEComponentTransferElement": true, + "SVGNumberList": true, + "SVGTransformList": true, + "SVGForeignObjectElement": true, + "SVGRectElement": true, + "SVGFEDisplacementMapElement": true, + "SVGAnimateTransformElement": true, + "SVGAnimatedLength": true, + "SVGPointList": true, + "SVGPatternElement": true, + "SVGPathSegCurvetoCubicSmoothAbs": true, + "SVGCircleElement": true, + "SVGSetElement": true, + "SVGFETileElement": true, + "SVGMPathElement": true, + "SVGFEMergeNodeElement": true, + "SVGPathSegCurvetoQuadraticRel": true, + "SVGElement": true, + "SVGGraphicsElement": true, + "SVGSVGElement": true, + "SVGGElement": true, + "SVGGeometryElement": true, + "SVGPathElement": true, + "SVGLineElement": true, + "cat_html": true, + "HTMLTimeElement": true, + "HTMLPictureElement": true, + "HTMLMenuItemElement": true, + "HTMLFormElement": true, + "HTMLOptionElement": true, + "HTMLCanvasElement": true, + "HTMLTableSectionElement": true, + "HTMLSelectElement": true, + "HTMLUListElement": true, + "HTMLMetaElement": true, + "HTMLLinkElement": true, + "HTMLBaseElement": true, + "HTMLDataListElement": true, + "HTMLInputElement": true, + "HTMLMeterElement": true, + "HTMLSourceElement": true, + "HTMLTrackElement": true, + "HTMLTableColElement": true, + "HTMLFieldSetElement": true, + "HTMLDirectoryElement": true, + "HTMLTableCellElement": true, + "HTMLStyleElement": true, + "HTMLAudioElement": true, + "HTMLLegendElement": true, + "HTMLOListElement": true, + "HTMLEmbedElement": true, + "HTMLQuoteElement": true, + "HTMLMenuElement": true, + "HTMLHeadElement": true, + "HTMLUnknownElement": true, + "HTMLBRElement": true, + "HTMLProgressElement": true, + "HTMLMediaElement": true, + "HTMLFormControlsCollection": true, + "HTMLCollection": true, + "HTMLLIElement": true, + "HTMLDetailsElement": true, + "HTMLObjectElement": true, + "HTMLHeadingElement": true, + "HTMLTableCaptionElement": true, + "HTMLPreElement": true, + "HTMLAllCollection": true, + "HTMLFrameSetElement": true, + "HTMLFontElement": true, + "HTMLFrameElement": true, + "HTMLAnchorElement": true, + "HTMLOptGroupElement": true, + "HTMLVideoElement": true, + "HTMLModElement": true, + "HTMLBodyElement": true, + "HTMLTableElement": true, + "HTMLButtonElement": true, + "HTMLTableRowElement": true, + "HTMLAreaElement": true, + "HTMLDataElement": true, + "HTMLParamElement": true, + "HTMLLabelElement": true, + "HTMLTemplateElement": true, + "HTMLOptionsCollection": true, + "HTMLIFrameElement": true, + "HTMLTitleElement": true, + "HTMLMapElement": true, + "HTMLOutputElement": true, + "HTMLDListElement": true, + "HTMLParagraphElement": true, + "HTMLHRElement": true, + "HTMLImageElement": true, + "HTMLDocument": true, + "HTMLElement": true, + "HTMLScriptElement": true, + "HTMLHtmlElement": true, + "HTMLTextAreaElement": true, + "HTMLDivElement": true, + "HTMLSpanElement": true, + "cat_css": true, + "CSSStyleRule": true, + "CSSFontFaceRule": true, + "CSSPrimitiveValue": true, + "CSSStyleDeclaration": true, + "CSSStyleSheet": true, + "CSSPageRule": true, + "CSSSupportsRule": true, + "CSSMozDocumentRule": true, + "CSSKeyframeRule": true, + "CSSGroupingRule": true, + "CSS2Properties": true, + "CSSFontFeatureValuesRule": true, + "CSSRuleList": true, + "CSSPseudoElement": true, + "CSSMediaRule": true, + "CSSCounterStyleRule": true, + "CSSImportRule": true, + "CSSTransition": true, + "CSSAnimation": true, + "CSSValue": true, + "CSSNamespaceRule": true, + "CSSRule": true, + "CSS": true, + "CSSKeyframesRule": true, + "CSSConditionRule": true, + "CSSValueList": true, + "cat_event": true, + "ondevicemotion": true, + "ondeviceorientation": true, + "onabsolutedeviceorientation": true, + "ondeviceproximity": true, + "onuserproximity": true, + "ondevicelight": true, + "onvrdisplayconnect": true, + "onvrdisplaydisconnect": true, + "onvrdisplayactivate": true, + "onvrdisplaydeactivate": true, + "onvrdisplaypresentchange": true, + "onabort": true, + "onblur": true, + "onfocus": true, + "onauxclick": true, + "oncanplay": true, + "oncanplaythrough": true, + "onchange": true, + "onclick": true, + "onclose": true, + "oncontextmenu": true, + "ondblclick": true, + "ondrag": true, + "ondragend": true, + "ondragenter": true, + "ondragexit": true, + "ondragleave": true, + "ondragover": true, + "ondragstart": true, + "ondrop": true, + "ondurationchange": true, + "onemptied": true, + "onended": true, + "oninput": true, + "oninvalid": true, + "onkeydown": true, + "onkeypress": true, + "onkeyup": true, + "onload": true, + "onloadeddata": true, + "onloadedmetadata": true, + "onloadend": true, + "onloadstart": true, + "onmousedown": true, + "onmouseenter": true, + "onmouseleave": true, + "onmousemove": true, + "onmouseout": true, + "onmouseover": true, + "onmouseup": true, + "onwheel": true, + "onpause": true, + "onplay": true, + "onplaying": true, + "onprogress": true, + "onratechange": true, + "onreset": true, + "onresize": true, + "onscroll": true, + "onseeked": true, + "onseeking": true, + "onselect": true, + "onshow": true, + "onstalled": true, + "onsubmit": true, + "onsuspend": true, + "ontimeupdate": true, + "onvolumechange": true, + "onwaiting": true, + "onselectstart": true, + "ontoggle": true, + "onpointercancel": true, + "onpointerdown": true, + "onpointerup": true, + "onpointermove": true, + "onpointerout": true, + "onpointerover": true, + "onpointerenter": true, + "onpointerleave": true, + "ongotpointercapture": true, + "onlostpointercapture": true, + "onmozfullscreenchange": true, + "onmozfullscreenerror": true, + "onanimationcancel": true, + "onanimationend": true, + "onanimationiteration": true, + "onanimationstart": true, + "ontransitioncancel": true, + "ontransitionend": true, + "ontransitionrun": true, + "ontransitionstart": true, + "onwebkitanimationend": true, + "onwebkitanimationiteration": true, + "onwebkitanimationstart": true, + "onwebkittransitionend": true, + "onerror": true, + "onafterprint": true, + "onbeforeprint": true, + "onbeforeunload": true, + "onhashchange": true, + "onlanguagechange": true, + "onmessage": true, + "onmessageerror": true, + "onoffline": true, + "ononline": true, + "onpagehide": true, + "onpageshow": true, + "onpopstate": true, + "onstorage": true, + "onunload": true, + "cat_rtc": true, + "RTCDTMFSender": true, + "RTCStatsReport": true, + "RTCTrackEvent": true, + "RTCDataChannelEvent": true, + "RTCPeerConnectionIceEvent": true, + "RTCCertificate": true, + "RTCDTMFToneChangeEvent": true, + "RTCPeerConnection": true, + "RTCIceCandidate": true, + "RTCRtpReceiver": true, + "RTCRtpSender": true, + "RTCSessionDescription": true, + "cat_vr": true, + "VRStageParameters": true, + "VRFrameData": true, + "VRDisplay": true, + "VRDisplayEvent": true, + "VRFieldOfView": true, + "VRDisplayCapabilities": true, + "VREyeParameters": true, + "VRPose": true, + "cat_dom": true, + "DOMStringMap": true, + "DOMRectReadOnly": true, + "DOMException": true, + "DOMRect": true, + "DOMMatrix": true, + "DOMMatrixReadOnly": true, + "DOMPointReadOnly": true, + "DOMPoint": true, + "DOMQuad": true, + "DOMRequest": true, + "DOMParser": true, + "DOMTokenList": true, + "DOMStringList": true, + "DOMImplementation": true, + "DOMError": true, + "DOMRectList": true, + "DOMCursor": true, + "cat_idb": true, + "IDBFileRequest": true, + "IDBTransaction": true, + "IDBCursor": true, + "IDBFileHandle": true, + "IDBMutableFile": true, + "IDBKeyRange": true, + "IDBVersionChangeEvent": true, + "IDBObjectStore": true, + "IDBFactory": true, + "IDBCursorWithValue": true, + "IDBOpenDBRequest": true, + "IDBRequest": true, + "IDBIndex": true, + "IDBDatabase": true, + "cat_audio": true, + "AudioContext": true, + "AudioBuffer": true, + "AudioBufferSourceNode": true, + "Audio": true, + "MediaElementAudioSourceNode": true, + "AudioNode": true, + "BaseAudioContext": true, + "AudioListener": true, + "MediaStreamAudioSourceNode": true, + "OfflineAudioContext": true, + "AudioDestinationNode": true, + "AudioParam": true, + "MediaStreamAudioDestinationNode": true, + "OfflineAudioCompletionEvent": true, + "AudioStreamTrack": true, + "AudioScheduledSourceNode": true, + "AudioProcessingEvent": true, + "cat_gamepad": true, + "GamepadButton": true, + "GamepadHapticActuator": true, + "GamepadAxisMoveEvent": true, + "GamepadPose": true, + "GamepadEvent": true, + "Gamepad": true, + "GamepadButtonEvent": true, + "cat_media": true, + "MediaKeys": true, + "MediaKeyError": true, + "MediaSource": true, + "MediaDevices": true, + "MediaKeyStatusMap": true, + "MediaStreamTrackEvent": true, + "MediaRecorder": true, + "MediaQueryListEvent": true, + "MediaStream": true, + "MediaEncryptedEvent": true, + "MediaStreamTrack": true, + "MediaError": true, + "MediaStreamEvent": true, + "MediaQueryList": true, + "MediaKeySystemAccess": true, + "MediaDeviceInfo": true, + "MediaKeySession": true, + "MediaList": true, + "MediaRecorderErrorEvent": true, + "MediaKeyMessageEvent": true, + "cat_event2": true, + "SpeechSynthesisErrorEvent": true, + "BeforeUnloadEvent": true, + "CustomEvent": true, + "PageTransitionEvent": true, + "PopupBlockedEvent": true, + "CloseEvent": true, + "ProgressEvent": true, + "MutationEvent": true, + "MessageEvent": true, + "FocusEvent": true, + "TrackEvent": true, + "DeviceMotionEvent": true, + "TimeEvent": true, + "PointerEvent": true, + "UserProximityEvent": true, + "StorageEvent": true, + "DragEvent": true, + "MouseScrollEvent": true, + "EventSource": true, + "PopStateEvent": true, + "DeviceProximityEvent": true, + "SpeechSynthesisEvent": true, + "XMLHttpRequestEventTarget": true, + "ClipboardEvent": true, + "AnimationPlaybackEvent": true, + "DeviceLightEvent": true, + "BlobEvent": true, + "MouseEvent": true, + "WheelEvent": true, + "InputEvent": true, + "HashChangeEvent": true, + "DeviceOrientationEvent": true, + "CompositionEvent": true, + "KeyEvent": true, + "ScrollAreaEvent": true, + "KeyboardEvent": true, + "TransitionEvent": true, + "ErrorEvent": true, + "AnimationEvent": true, + "FontFaceSetLoadEvent": true, + "EventTarget": true, + "captureEvents": true, + "releaseEvents": true, + "Event": true, + "UIEvent": true, + "cat_other": false, + "undefined": false, + "Array": false, + "Boolean": false, + "JSON": false, + "Date": false, + "Math": false, + "Number": false, + "String": false, + "RegExp": false, + "Error": false, + "InternalError": false, + "EvalError": false, + "RangeError": false, + "ReferenceError": false, + "SyntaxError": false, + "TypeError": false, + "URIError": false, + "ArrayBuffer": true, + "Int8Array": true, + "Uint8Array": true, + "Int16Array": true, + "Uint16Array": true, + "Int32Array": true, + "Uint32Array": true, + "Float32Array": true, + "Float64Array": true, + "Uint8ClampedArray": true, + "Proxy": true, + "WeakMap": true, + "Map": true, + "Set": true, + "DataView": false, + "Symbol": false, + "SharedArrayBuffer": true, + "Intl": false, + "TypedObject": true, + "Reflect": true, + "SIMD": true, + "WeakSet": true, + "Atomics": true, + "Promise": true, + "WebAssembly": true, + "NaN": false, + "Infinity": false, + "isNaN": false, + "isFinite": false, + "parseFloat": false, + "parseInt": false, + "escape": false, + "unescape": false, + "decodeURI": false, + "encodeURI": false, + "decodeURIComponent": false, + "encodeURIComponent": false, + "uneval": false, + "BatteryManager": true, + "CanvasGradient": true, + "TextDecoder": true, + "Plugin": true, + "PushManager": true, + "ChannelMergerNode": true, + "PerformanceResourceTiming": true, + "ServiceWorker": true, + "TextTrackCueList": true, + "PerformanceEntry": true, + "TextTrackList": true, + "StyleSheet": true, + "PerformanceMeasure": true, + "DesktopNotificationCenter": true, + "Comment": true, + "DelayNode": true, + "XPathResult": true, + "CDATASection": true, + "MessageChannel": true, + "BiquadFilterNode": true, + "SpeechSynthesisUtterance": true, + "Crypto": true, + "Navigator": true, + "FileList": true, + "URLSearchParams": false, + "ServiceWorkerContainer": true, + "ValidityState": true, + "ProcessingInstruction": true, + "AbortSignal": true, + "FontFace": true, + "FileReader": true, + "Worker": true, + "External": true, + "ImageBitmap": true, + "TimeRanges": true, + "Option": true, + "TextTrack": true, + "Image": true, + "AnimationTimeline": true, + "VideoPlaybackQuality": true, + "VTTCue": true, + "Storage": true, + "XPathExpression": true, + "CharacterData": false, + "TextMetrics": true, + "AnimationEffectReadOnly": true, + "PerformanceTiming": false, + "PerformanceMark": true, + "ImageBitmapRenderingContext": true, + "Headers": true, + "Range": false, + "Rect": true, + "AnimationEffectTimingReadOnly": true, + "KeyframeEffect": true, + "Permissions": true, + "TextEncoder": true, + "ImageData": true, + "SpeechSynthesisVoice": true, + "StorageManager": true, + "TextTrackCue": true, + "WebSocket": true, + "DocumentType": true, + "XPathEvaluator": true, + "PerformanceNavigationTiming": true, + "IdleDeadline": true, + "FileSystem": true, + "FileSystemFileEntry": true, + "CacheStorage": true, + "MimeType": true, + "PannerNode": true, + "NodeFilter": true, + "StereoPannerNode": true, + "console": false, + "DynamicsCompressorNode": true, + "PaintRequest": true, + "RGBColor": true, + "FontFaceSet": false, + "PaintRequestList": true, + "FileSystemEntry": true, + "XMLDocument": false, + "SourceBuffer": false, + "Screen": true, + "NamedNodeMap": false, + "History": true, + "Response": true, + "AnimationEffectTiming": true, + "ServiceWorkerRegistration": true, + "CanvasRenderingContext2D": true, + "ScriptProcessorNode": true, + "FileSystemDirectoryReader": true, + "MimeTypeArray": true, + "CanvasCaptureMediaStream": true, + "Directory": true, + "mozRTCPeerConnection": true, + "PerformanceObserverEntryList": true, + "PushSubscriptionOptions": true, + "Text": false, + "IntersectionObserverEntry": true, + "SubtleCrypto": true, + "Animation": true, + "DataTransfer": true, + "TreeWalker": true, + "XMLHttpRequest": true, + "LocalMediaStream": true, + "ConvolverNode": true, + "WaveShaperNode": true, + "DataTransferItemList": false, + "Request": true, + "SourceBufferList": false, + "XSLTProcessor": true, + "XMLHttpRequestUpload": true, + "SharedWorker": true, + "Notification": false, + "DataTransferItem": true, + "AnalyserNode": true, + "mozRTCIceCandidate": true, + "PerformanceObserver": true, + "OfflineResourceList": true, + "FileSystemDirectoryEntry": true, + "DesktopNotification": false, + "DataChannel": true, + "IIRFilterNode": true, + "ChannelSplitterNode": true, + "File": true, + "ConstantSourceNode": true, + "CryptoKey": true, + "GainNode": true, + "AbortController": true, + "Attr": true, + "SpeechSynthesis": true, + "PushSubscription": false, + "XMLStylesheetProcessingInstruction": false, + "NodeIterator": true, + "VideoStreamTrack": true, + "XMLSerializer": true, + "CaretPosition": true, + "FormData": true, + "CanvasPattern": true, + "mozRTCSessionDescription": true, + "Path2D": true, + "PerformanceNavigation": true, + "URL": false, + "PluginArray": true, + "MutationRecord": true, + "WebKitCSSMatrix": true, + "PeriodicWave": true, + "DocumentFragment": true, + "DocumentTimeline": false, + "ScreenOrientation": true, + "BroadcastChannel": true, + "PermissionStatus": true, + "IntersectionObserver": true, + "Blob": true, + "MessagePort": true, + "BarProp": true, + "OscillatorNode": true, + "Cache": true, + "RadioNodeList": true, + "KeyframeEffectReadOnly": true, + "InstallTrigger": true, + "Function": false, + "Object": false, + "eval": true, + "Window": false, + "close": false, + "stop": false, + "focus": false, + "blur": false, + "open": true, + "alert": false, + "confirm": false, + "prompt": false, + "print": false, + "postMessage": true, + "getSelection": true, + "getComputedStyle": true, + "matchMedia": true, + "moveTo": false, + "moveBy": false, + "resizeTo": false, + "resizeBy": false, + "scroll": false, + "scrollTo": false, + "scrollBy": false, + "requestAnimationFrame": true, + "cancelAnimationFrame": true, + "getDefaultComputedStyle": false, + "scrollByLines": false, + "scrollByPages": false, + "sizeToContent": false, + "updateCommands": true, + "find": false, + "dump": true, + "setResizable": false, + "requestIdleCallback": false, + "cancelIdleCallback": false, + "btoa": true, + "atob": true, + "setTimeout": true, + "clearTimeout": true, + "setInterval": true, + "clearInterval": true, + "createImageBitmap": true, + "fetch": true, + "self": true, + "name": false, + "history": true, + "locationbar": true, + "menubar": true, + "personalbar": true, + "scrollbars": true, + "statusbar": true, + "toolbar": true, + "status": true, + "closed": true, + "frames": true, + "length": false, + "opener": true, + "parent": true, + "frameElement": true, + "navigator": true, + "external": true, + "applicationCache": true, + "screen": true, + "innerWidth": true, + "innerHeight": true, + "scrollX": true, + "pageXOffset": true, + "scrollY": true, + "pageYOffset": true, + "screenX": true, + "screenY": true, + "outerWidth": true, + "outerHeight": true, + "performance": true, + "mozInnerScreenX": true, + "mozInnerScreenY": true, + "devicePixelRatio": true, + "scrollMaxX": true, + "scrollMaxY": true, + "fullScreen": false, + "mozPaintCount": true, + "sidebar": false, + "crypto": true, + "speechSynthesis": true, + "localStorage": true, + "origin": true, + "isSecureContext": false, + "indexedDB": true, + "caches": true, + "sessionStorage": true, + "window": false, + "document": true, + "location": false, + "top": true, + "netscape": true, + "Node": true, + "Document": true, + "Performance": false, + "startProfiling": true, + "stopProfiling": true, + "pauseProfilers": true, + "resumeProfilers": true, + "dumpProfile": true, + "getMaxGCPauseSinceClear": true, + "clearMaxGCPauseAccumulator": true, + "Location": true, + "StyleSheetList": false, + "Selection": false, + "Element": true, + "AnonymousContent": false, + "MutationObserver": true, + "NodeList": true, + "StopIteration": true }; @@ -842,155 +842,155 @@ var fname_data = { * */ var DEBUG = true; -console.log("DEBUG:"+DEBUG); +console.log("DEBUG:" + DEBUG); -function dbg_print(a,b){ - if(DEBUG == true){ - //console.log(a,b) - } +function dbg_print(a, b) { + if (DEBUG == true) { + //console.log(a,b) + } } -function full_evaluate(script){ - var res = true; - if(script === undefined || script == ""){ - return [true,"Harmless null script"]; - } +function full_evaluate(script) { + var res = true; + if (script === undefined || script == "") { + return [true, "Harmless null script"]; + } - var ast = acornLoose.parse(script).body[0]; + var ast = acornLoose.parse(script).body[0]; - var flag = false; - var amtloops = 0; + var flag = false; + var amtloops = 0; - var loopkeys = {"for":true,"if":true,"while":true,"switch":true}; - var operators = {"||":true,"&&":true,"=":true,"==":true,"++":true,"--":true,"+=":true,"-=":true,"*":true}; - try{ - var tokens = acorn.tokenizer(script); - }catch(e){ - console.warn("Tokenizer could not be initiated (probably invalid code)"); - return [false,"Tokenizer could not be initiated (probably invalid code)"]; - } - try{ - var toke = tokens.getToken(); - }catch(e){ - console.warn("couldn't get first token (probably invalid code)"); - console.warn("Continuing evaluation"); - } + var loopkeys = { "for": true, "if": true, "while": true, "switch": true }; + var operators = { "||": true, "&&": true, "=": true, "==": true, "++": true, "--": true, "+=": true, "-=": true, "*": true }; + try { + var tokens = acorn.tokenizer(script); + } catch (e) { + console.warn("Tokenizer could not be initiated (probably invalid code)"); + return [false, "Tokenizer could not be initiated (probably invalid code)"]; + } + try { + var toke = tokens.getToken(); + } catch (e) { + console.warn("couldn't get first token (probably invalid code)"); + console.warn("Continuing evaluation"); + } - /** - * Given the end of an identifer token, it tests for bracket suffix notation - */ - function being_called(end){ - var i = 0; - while(script.charAt(end+i).match(/\s/g) !== null){ - i++; - if(i >= script.length-1){ - return false; - } - } - if(script.charAt(end+i) == "("){ - return true; - }else{ - return false; - } - } - /** - * Given the end of an identifer token, it tests for parentheses - */ - function is_bsn(end){ - var i = 0; - while(script.charAt(end+i).match(/\s/g) !== null){ - i++; - if(i >= script.length-1){ - return false; - } - } - if(script.charAt(end+i) == "["){ - return true; - }else{ - return false; - } - } - var error_count = 0; - while(toke.type != acorn.tokTypes.eof){ - if(toke.type.keyword !== undefined){ - // This type of loop detection ignores functional loop alternatives and ternary operators - //dbg_print("Keyword:"+toke.type.keyword); - console.log(toke); - if(toke.type.keyword == "function"){ - dbg_print("%c NONTRIVIAL: Function declaration.","color:red"); - if(DEBUG == false){ - return [false,"NONTRIVIAL: Function declaration."]; - } - } + /** + * Given the end of an identifer token, it tests for bracket suffix notation + */ + function being_called(end) { + var i = 0; + while (script.charAt(end + i).match(/\s/g) !== null) { + i++; + if (i >= script.length - 1) { + return false; + } + } + if (script.charAt(end + i) == "(") { + return true; + } else { + return false; + } + } + /** + * Given the end of an identifer token, it tests for parentheses + */ + function is_bsn(end) { + var i = 0; + while (script.charAt(end + i).match(/\s/g) !== null) { + i++; + if (i >= script.length - 1) { + return false; + } + } + if (script.charAt(end + i) == "[") { + return true; + } else { + return false; + } + } + var error_count = 0; + while (toke.type != acorn.tokTypes.eof) { + if (toke.type.keyword !== undefined) { + // This type of loop detection ignores functional loop alternatives and ternary operators + //dbg_print("Keyword:"+toke.type.keyword); + console.log(toke); + if (toke.type.keyword == "function") { + dbg_print("%c NONTRIVIAL: Function declaration.", "color:red"); + if (DEBUG == false) { + return [false, "NONTRIVIAL: Function declaration."]; + } + } - if(loopkeys[toke.type.keyword] !== undefined){ - amtloops++; - if(amtloops > 3){ - dbg_print("%c NONTRIVIAL: Too many loops/conditionals.","color:red"); - if(DEBUG == false){ - return [false,"NONTRIVIAL: Too many loops/conditionals."]; - } - } - } - }else if(toke.value !== undefined){ - var status = fname_data[toke.value]; - if(status === true){ // is the identifier banned? - dbg_print("%c NONTRIVIAL: nontrivial token: '"+toke.value+"'","color:red"); - if(DEBUG == false){ - return [false,"NONTRIVIAL: nontrivial token: '"+toke.value+"'"]; - } - }else if(status === false){// is the identifier not banned? - // Is there bracket suffix notation? - if(operators[toke.value] === undefined){ - if(is_bsn(toke.end)){ - dbg_print("%c NONTRIVIAL: Bracket suffix notation on variable '"+toke.value+"'","color:red"); - if(DEBUG == false){ - return [false,"%c NONTRIVIAL: Bracket suffix notation on variable '"+toke.value+"'"]; - } - } - } - }else if(status === undefined){// is the identifier user defined? - // Are arguments being passed to a user defined variable? - if(being_called(toke.end)){ - dbg_print("%c NONTRIVIAL: User defined variable '"+toke.value+"' called as function","color:red"); - if(DEBUG == false){ - return [false,"NONTRIVIAL: User defined variable '"+toke.value+"' called as function"]; - } - } - // Is there bracket suffix notation? - if(operators[toke.value] === undefined){ - if(is_bsn(toke.end)){ - dbg_print("%c NONTRIVIAL: Bracket suffix notation on variable '"+toke.value+"'","color:red"); - if(DEBUG == false){ - return [false,"NONTRIVIAL: Bracket suffix notation on variable '"+toke.value+"'"]; - } - } - } - }else{ - dbg_print("trivial token:"+toke.value); - } - } - // If not a keyword or an identifier it's some kind of operator, field parenthesis, brackets - try{ - toke = tokens.getToken(); - }catch(e){ - dbg_print("Denied script because it cannot be parsed."); - return [false,"NONTRIVIAL: Cannot be parsed."]; - console.warn("Continuing evaluation"); - error_count++; - } - } + if (loopkeys[toke.type.keyword] !== undefined) { + amtloops++; + if (amtloops > 3) { + dbg_print("%c NONTRIVIAL: Too many loops/conditionals.", "color:red"); + if (DEBUG == false) { + return [false, "NONTRIVIAL: Too many loops/conditionals."]; + } + } + } + } else if (toke.value !== undefined) { + var status = fname_data[toke.value]; + if (status === true) { // is the identifier banned? + dbg_print("%c NONTRIVIAL: nontrivial token: '" + toke.value + "'", "color:red"); + if (DEBUG == false) { + return [false, "NONTRIVIAL: nontrivial token: '" + toke.value + "'"]; + } + } else if (status === false) {// is the identifier not banned? + // Is there bracket suffix notation? + if (operators[toke.value] === undefined) { + if (is_bsn(toke.end)) { + dbg_print("%c NONTRIVIAL: Bracket suffix notation on variable '" + toke.value + "'", "color:red"); + if (DEBUG == false) { + return [false, "%c NONTRIVIAL: Bracket suffix notation on variable '" + toke.value + "'"]; + } + } + } + } else if (status === undefined) {// is the identifier user defined? + // Are arguments being passed to a user defined variable? + if (being_called(toke.end)) { + dbg_print("%c NONTRIVIAL: User defined variable '" + toke.value + "' called as function", "color:red"); + if (DEBUG == false) { + return [false, "NONTRIVIAL: User defined variable '" + toke.value + "' called as function"]; + } + } + // Is there bracket suffix notation? + if (operators[toke.value] === undefined) { + if (is_bsn(toke.end)) { + dbg_print("%c NONTRIVIAL: Bracket suffix notation on variable '" + toke.value + "'", "color:red"); + if (DEBUG == false) { + return [false, "NONTRIVIAL: Bracket suffix notation on variable '" + toke.value + "'"]; + } + } + } + } else { + dbg_print("trivial token:" + toke.value); + } + } + // If not a keyword or an identifier it's some kind of operator, field parenthesis, brackets + try { + toke = tokens.getToken(); + } catch (e) { + dbg_print("Denied script because it cannot be parsed."); + return [false, "NONTRIVIAL: Cannot be parsed."]; + console.warn("Continuing evaluation"); + error_count++; + } + } - dbg_print("%cAppears to be trivial.","color:green;"); - return [true,"Script appears to be trivial."]; + dbg_print("%cAppears to be trivial.", "color:green;"); + return [true, "Script appears to be trivial."]; } //**************************************************************************************************** -window.onload = function () { - document.getElementById("parse").addEventListener("click",function(){ - var script = document.getElementById("input").value; - var ast = acornLoose.parse(script).body[0]; - document.getElementById("output").innerHTML = JSON.stringify(ast, null, '\t'); // Indented with tab - document.getElementById("output").innerHTML = full_evaluate(script) + "\n\n" + document.getElementById("output").innerHTML; - }); +window.onload = function() { + document.getElementById("parse").addEventListener("click", function() { + var script = document.getElementById("input").value; + var ast = acornLoose.parse(script).body[0]; + document.getElementById("output").innerHTML = JSON.stringify(ast, null, '\t'); // Indented with tab + document.getElementById("output").innerHTML = full_evaluate(script) + "\n\n" + document.getElementById("output").innerHTML; + }); } -- cgit v1.2.3