├── Browser ├── AnimationTimeline │ ├── AnimationTimeline.js │ └── DocumentTimeline │ │ └── DocumentTimeline.js ├── BarProp │ └── BarProp.js ├── BrowserCode.js ├── CSSRuleList │ └── CSSRuleList.js ├── CSSStyleDeclaration │ └── CSSStyleDeclaration.js ├── CacheStorage │ └── CacheStorage.js ├── CanvasRenderingContext2D │ └── CanvasRenderingContext2D.js ├── CreateEnv.js ├── CredentialsContainer │ └── CredentialsContainer.js ├── Crypto │ └── Crypto.js ├── CustomElementRegistry │ └── CustomElementRegistry.js ├── DOMException │ └── DOMException.js ├── DOMFileSystem │ └── DOMFileSystem.js ├── DOMImplementation │ └── DOMImplementation.js ├── DOMParser │ └── DOMParser.js ├── DOMRectList │ └── DOMRectList.js ├── DOMRectReadOnly │ ├── DOMRect │ │ └── DOMRect.js │ └── DOMRectReadOnly.js ├── DOMStringList │ └── DOMStringList.js ├── DOMStringMap │ └── DOMStringMap.js ├── DOMTokenList │ └── DOMTokenList.js ├── DeprecatedStorageQuota │ └── DeprecatedStorageQuota.js ├── DeviceMotionEventAcceleration │ └── DeviceMotionEventAcceleration.js ├── DeviceMotionEventRotationRate │ └── DeviceMotionEventRotationRate.js ├── Entry │ ├── DirectoryEntry │ │ └── DirectoryEntry.js │ └── Entry.js ├── Event │ ├── AnimationEvent │ │ └── AnimationEvent.js │ ├── BeforeUnloadEvent │ │ └── BeforeUnloadEvent.js │ ├── DeviceMotionEvent │ │ └── DeviceMotionEvent.js │ ├── DeviceOrientationEvent │ │ └── DeviceOrientationEvent.js │ ├── Event.js │ ├── FormDataEvent │ │ └── FormDataEvent.js │ ├── MessageEvent │ │ └── MessageEvent.js │ ├── PromiseRejectionEvent │ │ └── PromiseRejectionEvent.js │ ├── TransitionEvent │ │ └── TransitionEvent.js │ └── UIEvent │ │ ├── MouseEvent │ │ ├── MouseEvent.js │ │ └── PointerEvent │ │ │ └── PointerEvent.js │ │ ├── TextEvent │ │ └── TextEvent.js │ │ ├── TouchEvent │ │ └── TouchEvent.js │ │ └── UIEvent.js ├── EventCounts │ └── EventCounts.js ├── EventTarget │ ├── AbortSignal │ │ └── AbortSignal.js │ ├── BaseAudioContext │ │ ├── BaseAudioContext.js │ │ └── OfflineAudioContext │ │ │ └── OfflineAudioContext.js │ ├── BatteryManager │ │ └── BatteryManager.js │ ├── Bluetooth │ │ └── Bluetooth.js │ ├── Clipboard │ │ └── Clipboard.js │ ├── CookieStore │ │ └── CookieStore.js │ ├── DocumentPictureInPicture │ │ └── DocumentPictureInPicture.js │ ├── EventTarget.js │ ├── FileReader │ │ └── FileReader.js │ ├── FontFaceSet │ │ └── FontFaceSet.js │ ├── HID │ │ └── HID.js │ ├── IDBDatabase │ │ └── IDBDatabase.js │ ├── IDBRequest │ │ ├── IDBOpenDBRequest │ │ │ └── IDBOpenDBRequest.js │ │ └── IDBRequest.js │ ├── MediaDevices │ │ └── MediaDevices.js │ ├── MediaQueryList │ │ └── MediaQueryList.js │ ├── MessagePort │ │ └── MessagePort.js │ ├── Navigation │ │ └── Navigation.js │ ├── NavigationHistoryEntry │ │ └── NavigationHistoryEntry.js │ ├── NavigatorManagedData │ │ └── NavigatorManagedData.js │ ├── NetworkInformation │ │ └── NetworkInformation.js │ ├── Node │ │ ├── Attr │ │ │ └── Attr.js │ │ ├── CharacterData │ │ │ ├── CharacterData.js │ │ │ ├── Comment │ │ │ │ └── Comment.js │ │ │ └── Text │ │ │ │ └── Text.js │ │ ├── Document │ │ │ ├── Document.js │ │ │ └── HTMLDocument │ │ │ │ └── HTMLDocument.js │ │ ├── DocumentFragment │ │ │ └── DocumentFragment.js │ │ ├── DocumentType │ │ │ └── DocumentType.js │ │ ├── Element │ │ │ ├── Element.js │ │ │ └── HTMLElement │ │ │ │ ├── HTMLAnchorElement │ │ │ │ └── HTMLAnchorElement.js │ │ │ │ ├── HTMLBodyElement │ │ │ │ └── HTMLBodyElement.js │ │ │ │ ├── HTMLButtonElement │ │ │ │ └── HTMLButtonElement.js │ │ │ │ ├── HTMLCanvasElement │ │ │ │ └── HTMLCanvasElement.js │ │ │ │ ├── HTMLDivElement │ │ │ │ └── HTMLDivElement.js │ │ │ │ ├── HTMLElement.js │ │ │ │ ├── HTMLFormElement │ │ │ │ └── HTMLFormElement.js │ │ │ │ ├── HTMLHeadElement │ │ │ │ └── HTMLHeadElement.js │ │ │ │ ├── HTMLHtmlElement │ │ │ │ └── HTMLHtmlElement.js │ │ │ │ ├── HTMLIFrameElement │ │ │ │ └── HTMLIFrameElement.js │ │ │ │ ├── HTMLImageElement │ │ │ │ └── HTMLImageElement.js │ │ │ │ ├── HTMLInputElement │ │ │ │ └── HTMLInputElement.js │ │ │ │ ├── HTMLLinkElement │ │ │ │ └── HTMLLinkElement.js │ │ │ │ ├── HTMLMediaElement │ │ │ │ ├── HTMLAudioElement │ │ │ │ │ └── HTMLAudioElement.js │ │ │ │ ├── HTMLMediaElement.js │ │ │ │ └── HTMLVideoElement │ │ │ │ │ └── HTMLVideoElement.js │ │ │ │ ├── HTMLMetaElement │ │ │ │ └── HTMLMetaElement.js │ │ │ │ ├── HTMLParagraphElement │ │ │ │ └── HTMLParagraphElement.js │ │ │ │ ├── HTMLScriptElement │ │ │ │ └── HTMLScriptElement.js │ │ │ │ ├── HTMLSelectElement │ │ │ │ └── HTMLSelectElement.js │ │ │ │ ├── HTMLSpanElement │ │ │ │ └── HTMLSpanElement.js │ │ │ │ ├── HTMLStyleElement │ │ │ │ └── HTMLStyleElement.js │ │ │ │ ├── HTMLTitleElement │ │ │ │ └── HTMLTitleElement.js │ │ │ │ └── HTMLUnknownElement │ │ │ │ └── HTMLUnknownElement.js │ │ └── Node.js │ ├── OffscreenCanvas │ │ └── OffscreenCanvas.js │ ├── Performance │ │ └── Performance.js │ ├── PermissionStatus │ │ └── PermissionStatus.js │ ├── RTCPeerConnection │ │ └── RTCPeerConnection.js │ ├── RemotePlayback │ │ └── RemotePlayback.js │ ├── Screen │ │ └── Screen.js │ ├── ScreenOrientation │ │ └── ScreenOrientation.js │ ├── Serial │ │ └── Serial.js │ ├── ServiceWorker │ │ └── ServiceWorker.js │ ├── ServiceWorkerContainer │ │ └── ServiceWorkerContainer.js │ ├── ServiceWorkerRegistration │ │ └── ServiceWorkerRegistration.js │ ├── SourceBufferList │ │ └── SourceBufferList.js │ ├── SpeechSynthesis │ │ └── SpeechSynthesis.js │ ├── StorageManager │ │ └── StorageManager.js │ ├── TextTrackList │ │ └── TextTrackList.js │ ├── TrustedTypePolicyFactory │ │ └── TrustedTypePolicyFactory.js │ ├── USB │ │ └── USB.js │ ├── VirtualKeyboard │ │ └── VirtualKeyboard.js │ ├── VisualViewport │ │ └── VisualViewport.js │ ├── WebSocket │ │ └── WebSocket.js │ ├── WindowControlsOverlay │ │ └── WindowControlsOverlay.js │ ├── XMLHttpRequestEventTarget │ │ ├── XMLHttpRequest │ │ │ └── XMLHttpRequest.js │ │ ├── XMLHttpRequestEventTarget.js │ │ └── XMLHttpRequestUpload │ │ │ └── XMLHttpRequestUpload.js │ └── XRSystem │ │ └── XRSystem.js ├── External │ └── External.js ├── FeaturePolicy │ └── FeaturePolicy.js ├── FileSystemHandle │ ├── FileSystemDirectoryHandle │ │ └── FileSystemDirectoryHandle.js │ └── FileSystemHandle.js ├── FontFace │ └── FontFace.js ├── FragmentDirective │ └── FragmentDirective.js ├── GPU │ └── GPU.js ├── Geolocation │ └── Geolocation.js ├── HTMLAllCollection │ └── HTMLAllCollection.js ├── HTMLCollection │ ├── HTMLCollection.js │ ├── HTMLFormControlsCollection │ │ └── HTMLFormControlsCollection.js │ └── HTMLOptionsCollection │ │ └── HTMLOptionsCollection.js ├── Headers │ └── Headers.js ├── History │ └── History.js ├── IDBFactory │ └── IDBFactory.js ├── Ink │ └── Ink.js ├── Keyboard │ └── Keyboard.js ├── LaunchQueue │ └── LaunchQueue.js ├── Location │ └── Location.js ├── LockManager │ └── LockManager.js ├── MediaCapabilities │ └── MediaCapabilities.js ├── MediaDeviceInfo │ ├── InputDeviceInfo │ │ └── InputDeviceInfo.js │ └── MediaDeviceInfo.js ├── MediaSession │ └── MediaSession.js ├── MemoryInfo │ └── MemoryInfo.js ├── MimeType │ └── MimeType.js ├── MimeTypeArray │ └── MimeTypeArray.js ├── MutationObserver │ └── MutationObserver.js ├── NamedNodeMap │ └── NamedNodeMap.js ├── Navigator │ └── Navigator.js ├── NavigatorUAData │ └── NavigatorUAData.js ├── NodeList │ ├── NodeList.js │ └── RadioNodeList │ │ └── RadioNodeList.js ├── PerformanceEntry │ ├── PerformanceEntry.js │ └── PerformanceResourceTiming │ │ └── PerformanceResourceTiming.js ├── PerformanceNavigation │ └── PerformanceNavigation.js ├── PerformanceServerTiming │ └── PerformanceServerTiming.js ├── PerformanceTiming │ └── PerformanceTiming.js ├── Permissions │ └── Permissions.js ├── Plugin │ └── Plugin.js ├── PluginArray │ └── PluginArray.js ├── Presentation │ └── Presentation.js ├── Promise │ └── Promise.js ├── ReadableStreamDefaultController │ └── ReadableStreamDefaultController.js ├── Request │ └── Request.js ├── Response │ └── Response.js ├── Scheduler │ └── Scheduler.js ├── Scheduling │ └── Scheduling.js ├── SharedStorage │ └── SharedStorage.js ├── SharedStorageWorklet │ └── SharedStorageWorklet.js ├── SpeechSynthesisVoice │ └── SpeechSynthesisVoice.js ├── Storage │ └── Storage.js ├── StyleMedia │ └── StyleMedia.js ├── StylePropertyMapReadOnly │ ├── StylePropertyMap │ │ └── StylePropertyMap.js │ └── StylePropertyMapReadOnly.js ├── StyleSheetList │ └── StyleSheetList.js ├── SubtleCrypto │ └── SubtleCrypto.js ├── TextDecoder │ └── TextDecoder.js ├── TimeRanges │ └── TimeRanges.js ├── Touch │ └── Touch.js ├── TouchList │ └── TouchList.js ├── TrustedHTML │ └── TrustedHTML.js ├── TrustedScript │ └── TrustedScript.js ├── UserActivation │ └── UserActivation.js ├── ValidityState │ └── ValidityState.js ├── WGSLLanguageFeatures │ └── WGSLLanguageFeatures.js ├── WakeLock │ └── WakeLock.js ├── WebGL2RenderingContext │ └── WebGL2RenderingContext.js ├── WebGLBuffer │ └── WebGLBuffer.js ├── WebGLFramebuffer │ └── WebGLFramebuffer.js ├── WebGLProgram │ └── WebGLProgram.js ├── WebGLRenderbuffer │ └── WebGLRenderbuffer.js ├── WebGLRenderingContext │ └── WebGLRenderingContext.js ├── WebGLShader │ └── WebGLShader.js ├── WebGLShaderPrecisionFormat │ └── WebGLShaderPrecisionFormat.js ├── WebGLTexture │ └── WebGLTexture.js ├── WebGLUniformLocation │ └── WebGLUniformLocation.js ├── Window │ ├── Window.js │ ├── Window_isolate.js │ └── Window_vm2.js ├── XPathExpression │ └── XPathExpression.js ├── XPathResult │ └── XPathResult.js ├── others │ └── others.js └── webGLExtensions │ └── webGLExtensions.js ├── README.md ├── Sites └── rs_药监局.js ├── Tools ├── ToolCode.js ├── fingerprint.js ├── isolated_rsvm.node ├── parser.js ├── rsvm-isolate-vm.js └── rsvm-vm2.js ├── index.js └── isolate-rsvm ├── binding.gyp ├── src ├── external_copy │ ├── error.h │ ├── external_copy.cc │ ├── external_copy.h │ ├── serializer.cc │ ├── serializer.h │ ├── serializer_nortti.cc │ ├── string.cc │ └── string.h ├── isolate │ ├── allocator.h │ ├── allocator_nortti.cc │ ├── class_handle.h │ ├── cpu_profile_manager.cc │ ├── cpu_profile_manager.h │ ├── environment.cc │ ├── environment.h │ ├── executor.cc │ ├── executor.h │ ├── external.h │ ├── functor_runners.h │ ├── generic │ │ ├── array.h │ │ ├── callbacks.h │ │ ├── error.h │ │ ├── extract_params.h │ │ ├── handle_cast.h │ │ └── read_option.h │ ├── holder.cc │ ├── holder.h │ ├── inspector.cc │ ├── inspector.h │ ├── node_wrapper.h │ ├── platform_delegate.cc │ ├── platform_delegate.h │ ├── remote_handle.h │ ├── run_with_timeout.h │ ├── runnable.h │ ├── scheduler.cc │ ├── scheduler.h │ ├── specific.h │ ├── stack_trace.cc │ ├── stack_trace.h │ ├── strings.h │ ├── three_phase_task.cc │ ├── three_phase_task.h │ ├── transferable.h │ ├── util.h │ ├── v8_inspector_wrapper.h │ └── v8_version.h ├── isolated_vm.h ├── lib │ ├── covariant.h │ ├── lockable.h │ ├── suspend.h │ ├── thread_pool.cc │ ├── thread_pool.h │ ├── timer.cc │ └── timer.h ├── module │ ├── callback.cc │ ├── callback.h │ ├── context_handle.cc │ ├── context_handle.h │ ├── evaluation.cc │ ├── evaluation.h │ ├── external_copy_handle.cc │ ├── external_copy_handle.h │ ├── isolate.cc │ ├── isolate_handle.cc │ ├── isolate_handle.h │ ├── lib_handle.cc │ ├── lib_handle.h │ ├── module_handle.cc │ ├── module_handle.h │ ├── native_module_handle.cc │ ├── native_module_handle.h │ ├── reference_handle.cc │ ├── reference_handle.h │ ├── script_handle.cc │ ├── script_handle.h │ ├── session_handle.cc │ ├── session_handle.h │ ├── transferable.cc │ └── transferable.h └── rs │ ├── interface │ ├── event_target.cc │ ├── event_target.h │ ├── window.cc │ └── window.h │ ├── rsvm.cc │ ├── rsvm.h │ ├── tool.cc │ └── tool.h └── vendor └── v8_inspector ├── nodejs_v18.0.0.h ├── nodejs_v18.3.0.h ├── nodejs_v20.0.0.h └── nodejs_v22.0.0.h /Browser/AnimationTimeline/AnimationTimeline.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "AnimationTimeline", { 3 | value: rsvm.RsCreateConstructor("AnimationTimeline"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.AnimationTimeline = { 7 | memory: { 8 | currentTime: null, 9 | duration: null, 10 | }, 11 | malloc(target) { 12 | rsvm.mallocBaseMemory("AnimationTimeline", target); 13 | }, 14 | new() { 15 | let obj = rsvm.RsCreate(AnimationTimeline.prototype); 16 | return obj; 17 | }, 18 | }; 19 | 20 | Object.defineProperties(AnimationTimeline, { 21 | prototype: { value: AnimationTimeline.prototype, writable: false, enumerable: false, configurable: false }, 22 | }); 23 | 24 | Object.defineProperties(AnimationTimeline.prototype, { 25 | currentTime: { 26 | get: rsvm.RsCreateGetter("currentTime", function currentTime() { 27 | return rsvm.get(this, "currentTime"); 28 | }), set: undefined, enumerable: true, configurable: true, 29 | }, 30 | duration: { 31 | get: rsvm.RsCreateGetter("duration", function duration() { 32 | return rsvm.get(this, "duration"); 33 | }), set: undefined, enumerable: true, configurable: true, 34 | }, 35 | constructor: { writable: true, enumerable: false, configurable: true, value: AnimationTimeline }, 36 | [Symbol.toStringTag]: { value: "AnimationTimeline", writable: false, enumerable: false, configurable: true, }, 37 | }); 38 | }(); -------------------------------------------------------------------------------- /Browser/AnimationTimeline/DocumentTimeline/DocumentTimeline.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "DocumentTimeline", { 3 | value: rsvm.RsCreateConstructor("DocumentTimeline"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.DocumentTimeline = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("DocumentTimeline", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(DocumentTimeline.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(DocumentTimeline, { 18 | prototype: { value: DocumentTimeline.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(DocumentTimeline.prototype, { 22 | constructor: { writable: true, enumerable: false, configurable: true, value: DocumentTimeline }, 23 | [Symbol.toStringTag]: { value: "DocumentTimeline", writable: false, enumerable: false, configurable: true, }, 24 | }); 25 | Object.setPrototypeOf(DocumentTimeline, AnimationTimeline); 26 | Object.setPrototypeOf(DocumentTimeline.prototype, AnimationTimeline.prototype); 27 | }(); -------------------------------------------------------------------------------- /Browser/BarProp/BarProp.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "BarProp", { 3 | value: rsvm.RsCreateConstructor("BarProp"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.BarProp = { 7 | memory: { 8 | visible: true, 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("BarProp", target); 12 | }, 13 | new() { 14 | let obj = rsvm.RsCreate(BarProp.prototype); 15 | return obj; 16 | }, 17 | }; 18 | 19 | Object.defineProperties(BarProp, { 20 | prototype: { value: BarProp.prototype, writable: false, enumerable: false, configurable: false }, 21 | }); 22 | 23 | Object.defineProperties(BarProp.prototype, { 24 | visible: { 25 | get: rsvm.RsCreateGetter("visible", function visible() { 26 | return rsvm.get(this, "visible"); 27 | }), set: undefined, enumerable: true, configurable: true, 28 | }, 29 | constructor: { writable: true, enumerable: false, configurable: true, value: BarProp }, 30 | [Symbol.toStringTag]: { value: "BarProp", writable: false, enumerable: false, configurable: true, }, 31 | }); 32 | }(); -------------------------------------------------------------------------------- /Browser/CSSRuleList/CSSRuleList.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "CSSRuleList", { 3 | value: rsvm.RsCreateConstructor("CSSRuleList"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.CSSRuleList = { 7 | memory: { 8 | length: undefined, 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("CSSRuleList", target); 12 | }, 13 | new() { 14 | let obj = rsvm.RsCreate(CSSRuleList.prototype); 15 | return obj; 16 | }, 17 | }; 18 | 19 | Object.defineProperties(CSSRuleList, { 20 | prototype: { value: CSSRuleList.prototype, writable: false, enumerable: false, configurable: false }, 21 | }); 22 | 23 | Object.defineProperties(CSSRuleList.prototype, { 24 | length: { 25 | get: rsvm.RsCreateGetter("length", function length() { 26 | return rsvm.get(this, "length"); 27 | }), set: undefined, enumerable: true, configurable: true, 28 | }, 29 | item: { value: undefined, writable: true, enumerable: true, configurable: true, }, 30 | constructor: { writable: true, enumerable: false, configurable: true, value: CSSRuleList }, 31 | [Symbol.toStringTag]: { value: "CSSRuleList", writable: false, enumerable: false, configurable: true, }, 32 | [Symbol.iterator]: { 33 | value: rsvm.RsCreateAction("values", 0, function values() { 34 | }), writable: true, enumerable: false, configurable: true, 35 | }, 36 | }); 37 | }(); -------------------------------------------------------------------------------- /Browser/CacheStorage/CacheStorage.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "CacheStorage", { 3 | value: rsvm.RsCreateConstructor("CacheStorage"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.CacheStorage = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("CacheStorage", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(CacheStorage.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(CacheStorage, { 18 | prototype: { value: CacheStorage.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(CacheStorage.prototype, { 22 | delete: { 23 | value: rsvm.RsCreateAction("delete", 1, function delete_() { 24 | if(rsvm.debugger) { debugger } // 调试测试 25 | }), writable: true, enumerable: true, configurable: true, 26 | }, 27 | has: { 28 | value: rsvm.RsCreateAction("has", 1, function has() { 29 | }), writable: true, enumerable: true, configurable: true, 30 | }, 31 | keys: { 32 | value: rsvm.RsCreateAction("keys", 0, function keys() { 33 | }), writable: true, enumerable: true, configurable: true, 34 | }, 35 | match: { 36 | value: rsvm.RsCreateAction("match", 1, function match() { 37 | }), writable: true, enumerable: true, configurable: true, 38 | }, 39 | open: { 40 | value: rsvm.RsCreateAction("open", 1, function open() { 41 | }), writable: true, enumerable: true, configurable: true, 42 | }, 43 | constructor: { writable: true, enumerable: false, configurable: true, value: CacheStorage }, 44 | [Symbol.toStringTag]: { value: "CacheStorage", writable: false, enumerable: false, configurable: true, }, 45 | }); 46 | }(); -------------------------------------------------------------------------------- /Browser/CredentialsContainer/CredentialsContainer.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "CredentialsContainer", { 3 | value: rsvm.RsCreateConstructor("CredentialsContainer"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.CredentialsContainer = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("CredentialsContainer", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(CredentialsContainer.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(CredentialsContainer, { 18 | prototype: { value: CredentialsContainer.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(CredentialsContainer.prototype, { 22 | create: { 23 | value: rsvm.RsCreateAction("create", 0, function create() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | get: { 27 | value: rsvm.RsCreateAction("get", 0, function get() { 28 | }), writable: true, enumerable: true, configurable: true, 29 | }, 30 | preventSilentAccess: { 31 | value: rsvm.RsCreateAction("preventSilentAccess", 0, function preventSilentAccess() { 32 | }), writable: true, enumerable: true, configurable: true, 33 | }, 34 | store: { 35 | value: rsvm.RsCreateAction("store", 1, function store() { 36 | }), writable: true, enumerable: true, configurable: true, 37 | }, 38 | constructor: { writable: true, enumerable: false, configurable: true, value: CredentialsContainer }, 39 | [Symbol.toStringTag]: { value: "CredentialsContainer", writable: false, enumerable: false, configurable: true, }, 40 | }); 41 | }(); -------------------------------------------------------------------------------- /Browser/CustomElementRegistry/CustomElementRegistry.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "CustomElementRegistry", { 3 | value: rsvm.RsCreateConstructor("CustomElementRegistry"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.CustomElementRegistry = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("CustomElementRegistry", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(CustomElementRegistry.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(CustomElementRegistry, { 18 | prototype: { value: CustomElementRegistry.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(CustomElementRegistry.prototype, { 22 | define: { 23 | value: rsvm.RsCreateAction("define", 2, function define() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | get: { 27 | value: rsvm.RsCreateAction("get", 1, function get() { 28 | }), writable: true, enumerable: true, configurable: true, 29 | }, 30 | upgrade: { 31 | value: rsvm.RsCreateAction("upgrade", 1, function upgrade() { 32 | }), writable: true, enumerable: true, configurable: true, 33 | }, 34 | whenDefined: { 35 | value: rsvm.RsCreateAction("whenDefined", 1, function whenDefined() { 36 | }), writable: true, enumerable: true, configurable: true, 37 | }, 38 | getName: { 39 | value: rsvm.RsCreateAction("getName", 1, function getName() { 40 | }), writable: true, enumerable: true, configurable: true, 41 | }, 42 | constructor: { writable: true, enumerable: false, configurable: true, value: CustomElementRegistry }, 43 | [Symbol.toStringTag]: { value: "CustomElementRegistry", writable: false, enumerable: false, configurable: true, }, 44 | }); 45 | }(); -------------------------------------------------------------------------------- /Browser/DOMFileSystem/DOMFileSystem.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | let DOMFileSystem = {}; 3 | 4 | rsvm.prototype.DOMFileSystem = { 5 | memory: { 6 | name: "https_zwfw.nmpa.gov.cn_0:Temporary", 7 | root: null, 8 | }, 9 | malloc(target) { 10 | rsvm.mallocBaseMemory("DOMFileSystem", target); 11 | }, 12 | new() { 13 | let obj = rsvm.RsCreate(DOMFileSystem); 14 | let dirEntry = rsvm.prototype.DirectoryEntry.new(); 15 | rsvm.set(dirEntry, "filesystem", obj); 16 | rsvm.set(obj, "root", dirEntry); 17 | return obj; 18 | }, 19 | }; 20 | 21 | Object.defineProperties(DOMFileSystem, { 22 | name: { 23 | get: rsvm.RsCreateGetter("name", function name() { 24 | return rsvm.get(this, "name"); 25 | }), set: undefined, enumerable: true, configurable: true, 26 | }, 27 | root: { 28 | get: rsvm.RsCreateGetter("root", function root() { 29 | return rsvm.get(this, "root"); 30 | }), set: undefined, enumerable: true, configurable: true, 31 | }, 32 | [Symbol.toStringTag]: { value: "DOMFileSystem", writable: false, enumerable: false, configurable: true, }, 33 | }); 34 | }(); -------------------------------------------------------------------------------- /Browser/DOMImplementation/DOMImplementation.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "DOMImplementation", { 3 | value: rsvm.RsCreateConstructor("DOMImplementation"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.DOMImplementation = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("DOMImplementation", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(DOMImplementation.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(DOMImplementation, { 18 | prototype: { value: DOMImplementation.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(DOMImplementation.prototype, { 22 | createDocument: { 23 | value: rsvm.RsCreateAction("createDocument", 2, function createDocument() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | createDocumentType: { 27 | value: rsvm.RsCreateAction("createDocumentType", 3, function createDocumentType() { 28 | }), writable: true, enumerable: true, configurable: true, 29 | }, 30 | createHTMLDocument: { 31 | value: rsvm.RsCreateAction("createHTMLDocument", 0, function createHTMLDocument() { 32 | }), writable: true, enumerable: true, configurable: true, 33 | }, 34 | hasFeature: { 35 | value: rsvm.RsCreateAction("hasFeature", 0, function hasFeature() { 36 | }), writable: true, enumerable: true, configurable: true, 37 | }, 38 | constructor: { writable: true, enumerable: false, configurable: true, value: DOMImplementation }, 39 | [Symbol.toStringTag]: { value: "DOMImplementation", writable: false, enumerable: false, configurable: true, }, 40 | }); 41 | }(); -------------------------------------------------------------------------------- /Browser/DOMParser/DOMParser.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "DOMParser", { 3 | value: rsvm.RsCreateConstructor("DOMParser", 0, function DOMParser() { 4 | return rsvm.prototype.DOMParser.apply(null, arguments); 5 | }), writable: true, enumerable: false, configurable: true 6 | }); 7 | 8 | rsvm.prototype.DOMParser = { 9 | memory: {}, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("DOMParser", target); 12 | }, 13 | new() { 14 | let obj = rsvm.RsCreate(DOMParser.prototype); 15 | return obj; 16 | }, 17 | }; 18 | 19 | Object.defineProperties(DOMParser, { 20 | prototype: { value: DOMParser.prototype, writable: false, enumerable: false, configurable: false }, 21 | }); 22 | 23 | Object.defineProperties(DOMParser.prototype, { 24 | parseFromString: { 25 | value: rsvm.RsCreateAction("parseFromString", 2, function parseFromString() { 26 | }), writable: true, enumerable: true, configurable: true, 27 | }, 28 | constructor: { writable: true, enumerable: false, configurable: true, value: DOMParser }, 29 | [Symbol.toStringTag]: { value: "DOMParser", writable: false, enumerable: false, configurable: true, }, 30 | }); 31 | }(); -------------------------------------------------------------------------------- /Browser/DOMRectList/DOMRectList.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "DOMRectList", { 3 | value: rsvm.RsCreateConstructor("DOMRectList"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.DOMRectList = { 7 | memory: { 8 | length: undefined, 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("DOMRectList", target); 12 | }, 13 | new() { 14 | let obj = rsvm.RsCreate(DOMRectList.prototype); 15 | return obj; 16 | }, 17 | }; 18 | 19 | Object.defineProperties(DOMRectList, { 20 | prototype: { value: DOMRectList.prototype, writable: false, enumerable: false, configurable: false }, 21 | }); 22 | 23 | Object.defineProperties(DOMRectList.prototype, { 24 | length: { 25 | get: rsvm.RsCreateGetter("length", function length() { 26 | return rsvm.get(this, "length"); 27 | }), set: undefined, enumerable: true, configurable: true, 28 | }, 29 | item: { value: undefined, writable: true, enumerable: true, configurable: true, }, 30 | constructor: { writable: true, enumerable: false, configurable: true, value: DOMRectList }, 31 | [Symbol.toStringTag]: { value: "DOMRectList", writable: false, enumerable: false, configurable: true, }, 32 | [Symbol.iterator]: { 33 | value: rsvm.RsCreateAction("values", 0, function values() { 34 | }), writable: true, enumerable: false, configurable: true, 35 | }, 36 | }); 37 | }(); -------------------------------------------------------------------------------- /Browser/DOMStringList/DOMStringList.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "DOMStringList", { 3 | value: rsvm.RsCreateConstructor("DOMStringList"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.DOMStringList = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("DOMStringList", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(DOMStringList.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(DOMStringList, { 18 | prototype: { value: DOMStringList.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(DOMStringList.prototype, { 22 | length: { 23 | get: rsvm.RsCreateGetter("length", function length() { 24 | return Object.keys(this).length; 25 | }), set: undefined, enumerable: true, configurable: true, 26 | }, 27 | contains: { value: undefined, writable: true, enumerable: true, configurable: true, }, 28 | item: { value: undefined, writable: true, enumerable: true, configurable: true, }, 29 | constructor: { writable: true, enumerable: false, configurable: true, value: DOMStringList }, 30 | [Symbol.toStringTag]: { value: "DOMStringList", writable: false, enumerable: false, configurable: true, }, 31 | [Symbol.iterator]: { 32 | value: rsvm.RsCreateAction("values", 0, function* values() { 33 | for (const key of Object.keys(this)) { 34 | yield this[key]; 35 | } 36 | }), writable: true, enumerable: false, configurable: true, 37 | }, 38 | }); 39 | }(); -------------------------------------------------------------------------------- /Browser/DOMStringMap/DOMStringMap.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "DOMStringMap", { 3 | value: rsvm.RsCreateConstructor("DOMStringMap"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.DOMStringMap = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("DOMStringMap", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(DOMStringMap.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(DOMStringMap, { 18 | prototype: { value: DOMStringMap.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(DOMStringMap.prototype, { 22 | constructor: { writable: true, enumerable: false, configurable: true, value: DOMStringMap }, 23 | [Symbol.toStringTag]: { value: "DOMStringMap", writable: false, enumerable: false, configurable: true, }, 24 | }); 25 | }(); -------------------------------------------------------------------------------- /Browser/DeprecatedStorageQuota/DeprecatedStorageQuota.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | let DeprecatedStorageQuota = {}; 3 | 4 | rsvm.prototype.DeprecatedStorageQuota = { 5 | memory: {}, 6 | malloc(target) { 7 | rsvm.mallocBaseMemory("DeprecatedStorageQuota", target); 8 | }, 9 | new() { 10 | let obj = rsvm.RsCreate(DeprecatedStorageQuota); 11 | return obj; 12 | }, 13 | }; 14 | 15 | Object.defineProperties(DeprecatedStorageQuota, { 16 | queryUsageAndQuota: { 17 | value: rsvm.RsCreateAction("queryUsageAndQuota", 1, function queryUsageAndQuota() { 18 | }), writable: true, enumerable: true, configurable: true, 19 | }, 20 | requestQuota: { 21 | value: rsvm.RsCreateAction("requestQuota", 1, function requestQuota() { 22 | }), writable: true, enumerable: true, configurable: true, 23 | }, 24 | [Symbol.toStringTag]: { value: "DeprecatedStorageQuota", writable: false, enumerable: false, configurable: true, }, 25 | }); 26 | }(); -------------------------------------------------------------------------------- /Browser/DeviceMotionEventAcceleration/DeviceMotionEventAcceleration.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "DeviceMotionEventAcceleration", { 3 | value: rsvm.RsCreateConstructor("DeviceMotionEventAcceleration"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.DeviceMotionEventAcceleration = { 7 | memory: { 8 | x: null, 9 | y: null, 10 | z: null, 11 | }, 12 | malloc(target) { 13 | rsvm.mallocBaseMemory("DeviceMotionEventAcceleration", target); 14 | }, 15 | new() { 16 | let obj = rsvm.RsCreate(DeviceMotionEventAcceleration.prototype); 17 | return obj; 18 | }, 19 | }; 20 | 21 | Object.defineProperties(DeviceMotionEventAcceleration, { 22 | prototype: { value: DeviceMotionEventAcceleration.prototype, writable: false, enumerable: false, configurable: false }, 23 | }); 24 | 25 | Object.defineProperties(DeviceMotionEventAcceleration.prototype, { 26 | x: { 27 | get: rsvm.RsCreateGetter("x", function x() { 28 | return rsvm.get(this, "x"); 29 | }), set: undefined, enumerable: true, configurable: true, 30 | }, 31 | y: { 32 | get: rsvm.RsCreateGetter("y", function y() { 33 | return rsvm.get(this, "y"); 34 | }), set: undefined, enumerable: true, configurable: true, 35 | }, 36 | z: { 37 | get: rsvm.RsCreateGetter("z", function z() { 38 | return rsvm.get(this, "z"); 39 | }), set: undefined, enumerable: true, configurable: true, 40 | }, 41 | constructor: { writable: true, enumerable: false, configurable: true, value: DeviceMotionEventAcceleration }, 42 | [Symbol.toStringTag]: { value: "DeviceMotionEventAcceleration", writable: false, enumerable: false, configurable: true, }, 43 | }); 44 | }(); -------------------------------------------------------------------------------- /Browser/DeviceMotionEventRotationRate/DeviceMotionEventRotationRate.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "DeviceMotionEventRotationRate", { 3 | value: rsvm.RsCreateConstructor("DeviceMotionEventRotationRate"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.DeviceMotionEventRotationRate = { 7 | memory: { 8 | alpha: null, 9 | beta: null, 10 | gamma: null, 11 | }, 12 | malloc(target) { 13 | rsvm.mallocBaseMemory("DeviceMotionEventRotationRate", target); 14 | }, 15 | new() { 16 | let obj = rsvm.RsCreate(DeviceMotionEventRotationRate.prototype); 17 | return obj; 18 | }, 19 | }; 20 | 21 | Object.defineProperties(DeviceMotionEventRotationRate, { 22 | prototype: { value: DeviceMotionEventRotationRate.prototype, writable: false, enumerable: false, configurable: false }, 23 | }); 24 | 25 | Object.defineProperties(DeviceMotionEventRotationRate.prototype, { 26 | alpha: { 27 | get: rsvm.RsCreateGetter("alpha", function alpha() { 28 | return rsvm.get(this, "alpha"); 29 | }), set: undefined, enumerable: true, configurable: true, 30 | }, 31 | beta: { 32 | get: rsvm.RsCreateGetter("beta", function beta() { 33 | return rsvm.get(this, "beta"); 34 | }), set: undefined, enumerable: true, configurable: true, 35 | }, 36 | gamma: { 37 | get: rsvm.RsCreateGetter("gamma", function gamma() { 38 | return rsvm.get(this, "gamma"); 39 | }), set: undefined, enumerable: true, configurable: true, 40 | }, 41 | constructor: { writable: true, enumerable: false, configurable: true, value: DeviceMotionEventRotationRate }, 42 | [Symbol.toStringTag]: { value: "DeviceMotionEventRotationRate", writable: false, enumerable: false, configurable: true, }, 43 | }); 44 | }(); -------------------------------------------------------------------------------- /Browser/Entry/DirectoryEntry/DirectoryEntry.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | let DirectoryEntry = {}; 3 | 4 | rsvm.prototype.DirectoryEntry = { 5 | memory: {}, 6 | malloc(target) { 7 | rsvm.mallocBaseMemory("DirectoryEntry", target); 8 | }, 9 | new() { 10 | let obj = rsvm.RsCreate(DirectoryEntry); 11 | return obj; 12 | }, 13 | }; 14 | 15 | Object.defineProperties(DirectoryEntry, { 16 | createReader: { 17 | value: rsvm.RsCreateAction("createReader", 0, function createReader() { 18 | }), writable: true, enumerable: true, configurable: true, 19 | }, 20 | getDirectory: { 21 | value: rsvm.RsCreateAction("getDirectory", 1, function getDirectory() { 22 | }), writable: true, enumerable: true, configurable: true, 23 | }, 24 | getFile: { 25 | value: rsvm.RsCreateAction("getFile", 1, function getFile() { 26 | }), writable: true, enumerable: true, configurable: true, 27 | }, 28 | removeRecursively: { 29 | value: rsvm.RsCreateAction("removeRecursively", 1, function removeRecursively() { 30 | }), writable: true, enumerable: true, configurable: true, 31 | }, 32 | [Symbol.toStringTag]: { value: "DirectoryEntry", writable: false, enumerable: false, configurable: true, }, 33 | }); 34 | Object.setPrototypeOf(DirectoryEntry, rsvm.prototype.Entry.instance()); 35 | }(); -------------------------------------------------------------------------------- /Browser/Event/AnimationEvent/AnimationEvent.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "AnimationEvent", { 3 | value: rsvm.RsCreateConstructor("AnimationEvent", 1, function AnimationEvent() { 4 | return rsvm.prototype.AnimationEvent.apply(null, arguments); 5 | }), writable: true, enumerable: false, configurable: true 6 | }); 7 | 8 | rsvm.prototype.AnimationEvent = { 9 | memory: { 10 | animationName: undefined, 11 | elapsedTime: undefined, 12 | pseudoElement: undefined, 13 | }, 14 | malloc(target) { 15 | rsvm.mallocBaseMemory("AnimationEvent", target); 16 | }, 17 | new() { 18 | let obj = rsvm.RsCreate(AnimationEvent.prototype); 19 | return obj; 20 | }, 21 | }; 22 | 23 | Object.defineProperties(AnimationEvent, { 24 | prototype: { value: AnimationEvent.prototype, writable: false, enumerable: false, configurable: false }, 25 | }); 26 | 27 | Object.defineProperties(AnimationEvent.prototype, { 28 | animationName: { 29 | get: rsvm.RsCreateGetter("animationName", function animationName() { 30 | return rsvm.get(this, "animationName"); 31 | }), set: undefined, enumerable: true, configurable: true, 32 | }, 33 | elapsedTime: { 34 | get: rsvm.RsCreateGetter("elapsedTime", function elapsedTime() { 35 | return rsvm.get(this, "elapsedTime"); 36 | }), set: undefined, enumerable: true, configurable: true, 37 | }, 38 | pseudoElement: { 39 | get: rsvm.RsCreateGetter("pseudoElement", function pseudoElement() { 40 | return rsvm.get(this, "pseudoElement"); 41 | }), set: undefined, enumerable: true, configurable: true, 42 | }, 43 | constructor: { writable: true, enumerable: false, configurable: true, value: AnimationEvent }, 44 | [Symbol.toStringTag]: { value: "AnimationEvent", writable: false, enumerable: false, configurable: true, }, 45 | }); 46 | Object.setPrototypeOf(AnimationEvent, Event); 47 | Object.setPrototypeOf(AnimationEvent.prototype, Event.prototype); 48 | }(); -------------------------------------------------------------------------------- /Browser/Event/FormDataEvent/FormDataEvent.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "FormDataEvent", { 3 | value: rsvm.RsCreateConstructor("FormDataEvent"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.FormDataEvent = { 7 | memory: { 8 | formData: undefined, 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("FormDataEvent", target); 12 | }, 13 | new() { 14 | let obj = rsvm.RsCreate(FormDataEvent.prototype); 15 | return obj; 16 | }, 17 | }; 18 | 19 | Object.defineProperties(FormDataEvent, { 20 | prototype: { value: FormDataEvent.prototype, writable: false, enumerable: false, configurable: false }, 21 | }); 22 | 23 | Object.defineProperties(FormDataEvent.prototype, { 24 | formData: { 25 | get: rsvm.RsCreateGetter("formData", function formData() { 26 | return rsvm.get(this, "formData"); 27 | }), set: undefined, enumerable: true, configurable: true, 28 | }, 29 | constructor: { writable: true, enumerable: false, configurable: true, value: FormDataEvent }, 30 | [Symbol.toStringTag]: { value: "FormDataEvent", writable: false, enumerable: false, configurable: true, }, 31 | }); 32 | Object.setPrototypeOf(FormDataEvent, Event); 33 | Object.setPrototypeOf(FormDataEvent.prototype, Event.prototype); 34 | }(); -------------------------------------------------------------------------------- /Browser/Event/PromiseRejectionEvent/PromiseRejectionEvent.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "PromiseRejectionEvent", { 3 | value: rsvm.RsCreateConstructor("PromiseRejectionEvent"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.PromiseRejectionEvent = { 7 | memory: { 8 | promise: undefined, 9 | reason: undefined, 10 | }, 11 | malloc(target) { 12 | rsvm.mallocBaseMemory("PromiseRejectionEvent", target); 13 | }, 14 | new() { 15 | let obj = rsvm.RsCreate(PromiseRejectionEvent.prototype); 16 | return obj; 17 | }, 18 | }; 19 | 20 | Object.defineProperties(PromiseRejectionEvent, { 21 | prototype: { value: PromiseRejectionEvent.prototype, writable: false, enumerable: false, configurable: false }, 22 | }); 23 | 24 | Object.defineProperties(PromiseRejectionEvent.prototype, { 25 | promise: { 26 | get: rsvm.RsCreateGetter("promise", function promise() { 27 | return rsvm.get(this, "promise"); 28 | }), set: undefined, enumerable: true, configurable: true, 29 | }, 30 | reason: { 31 | get: rsvm.RsCreateGetter("reason", function reason() { 32 | return rsvm.get(this, "reason"); 33 | }), set: undefined, enumerable: true, configurable: true, 34 | }, 35 | constructor: { writable: true, enumerable: false, configurable: true, value: PromiseRejectionEvent }, 36 | [Symbol.toStringTag]: { value: "PromiseRejectionEvent", writable: false, enumerable: false, configurable: true, }, 37 | }); 38 | Object.setPrototypeOf(PromiseRejectionEvent, Event); 39 | Object.setPrototypeOf(PromiseRejectionEvent.prototype, Event.prototype); 40 | }(); -------------------------------------------------------------------------------- /Browser/Event/TransitionEvent/TransitionEvent.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "TransitionEvent", { 3 | value: rsvm.RsCreateConstructor("TransitionEvent", 1, function TransitionEvent() { 4 | return rsvm.prototype.TransitionEvent.apply(null, arguments); 5 | }), writable: true, enumerable: false, configurable: true 6 | }); 7 | 8 | rsvm.prototype.TransitionEvent = { 9 | memory: { 10 | propertyName: undefined, 11 | elapsedTime: undefined, 12 | pseudoElement: undefined, 13 | }, 14 | malloc(target) { 15 | rsvm.mallocBaseMemory("TransitionEvent", target); 16 | }, 17 | new() { 18 | let obj = rsvm.RsCreate(TransitionEvent.prototype); 19 | return obj; 20 | }, 21 | }; 22 | 23 | Object.defineProperties(TransitionEvent, { 24 | prototype: { value: TransitionEvent.prototype, writable: false, enumerable: false, configurable: false }, 25 | }); 26 | 27 | Object.defineProperties(TransitionEvent.prototype, { 28 | propertyName: { 29 | get: rsvm.RsCreateGetter("propertyName", function propertyName() { 30 | return rsvm.get(this, "propertyName"); 31 | }), set: undefined, enumerable: true, configurable: true, 32 | }, 33 | elapsedTime: { 34 | get: rsvm.RsCreateGetter("elapsedTime", function elapsedTime() { 35 | return rsvm.get(this, "elapsedTime"); 36 | }), set: undefined, enumerable: true, configurable: true, 37 | }, 38 | pseudoElement: { 39 | get: rsvm.RsCreateGetter("pseudoElement", function pseudoElement() { 40 | return rsvm.get(this, "pseudoElement"); 41 | }), set: undefined, enumerable: true, configurable: true, 42 | }, 43 | constructor: { writable: true, enumerable: false, configurable: true, value: TransitionEvent }, 44 | [Symbol.toStringTag]: { value: "TransitionEvent", writable: false, enumerable: false, configurable: true, }, 45 | }); 46 | Object.setPrototypeOf(TransitionEvent, Event); 47 | Object.setPrototypeOf(TransitionEvent.prototype, Event.prototype); 48 | }(); -------------------------------------------------------------------------------- /Browser/Event/UIEvent/TextEvent/TextEvent.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "TextEvent", { 3 | value: rsvm.RsCreateConstructor("TextEvent"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.TextEvent = { 7 | memory: { 8 | data: undefined, 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("TextEvent", target); 12 | }, 13 | new() { 14 | let obj = rsvm.RsCreate(TextEvent.prototype); 15 | return obj; 16 | }, 17 | }; 18 | 19 | Object.defineProperties(TextEvent, { 20 | prototype: { value: TextEvent.prototype, writable: false, enumerable: false, configurable: false }, 21 | }); 22 | 23 | Object.defineProperties(TextEvent.prototype, { 24 | data: { 25 | get: rsvm.RsCreateGetter("data", function data() { 26 | return rsvm.get(this, "data"); 27 | }), set: undefined, enumerable: true, configurable: true, 28 | }, 29 | initTextEvent: { value: undefined, writable: true, enumerable: true, configurable: true, }, 30 | constructor: { writable: true, enumerable: false, configurable: true, value: TextEvent }, 31 | [Symbol.toStringTag]: { value: "TextEvent", writable: false, enumerable: false, configurable: true, }, 32 | }); 33 | Object.setPrototypeOf(TextEvent, UIEvent); 34 | Object.setPrototypeOf(TextEvent.prototype, UIEvent.prototype); 35 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/BaseAudioContext/OfflineAudioContext/OfflineAudioContext.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "OfflineAudioContext", { 3 | value: rsvm.RsCreateConstructor("OfflineAudioContext"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.OfflineAudioContext = { 7 | memory: { 8 | oncomplete: undefined, 9 | length: undefined, 10 | }, 11 | malloc(target) { 12 | rsvm.mallocBaseMemory("OfflineAudioContext", target); 13 | }, 14 | new() { 15 | let obj = rsvm.RsCreate(OfflineAudioContext.prototype); 16 | return obj; 17 | }, 18 | }; 19 | 20 | Object.defineProperties(OfflineAudioContext, { 21 | prototype: { value: OfflineAudioContext.prototype, writable: false, enumerable: false, configurable: false }, 22 | }); 23 | 24 | Object.defineProperties(OfflineAudioContext.prototype, { 25 | oncomplete: { 26 | get: rsvm.RsCreateGetter("oncomplete", function oncomplete() { 27 | return rsvm.get(this, "oncomplete"); 28 | }), set: rsvm.RsCreateSetter("oncomplete", function oncomplete() { 29 | rsvm.set(this, "oncomplete", arguments[0]); 30 | }), enumerable: true, configurable: true, 31 | }, 32 | length: { 33 | get: rsvm.RsCreateGetter("length", function length() { 34 | return rsvm.get(this, "length"); 35 | }), set: undefined, enumerable: true, configurable: true, 36 | }, 37 | resume: { value: undefined, writable: true, enumerable: true, configurable: true, }, 38 | startRendering: { value: undefined, writable: true, enumerable: true, configurable: true, }, 39 | suspend: { value: undefined, writable: true, enumerable: true, configurable: true, }, 40 | constructor: { writable: true, enumerable: false, configurable: true, value: OfflineAudioContext }, 41 | [Symbol.toStringTag]: { value: "OfflineAudioContext", writable: false, enumerable: false, configurable: true, }, 42 | }); 43 | Object.setPrototypeOf(OfflineAudioContext, BaseAudioContext); 44 | Object.setPrototypeOf(OfflineAudioContext.prototype, BaseAudioContext.prototype); 45 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/Bluetooth/Bluetooth.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "Bluetooth", { 3 | value: rsvm.RsCreateConstructor("Bluetooth"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.Bluetooth = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("Bluetooth", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(Bluetooth.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(Bluetooth, { 18 | prototype: { value: Bluetooth.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(Bluetooth.prototype, { 22 | getAvailability: { 23 | value: rsvm.RsCreateAction("getAvailability", 0, function getAvailability() { 24 | return new Promise((resolve, reject)=>{ resolve(true); }); 25 | }), writable: true, enumerable: true, configurable: true, 26 | }, 27 | requestDevice: { 28 | value: rsvm.RsCreateAction("requestDevice", 0, function requestDevice() { 29 | return new Promise((resolve, reject)=>{ reject(new TypeError()); }); 30 | }), writable: true, enumerable: true, configurable: true, 31 | }, 32 | constructor: { writable: true, enumerable: false, configurable: true, value: Bluetooth }, 33 | [Symbol.toStringTag]: { value: "Bluetooth", writable: false, enumerable: false, configurable: true, }, 34 | }); 35 | Object.setPrototypeOf(Bluetooth, EventTarget); 36 | Object.setPrototypeOf(Bluetooth.prototype, EventTarget.prototype); 37 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/Clipboard/Clipboard.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "Clipboard", { 3 | value: rsvm.RsCreateConstructor("Clipboard"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.Clipboard = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("Clipboard", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(Clipboard.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(Clipboard, { 18 | prototype: { value: Clipboard.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(Clipboard.prototype, { 22 | read: { 23 | value: rsvm.RsCreateAction("read", 0, function read() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | readText: { 27 | value: rsvm.RsCreateAction("readText", 0, function readText() { 28 | }), writable: true, enumerable: true, configurable: true, 29 | }, 30 | write: { 31 | value: rsvm.RsCreateAction("write", 1, function write() { 32 | }), writable: true, enumerable: true, configurable: true, 33 | }, 34 | writeText: { 35 | value: rsvm.RsCreateAction("writeText", 1, function writeText() { 36 | }), writable: true, enumerable: true, configurable: true, 37 | }, 38 | constructor: { writable: true, enumerable: false, configurable: true, value: Clipboard }, 39 | [Symbol.toStringTag]: { value: "Clipboard", writable: false, enumerable: false, configurable: true, }, 40 | }); 41 | Object.setPrototypeOf(Clipboard, EventTarget); 42 | Object.setPrototypeOf(Clipboard.prototype, EventTarget.prototype); 43 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/CookieStore/CookieStore.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "CookieStore", { 3 | value: rsvm.RsCreateConstructor("CookieStore"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.CookieStore = { 7 | memory: { 8 | onchange: null, 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("CookieStore", target); 12 | }, 13 | new() { 14 | let obj = rsvm.RsCreate(CookieStore.prototype); 15 | return obj; 16 | }, 17 | }; 18 | 19 | Object.defineProperties(CookieStore, { 20 | prototype: { value: CookieStore.prototype, writable: false, enumerable: false, configurable: false }, 21 | }); 22 | 23 | Object.defineProperties(CookieStore.prototype, { 24 | delete: { 25 | value: rsvm.RsCreateAction("delete", 1, function delete_() { 26 | }), writable: true, enumerable: true, configurable: true, 27 | }, 28 | get: { 29 | value: rsvm.RsCreateAction("get", 0, function get() { 30 | }), writable: true, enumerable: true, configurable: true, 31 | }, 32 | getAll: { 33 | value: rsvm.RsCreateAction("getAll", 0, function getAll() { 34 | }), writable: true, enumerable: true, configurable: true, 35 | }, 36 | set: { 37 | value: rsvm.RsCreateAction("set", 1, function set() { 38 | }), writable: true, enumerable: true, configurable: true, 39 | }, 40 | constructor: { writable: true, enumerable: false, configurable: true, value: CookieStore }, 41 | onchange: { 42 | get: rsvm.RsCreateGetter("onchange", function onchange() { 43 | return rsvm.get(this, "onchange"); 44 | }), set: rsvm.RsCreateSetter("onchange", function onchange() { 45 | rsvm.set(this, "onchange", arguments[0]); 46 | }), enumerable: true, configurable: true, 47 | }, 48 | [Symbol.toStringTag]: { value: "CookieStore", writable: false, enumerable: false, configurable: true, }, 49 | }); 50 | Object.setPrototypeOf(CookieStore, EventTarget); 51 | Object.setPrototypeOf(CookieStore.prototype, EventTarget.prototype); 52 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/DocumentPictureInPicture/DocumentPictureInPicture.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "DocumentPictureInPicture", { 3 | value: rsvm.RsCreateConstructor("DocumentPictureInPicture"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.DocumentPictureInPicture = { 7 | memory: { 8 | window: null, 9 | onenter: null, 10 | }, 11 | malloc(target) { 12 | rsvm.mallocBaseMemory("DocumentPictureInPicture", target); 13 | }, 14 | new() { 15 | let obj = rsvm.RsCreate(DocumentPictureInPicture.prototype); 16 | return obj; 17 | }, 18 | }; 19 | 20 | Object.defineProperties(DocumentPictureInPicture, { 21 | prototype: { value: DocumentPictureInPicture.prototype, writable: false, enumerable: false, configurable: false }, 22 | }); 23 | 24 | Object.defineProperties(DocumentPictureInPicture.prototype, { 25 | window: { 26 | get: rsvm.RsCreateGetter("window", function window() { 27 | return rsvm.get(this, "window"); 28 | }), set: undefined, enumerable: true, configurable: true, 29 | }, 30 | onenter: { 31 | get: rsvm.RsCreateGetter("onenter", function onenter() { 32 | return rsvm.get(this, "onenter"); 33 | }), set: rsvm.RsCreateSetter("onenter", function onenter() { 34 | rsvm.set(this, "onenter", arguments[0]); 35 | }), enumerable: true, configurable: true, 36 | }, 37 | requestWindow: { 38 | value: rsvm.RsCreateAction("requestWindow", 0, function requestWindow() { 39 | }), writable: true, enumerable: true, configurable: true, 40 | }, 41 | constructor: { writable: true, enumerable: false, configurable: true, value: DocumentPictureInPicture }, 42 | [Symbol.toStringTag]: { value: "DocumentPictureInPicture", writable: false, enumerable: false, configurable: true, }, 43 | }); 44 | Object.setPrototypeOf(DocumentPictureInPicture, EventTarget); 45 | Object.setPrototypeOf(DocumentPictureInPicture.prototype, EventTarget.prototype); 46 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/HID/HID.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "HID", { 3 | value: rsvm.RsCreateConstructor("HID"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.HID = { 7 | memory: { 8 | onconnect: null, 9 | ondisconnect: null, 10 | }, 11 | malloc(target) { 12 | rsvm.mallocBaseMemory("HID", target); 13 | }, 14 | new() { 15 | let obj = rsvm.RsCreate(HID.prototype); 16 | return obj; 17 | }, 18 | }; 19 | 20 | Object.defineProperties(HID, { 21 | prototype: { value: HID.prototype, writable: false, enumerable: false, configurable: false }, 22 | }); 23 | 24 | Object.defineProperties(HID.prototype, { 25 | onconnect: { 26 | get: rsvm.RsCreateGetter("onconnect", function onconnect() { 27 | return rsvm.get(this, "onconnect"); 28 | }), set: rsvm.RsCreateSetter("onconnect", function onconnect() { 29 | rsvm.set(this, "onconnect", arguments[0]); 30 | }), enumerable: true, configurable: true, 31 | }, 32 | ondisconnect: { 33 | get: rsvm.RsCreateGetter("ondisconnect", function ondisconnect() { 34 | return rsvm.get(this, "ondisconnect"); 35 | }), set: rsvm.RsCreateSetter("ondisconnect", function ondisconnect() { 36 | rsvm.set(this, "ondisconnect", arguments[0]); 37 | }), enumerable: true, configurable: true, 38 | }, 39 | getDevices: { 40 | value: rsvm.RsCreateAction("getDevices", 0, function getDevices() { 41 | }), writable: true, enumerable: true, configurable: true, 42 | }, 43 | constructor: { writable: true, enumerable: false, configurable: true, value: HID }, 44 | requestDevice: { 45 | value: rsvm.RsCreateAction("requestDevice", 1, function requestDevice() { 46 | }), writable: true, enumerable: true, configurable: true, 47 | }, 48 | [Symbol.toStringTag]: { value: "HID", writable: false, enumerable: false, configurable: true, }, 49 | }); 50 | Object.setPrototypeOf(HID, EventTarget); 51 | Object.setPrototypeOf(HID.prototype, EventTarget.prototype); 52 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/IDBRequest/IDBOpenDBRequest/IDBOpenDBRequest.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "IDBOpenDBRequest", { 3 | value: rsvm.RsCreateConstructor("IDBOpenDBRequest"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.IDBOpenDBRequest = { 7 | memory: { 8 | onblocked: null, 9 | onupgradeneeded: null, 10 | }, 11 | malloc(target) { 12 | rsvm.mallocBaseMemory("IDBOpenDBRequest", target); 13 | }, 14 | new() { 15 | let obj = rsvm.RsCreate(IDBOpenDBRequest.prototype); 16 | return obj; 17 | }, 18 | }; 19 | 20 | Object.defineProperties(IDBOpenDBRequest, { 21 | prototype: { value: IDBOpenDBRequest.prototype, writable: false, enumerable: false, configurable: false }, 22 | }); 23 | 24 | Object.defineProperties(IDBOpenDBRequest.prototype, { 25 | onblocked: { 26 | get: rsvm.RsCreateGetter("onblocked", function onblocked() { 27 | return rsvm.get(this, "onblocked"); 28 | }), set: rsvm.RsCreateSetter("onblocked", function onblocked() { 29 | rsvm.set(this, "onblocked", arguments[0]); 30 | }), enumerable: true, configurable: true, 31 | }, 32 | onupgradeneeded: { 33 | get: rsvm.RsCreateGetter("onupgradeneeded", function onupgradeneeded() { 34 | return rsvm.get(this, "onupgradeneeded"); 35 | }), set: rsvm.RsCreateSetter("onupgradeneeded", function onupgradeneeded() { 36 | rsvm.set(this, "onupgradeneeded", arguments[0]); 37 | }), enumerable: true, configurable: true, 38 | }, 39 | constructor: { writable: true, enumerable: false, configurable: true, value: IDBOpenDBRequest }, 40 | [Symbol.toStringTag]: { value: "IDBOpenDBRequest", writable: false, enumerable: false, configurable: true, }, 41 | }); 42 | Object.setPrototypeOf(IDBOpenDBRequest, IDBRequest); 43 | Object.setPrototypeOf(IDBOpenDBRequest.prototype, IDBRequest.prototype); 44 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/MediaQueryList/MediaQueryList.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "MediaQueryList", { 3 | value: rsvm.RsCreateConstructor("MediaQueryList"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.MediaQueryList = { 7 | memory: { 8 | media: "(any-pointer: fine)", 9 | matches: true, 10 | onchange: null, 11 | }, 12 | malloc(target) { 13 | rsvm.mallocBaseMemory("MediaQueryList", target); 14 | }, 15 | new() { 16 | let obj = rsvm.RsCreate(MediaQueryList.prototype); 17 | return obj; 18 | }, 19 | }; 20 | 21 | Object.defineProperties(MediaQueryList, { 22 | prototype: { value: MediaQueryList.prototype, writable: false, enumerable: false, configurable: false }, 23 | }); 24 | 25 | Object.defineProperties(MediaQueryList.prototype, { 26 | media: { 27 | get: rsvm.RsCreateGetter("media", function media() { 28 | return rsvm.get(this, "media"); 29 | }), set: undefined, enumerable: true, configurable: true, 30 | }, 31 | matches: { 32 | get: rsvm.RsCreateGetter("matches", function matches() { 33 | return rsvm.get(this, "matches"); 34 | }), set: undefined, enumerable: true, configurable: true, 35 | }, 36 | onchange: { 37 | get: rsvm.RsCreateGetter("onchange", function onchange() { 38 | return rsvm.get(this, "onchange"); 39 | }), set: rsvm.RsCreateSetter("onchange", function onchange() { 40 | rsvm.set(this, "onchange", arguments[0]); 41 | }), enumerable: true, configurable: true, 42 | }, 43 | addListener: { value: undefined, writable: true, enumerable: true, configurable: true, }, 44 | removeListener: { value: undefined, writable: true, enumerable: true, configurable: true, }, 45 | constructor: { writable: true, enumerable: false, configurable: true, value: MediaQueryList }, 46 | [Symbol.toStringTag]: { value: "MediaQueryList", writable: false, enumerable: false, configurable: true, }, 47 | }); 48 | Object.setPrototypeOf(MediaQueryList, EventTarget); 49 | Object.setPrototypeOf(MediaQueryList.prototype, EventTarget.prototype); 50 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/NavigatorManagedData/NavigatorManagedData.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "NavigatorManagedData", { 3 | value: rsvm.RsCreateConstructor("NavigatorManagedData"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.NavigatorManagedData = { 7 | memory: { 8 | onmanagedconfigurationchange: null, 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("NavigatorManagedData", target); 12 | }, 13 | new() { 14 | let obj = rsvm.RsCreate(NavigatorManagedData.prototype); 15 | return obj; 16 | }, 17 | }; 18 | 19 | Object.defineProperties(NavigatorManagedData, { 20 | prototype: { value: NavigatorManagedData.prototype, writable: false, enumerable: false, configurable: false }, 21 | }); 22 | 23 | Object.defineProperties(NavigatorManagedData.prototype, { 24 | onmanagedconfigurationchange: { 25 | get: rsvm.RsCreateGetter("onmanagedconfigurationchange", function onmanagedconfigurationchange() { 26 | return rsvm.get(this, "onmanagedconfigurationchange"); 27 | }), set: rsvm.RsCreateSetter("onmanagedconfigurationchange", function onmanagedconfigurationchange() { 28 | rsvm.set(this, "onmanagedconfigurationchange", arguments[0]); 29 | }), enumerable: true, configurable: true, 30 | }, 31 | getManagedConfiguration: { 32 | value: rsvm.RsCreateAction("getManagedConfiguration", 1, function getManagedConfiguration() { 33 | }), writable: true, enumerable: true, configurable: true, 34 | }, 35 | constructor: { writable: true, enumerable: false, configurable: true, value: NavigatorManagedData }, 36 | [Symbol.toStringTag]: { value: "NavigatorManagedData", writable: false, enumerable: false, configurable: true, }, 37 | }); 38 | Object.setPrototypeOf(NavigatorManagedData, EventTarget); 39 | Object.setPrototypeOf(NavigatorManagedData.prototype, EventTarget.prototype); 40 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/Node/CharacterData/Comment/Comment.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "Comment", { 3 | value: rsvm.RsCreateConstructor("Comment", 0, function Comment() { 4 | if (rsvm.debugger) { debugger } 5 | return rsvm.prototype.Comment.new(); 6 | }), writable: true, enumerable: false, configurable: true 7 | }); 8 | 9 | rsvm.prototype.Comment = { 10 | memory: {}, 11 | malloc(target) { 12 | rsvm.mallocBaseMemory("Comment", target); 13 | let memory = rsvm.RsGetPrivateProperty(target, "__memory__"); 14 | memory["nodeType"] = 8; 15 | memory["nodeName"] = "#comment"; 16 | }, 17 | new(text, ownerDocument) { 18 | let obj = rsvm.RsCreate(Comment.prototype); 19 | rsvm.set(obj, "nodeValue", text); 20 | rsvm.set(obj, "ownerDocument", ownerDocument); 21 | rsvm.set(obj, "textContent", text); 22 | 23 | rsvm.set(obj, "data", text); 24 | return obj; 25 | }, 26 | }; 27 | 28 | Object.defineProperties(Comment, { 29 | prototype: { value: Comment.prototype, writable: false, enumerable: false, configurable: false }, 30 | }); 31 | 32 | Object.defineProperties(Comment.prototype, { 33 | constructor: { writable: true, enumerable: false, configurable: true, value: Comment }, 34 | [Symbol.toStringTag]: { value: "Comment", writable: false, enumerable: false, configurable: true, }, 35 | }); 36 | Object.setPrototypeOf(Comment, CharacterData); 37 | Object.setPrototypeOf(Comment.prototype, CharacterData.prototype); 38 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/Node/CharacterData/Text/Text.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "Text", { 3 | value: rsvm.RsCreateConstructor("Text", 0, function Text() { 4 | if (rsvm.debugger) { debugger } 5 | return rsvm.prototype.Text.new(); 6 | }), writable: true, enumerable: false, configurable: true 7 | }); 8 | 9 | rsvm.prototype.Text = { 10 | memory: { 11 | wholeText: "", 12 | assignedSlot: null, 13 | }, 14 | malloc(target) { 15 | rsvm.mallocBaseMemory("Text", target); 16 | let memory = rsvm.RsGetPrivateProperty(target, "__memory__"); 17 | memory["nodeType"] = 3; 18 | memory["nodeName"] = "#text"; 19 | }, 20 | new(text) { 21 | let obj = rsvm.RsCreate(Text.prototype); 22 | rsvm.set(obj, "nodeValue", text); 23 | rsvm.set(obj, "ownerDocument", window.document); 24 | rsvm.set(obj, "textContent", text); 25 | 26 | rsvm.set(obj, "data", text); 27 | rsvm.set(obj, "wholeText", text); 28 | 29 | return obj; 30 | }, 31 | }; 32 | 33 | Object.defineProperties(Text, { 34 | prototype: { value: Text.prototype, writable: false, enumerable: false, configurable: false }, 35 | }); 36 | 37 | Object.defineProperties(Text.prototype, { 38 | wholeText: { 39 | get: rsvm.RsCreateGetter("wholeText", function wholeText() { 40 | return rsvm.get(this, "wholeText"); 41 | }), set: undefined, enumerable: true, configurable: true, 42 | }, 43 | assignedSlot: { 44 | get: rsvm.RsCreateGetter("assignedSlot", function assignedSlot() { 45 | return rsvm.get(this, "assignedSlot"); 46 | }), set: undefined, enumerable: true, configurable: true, 47 | }, 48 | splitText: { 49 | value: rsvm.RsCreateAction("splitText", 1, function splitText() { 50 | }), writable: true, enumerable: true, configurable: true, 51 | }, 52 | constructor: { writable: true, enumerable: false, configurable: true, value: Text }, 53 | [Symbol.toStringTag]: { value: "Text", writable: false, enumerable: false, configurable: true, }, 54 | }); 55 | Object.setPrototypeOf(Text, CharacterData); 56 | Object.setPrototypeOf(Text.prototype, CharacterData.prototype); 57 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/Node/Document/HTMLDocument/HTMLDocument.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "HTMLDocument", { 3 | value: rsvm.RsCreateConstructor("HTMLDocument"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.HTMLDocument = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("HTMLDocument", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(HTMLDocument.prototype); 13 | Object.defineProperty(obj, "location", { 14 | get: rsvm.RsCreateGetter("location", function location(){ 15 | return window.location; 16 | }), set:rsvm.RsCreateSetter("location", function location(){ 17 | window.location = arguments[0]; 18 | }), enumerable: true, configurable: false 19 | }); 20 | return obj; 21 | }, 22 | }; 23 | 24 | Object.defineProperties(HTMLDocument, { 25 | prototype: { value: HTMLDocument.prototype, writable: false, enumerable: false, configurable: false }, 26 | }); 27 | 28 | Object.defineProperties(HTMLDocument.prototype, { 29 | constructor: { writable: true, enumerable: false, configurable: true, value: HTMLDocument }, 30 | [Symbol.toStringTag]: { value: "HTMLDocument", writable: false, enumerable: false, configurable: true, }, 31 | }); 32 | Object.setPrototypeOf(HTMLDocument, Document); 33 | Object.setPrototypeOf(HTMLDocument.prototype, Document.prototype); 34 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/Node/Element/HTMLElement/HTMLDivElement/HTMLDivElement.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "HTMLDivElement", { 3 | value: rsvm.RsCreateConstructor("HTMLDivElement"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.HTMLDivElement = { 7 | memory: { 8 | align: "", 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("HTMLDivElement", target); 12 | }, 13 | new(ownerDocument) { 14 | let obj = rsvm.RsCreate(HTMLDivElement.prototype); 15 | rsvm.set(obj, "nodeName", "div".toLocaleUpperCase()); 16 | rsvm.set(obj, "ownerDocument", ownerDocument); 17 | rsvm.set(obj, "localName", "div"); 18 | rsvm.set(obj, "tagName", "div".toLocaleUpperCase()); 19 | return obj; 20 | }, 21 | }; 22 | 23 | Object.defineProperties(HTMLDivElement, { 24 | prototype: { value: HTMLDivElement.prototype, writable: false, enumerable: false, configurable: false }, 25 | }); 26 | 27 | Object.defineProperties(HTMLDivElement.prototype, { 28 | align: { 29 | get: rsvm.RsCreateGetter("align", function align() { 30 | return rsvm.get(this, "align"); 31 | }), set: rsvm.RsCreateSetter("align", function align() { 32 | rsvm.set(this, "align", arguments[0]); 33 | }), enumerable: true, configurable: true, 34 | }, 35 | constructor: { writable: true, enumerable: false, configurable: true, value: HTMLDivElement }, 36 | [Symbol.toStringTag]: { value: "HTMLDivElement", writable: false, enumerable: false, configurable: true, }, 37 | }); 38 | Object.setPrototypeOf(HTMLDivElement, HTMLElement); 39 | Object.setPrototypeOf(HTMLDivElement.prototype, HTMLElement.prototype); 40 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/Node/Element/HTMLElement/HTMLHeadElement/HTMLHeadElement.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "HTMLHeadElement", { 3 | value: rsvm.RsCreateConstructor("HTMLHeadElement"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.HTMLHeadElement = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("HTMLHeadElement", target); 10 | }, 11 | new(ownerDocument) { 12 | let obj = rsvm.RsCreate(HTMLHeadElement.prototype); 13 | rsvm.set(obj, "nodeName", "head".toLocaleUpperCase()); 14 | rsvm.set(obj, "ownerDocument", ownerDocument); 15 | rsvm.set(obj, "localName", "head"); 16 | rsvm.set(obj, "tagName", "head".toLocaleUpperCase()); 17 | return obj; 18 | }, 19 | }; 20 | 21 | Object.defineProperties(HTMLHeadElement, { 22 | prototype: { value: HTMLHeadElement.prototype, writable: false, enumerable: false, configurable: false }, 23 | }); 24 | 25 | Object.defineProperties(HTMLHeadElement.prototype, { 26 | constructor: { writable: true, enumerable: false, configurable: true, value: HTMLHeadElement }, 27 | [Symbol.toStringTag]: { value: "HTMLHeadElement", writable: false, enumerable: false, configurable: true, }, 28 | }); 29 | Object.setPrototypeOf(HTMLHeadElement, HTMLElement); 30 | Object.setPrototypeOf(HTMLHeadElement.prototype, HTMLElement.prototype); 31 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/Node/Element/HTMLElement/HTMLHtmlElement/HTMLHtmlElement.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "HTMLHtmlElement", { 3 | value: rsvm.RsCreateConstructor("HTMLHtmlElement"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.HTMLHtmlElement = { 7 | memory: { 8 | version: "", 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("HTMLHtmlElement", target); 12 | }, 13 | new(ownerDocument) { 14 | let obj = rsvm.RsCreate(HTMLHtmlElement.prototype); 15 | rsvm.set(obj, "nodeName", "html".toLocaleUpperCase()); 16 | rsvm.set(obj, "ownerDocument", ownerDocument); 17 | rsvm.set(obj, "localName", "html"); 18 | rsvm.set(obj, "tagName", "html".toLocaleUpperCase()); 19 | return obj; 20 | }, 21 | }; 22 | 23 | Object.defineProperties(HTMLHtmlElement, { 24 | prototype: { value: HTMLHtmlElement.prototype, writable: false, enumerable: false, configurable: false }, 25 | }); 26 | 27 | Object.defineProperties(HTMLHtmlElement.prototype, { 28 | version: { 29 | get: rsvm.RsCreateGetter("version", function version() { 30 | return rsvm.get(this, "version"); 31 | }), set: rsvm.RsCreateSetter("version", function version() { 32 | rsvm.set(this, "version", arguments[0]); 33 | }), enumerable: true, configurable: true, 34 | }, 35 | constructor: { writable: true, enumerable: false, configurable: true, value: HTMLHtmlElement }, 36 | [Symbol.toStringTag]: { value: "HTMLHtmlElement", writable: false, enumerable: false, configurable: true, }, 37 | }); 38 | Object.setPrototypeOf(HTMLHtmlElement, HTMLElement); 39 | Object.setPrototypeOf(HTMLHtmlElement.prototype, HTMLElement.prototype); 40 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/Node/Element/HTMLElement/HTMLMediaElement/HTMLAudioElement/HTMLAudioElement.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "HTMLAudioElement", { 3 | value: rsvm.RsCreateConstructor("HTMLAudioElement"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.HTMLAudioElement = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("HTMLAudioElement", target); 10 | }, 11 | new(ownerDocument) { 12 | let obj = rsvm.RsCreate(HTMLAudioElement.prototype); 13 | rsvm.set(obj, "nodeName", "audio".toLocaleUpperCase()); 14 | rsvm.set(obj, "ownerDocument", ownerDocument); 15 | rsvm.set(obj, "localName", "audio"); 16 | rsvm.set(obj, "tagName", "audio".toLocaleUpperCase()); 17 | return obj; 18 | }, 19 | }; 20 | 21 | Object.defineProperties(HTMLAudioElement, { 22 | prototype: { value: HTMLAudioElement.prototype, writable: false, enumerable: false, configurable: false }, 23 | }); 24 | 25 | Object.defineProperties(HTMLAudioElement.prototype, { 26 | constructor: { writable: true, enumerable: false, configurable: true, value: HTMLAudioElement }, 27 | [Symbol.toStringTag]: { value: "HTMLAudioElement", writable: false, enumerable: false, configurable: true, }, 28 | }); 29 | Object.setPrototypeOf(HTMLAudioElement, HTMLMediaElement); 30 | Object.setPrototypeOf(HTMLAudioElement.prototype, HTMLMediaElement.prototype); 31 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/Node/Element/HTMLElement/HTMLParagraphElement/HTMLParagraphElement.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "HTMLParagraphElement", { 3 | value: rsvm.RsCreateConstructor("HTMLParagraphElement"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.HTMLParagraphElement = { 7 | memory: { 8 | align: "", 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("HTMLParagraphElement", target); 12 | }, 13 | new(ownerDocument) { 14 | let obj = rsvm.RsCreate(HTMLParagraphElement.prototype); 15 | rsvm.set(obj, "nodeName", "p".toLocaleUpperCase()); 16 | rsvm.set(obj, "ownerDocument", ownerDocument); 17 | rsvm.set(obj, "localName", "p"); 18 | rsvm.set(obj, "tagName", "p".toLocaleUpperCase()); 19 | return obj; 20 | }, 21 | }; 22 | 23 | Object.defineProperties(HTMLParagraphElement, { 24 | prototype: { value: HTMLParagraphElement.prototype, writable: false, enumerable: false, configurable: false }, 25 | }); 26 | 27 | Object.defineProperties(HTMLParagraphElement.prototype, { 28 | align: { 29 | get: rsvm.RsCreateGetter("align", function align() { 30 | return rsvm.get(this, "align"); 31 | }), set: rsvm.RsCreateSetter("align", function align() { 32 | rsvm.set(this, "align", arguments[0]); 33 | }), enumerable: true, configurable: true, 34 | }, 35 | constructor: { writable: true, enumerable: false, configurable: true, value: HTMLParagraphElement }, 36 | [Symbol.toStringTag]: { value: "HTMLParagraphElement", writable: false, enumerable: false, configurable: true, }, 37 | }); 38 | Object.setPrototypeOf(HTMLParagraphElement, HTMLElement); 39 | Object.setPrototypeOf(HTMLParagraphElement.prototype, HTMLElement.prototype); 40 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/Node/Element/HTMLElement/HTMLSpanElement/HTMLSpanElement.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "HTMLSpanElement", { 3 | value: rsvm.RsCreateConstructor("HTMLSpanElement"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.HTMLSpanElement = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("HTMLSpanElement", target); 10 | }, 11 | new(ownerDocument) { 12 | let obj = rsvm.RsCreate(HTMLSpanElement.prototype); 13 | rsvm.set(obj, "nodeName", "span".toLocaleUpperCase()); 14 | rsvm.set(obj, "ownerDocument", ownerDocument); 15 | rsvm.set(obj, "localName", "span"); 16 | rsvm.set(obj, "tagName", "span".toLocaleUpperCase()); 17 | return obj; 18 | }, 19 | }; 20 | 21 | Object.defineProperties(HTMLSpanElement, { 22 | prototype: { value: HTMLSpanElement.prototype, writable: false, enumerable: false, configurable: false }, 23 | }); 24 | 25 | Object.defineProperties(HTMLSpanElement.prototype, { 26 | constructor: { writable: true, enumerable: false, configurable: true, value: HTMLSpanElement }, 27 | [Symbol.toStringTag]: { value: "HTMLSpanElement", writable: false, enumerable: false, configurable: true, }, 28 | }); 29 | Object.setPrototypeOf(HTMLSpanElement, HTMLElement); 30 | Object.setPrototypeOf(HTMLSpanElement.prototype, HTMLElement.prototype); 31 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/Node/Element/HTMLElement/HTMLTitleElement/HTMLTitleElement.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "HTMLTitleElement", { 3 | value: rsvm.RsCreateConstructor("HTMLTitleElement"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.HTMLTitleElement = { 7 | memory: { 8 | text: "", 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("HTMLTitleElement", target); 12 | }, 13 | new(ownerDocument) { 14 | let obj = rsvm.RsCreate(HTMLTitleElement.prototype); 15 | rsvm.set(obj, "nodeName", "title".toLocaleUpperCase()); 16 | rsvm.set(obj, "ownerDocument", ownerDocument); 17 | rsvm.set(obj, "localName", "title"); 18 | rsvm.set(obj, "tagName", "title".toLocaleUpperCase()); 19 | return obj; 20 | }, 21 | }; 22 | 23 | Object.defineProperties(HTMLTitleElement, { 24 | prototype: { value: HTMLTitleElement.prototype, writable: false, enumerable: false, configurable: false }, 25 | }); 26 | 27 | Object.defineProperties(HTMLTitleElement.prototype, { 28 | text: { 29 | get: rsvm.RsCreateGetter("text", function text() { 30 | return rsvm.get(this, "text"); 31 | }), set: rsvm.RsCreateSetter("text", function text() { 32 | rsvm.set(this, "text", arguments[0]); 33 | }), enumerable: true, configurable: true, 34 | }, 35 | constructor: { writable: true, enumerable: false, configurable: true, value: HTMLTitleElement }, 36 | [Symbol.toStringTag]: { value: "HTMLTitleElement", writable: false, enumerable: false, configurable: true, }, 37 | }); 38 | Object.setPrototypeOf(HTMLTitleElement, HTMLElement); 39 | Object.setPrototypeOf(HTMLTitleElement.prototype, HTMLElement.prototype); 40 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/Node/Element/HTMLElement/HTMLUnknownElement/HTMLUnknownElement.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "HTMLUnknownElement", { 3 | value: rsvm.RsCreateConstructor("HTMLUnknownElement"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.HTMLUnknownElement = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("HTMLUnknownElement", target); 10 | }, 11 | new(ownerDocument, tagName) { 12 | let obj = rsvm.RsCreate(HTMLUnknownElement.prototype); 13 | rsvm.set(obj, "nodeName", tagName.toLocaleUpperCase()); 14 | rsvm.set(obj, "ownerDocument", ownerDocument); 15 | rsvm.set(obj, "localName", tagName.toLocaleLowerCase()); 16 | rsvm.set(obj, "tagName", tagName.toLocaleUpperCase()); 17 | return obj; 18 | }, 19 | }; 20 | 21 | Object.defineProperties(HTMLUnknownElement, { 22 | prototype: { value: HTMLUnknownElement.prototype, writable: false, enumerable: false, configurable: false }, 23 | }); 24 | 25 | Object.defineProperties(HTMLUnknownElement.prototype, { 26 | constructor: { writable: true, enumerable: false, configurable: true, value: HTMLUnknownElement }, 27 | [Symbol.toStringTag]: { value: "HTMLUnknownElement", writable: false, enumerable: false, configurable: true, }, 28 | }); 29 | Object.setPrototypeOf(HTMLUnknownElement, HTMLElement); 30 | Object.setPrototypeOf(HTMLUnknownElement.prototype, HTMLElement.prototype); 31 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/PermissionStatus/PermissionStatus.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "PermissionStatus", { 3 | value: rsvm.RsCreateConstructor("PermissionStatus"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.PermissionStatus = { 7 | memory: { 8 | name: "geolocation", 9 | state: "prompt", 10 | onchange: null, 11 | }, 12 | malloc(target) { 13 | rsvm.mallocBaseMemory("PermissionStatus", target); 14 | }, 15 | new() { 16 | let obj = rsvm.RsCreate(PermissionStatus.prototype); 17 | return obj; 18 | }, 19 | }; 20 | 21 | Object.defineProperties(PermissionStatus, { 22 | prototype: { value: PermissionStatus.prototype, writable: false, enumerable: false, configurable: false }, 23 | }); 24 | 25 | Object.defineProperties(PermissionStatus.prototype, { 26 | name: { 27 | get: rsvm.RsCreateGetter("name", function name() { 28 | return rsvm.get(this, "name"); 29 | }), set: undefined, enumerable: true, configurable: true, 30 | }, 31 | state: { 32 | get: rsvm.RsCreateGetter("state", function state() { 33 | return rsvm.get(this, "state"); 34 | }), set: undefined, enumerable: true, configurable: true, 35 | }, 36 | onchange: { 37 | get: rsvm.RsCreateGetter("onchange", function onchange() { 38 | return rsvm.get(this, "onchange"); 39 | }), set: rsvm.RsCreateSetter("onchange", function onchange() { 40 | rsvm.set(this, "onchange", arguments[0]); 41 | }), enumerable: true, configurable: true, 42 | }, 43 | constructor: { writable: true, enumerable: false, configurable: true, value: PermissionStatus }, 44 | [Symbol.toStringTag]: { value: "PermissionStatus", writable: false, enumerable: false, configurable: true, }, 45 | }); 46 | Object.setPrototypeOf(PermissionStatus, EventTarget); 47 | Object.setPrototypeOf(PermissionStatus.prototype, EventTarget.prototype); 48 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/Serial/Serial.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "Serial", { 3 | value: rsvm.RsCreateConstructor("Serial"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.Serial = { 7 | memory: { 8 | onconnect: null, 9 | ondisconnect: null, 10 | }, 11 | malloc(target) { 12 | rsvm.mallocBaseMemory("Serial", target); 13 | }, 14 | new() { 15 | let obj = rsvm.RsCreate(Serial.prototype); 16 | return obj; 17 | }, 18 | }; 19 | 20 | Object.defineProperties(Serial, { 21 | prototype: { value: Serial.prototype, writable: false, enumerable: false, configurable: false }, 22 | }); 23 | 24 | Object.defineProperties(Serial.prototype, { 25 | onconnect: { 26 | get: rsvm.RsCreateGetter("onconnect", function onconnect() { 27 | return rsvm.get(this, "onconnect"); 28 | }), set: rsvm.RsCreateSetter("onconnect", function onconnect() { 29 | rsvm.set(this, "onconnect", arguments[0]); 30 | }), enumerable: true, configurable: true, 31 | }, 32 | ondisconnect: { 33 | get: rsvm.RsCreateGetter("ondisconnect", function ondisconnect() { 34 | return rsvm.get(this, "ondisconnect"); 35 | }), set: rsvm.RsCreateSetter("ondisconnect", function ondisconnect() { 36 | rsvm.set(this, "ondisconnect", arguments[0]); 37 | }), enumerable: true, configurable: true, 38 | }, 39 | getPorts: { 40 | value: rsvm.RsCreateAction("getPorts", 0, function getPorts() { 41 | }), writable: true, enumerable: true, configurable: true, 42 | }, 43 | constructor: { writable: true, enumerable: false, configurable: true, value: Serial }, 44 | requestPort: { 45 | value: rsvm.RsCreateAction("requestPort", 0, function requestPort() { 46 | }), writable: true, enumerable: true, configurable: true, 47 | }, 48 | [Symbol.toStringTag]: { value: "Serial", writable: false, enumerable: false, configurable: true, }, 49 | }); 50 | Object.setPrototypeOf(Serial, EventTarget); 51 | Object.setPrototypeOf(Serial.prototype, EventTarget.prototype); 52 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/StorageManager/StorageManager.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "StorageManager", { 3 | value: rsvm.RsCreateConstructor("StorageManager"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.StorageManager = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("StorageManager", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(StorageManager.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(StorageManager, { 18 | prototype: { value: StorageManager.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(StorageManager.prototype, { 22 | estimate: { 23 | value: rsvm.RsCreateAction("estimate", 0, function estimate() { 24 | return Promise.resolve({quota: 128850274713, usage: 0, usageDetails: {}}); 25 | }), writable: true, enumerable: true, configurable: true, 26 | }, 27 | persisted: { 28 | value: rsvm.RsCreateAction("persisted", 0, function persisted() { 29 | }), writable: true, enumerable: true, configurable: true, 30 | }, 31 | constructor: { writable: true, enumerable: false, configurable: true, value: StorageManager }, 32 | getDirectory: { 33 | value: rsvm.RsCreateAction("getDirectory", 0, function getDirectory() { 34 | return Promise.resolve(rsvm.prototype.FileSystemDirectoryHandle.new()); 35 | }), writable: true, enumerable: true, configurable: true, 36 | }, 37 | persist: { 38 | value: rsvm.RsCreateAction("persist", 0, function persist() { 39 | }), writable: true, enumerable: true, configurable: true, 40 | }, 41 | [Symbol.toStringTag]: { value: "StorageManager", writable: false, enumerable: false, configurable: true, }, 42 | }); 43 | Object.setPrototypeOf(StorageManager, EventTarget); 44 | Object.setPrototypeOf(StorageManager.prototype, EventTarget.prototype); 45 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/USB/USB.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "USB", { 3 | value: rsvm.RsCreateConstructor("USB"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.USB = { 7 | memory: { 8 | onconnect: null, 9 | ondisconnect: null, 10 | }, 11 | malloc(target) { 12 | rsvm.mallocBaseMemory("USB", target); 13 | }, 14 | new() { 15 | let obj = rsvm.RsCreate(USB.prototype); 16 | return obj; 17 | }, 18 | }; 19 | 20 | Object.defineProperties(USB, { 21 | prototype: { value: USB.prototype, writable: false, enumerable: false, configurable: false }, 22 | }); 23 | 24 | Object.defineProperties(USB.prototype, { 25 | onconnect: { 26 | get: rsvm.RsCreateGetter("onconnect", function onconnect() { 27 | return rsvm.get(this, "onconnect"); 28 | }), set: rsvm.RsCreateSetter("onconnect", function onconnect() { 29 | rsvm.set(this, "onconnect", arguments[0]); 30 | }), enumerable: true, configurable: true, 31 | }, 32 | ondisconnect: { 33 | get: rsvm.RsCreateGetter("ondisconnect", function ondisconnect() { 34 | return rsvm.get(this, "ondisconnect"); 35 | }), set: rsvm.RsCreateSetter("ondisconnect", function ondisconnect() { 36 | rsvm.set(this, "ondisconnect", arguments[0]); 37 | }), enumerable: true, configurable: true, 38 | }, 39 | getDevices: { 40 | value: rsvm.RsCreateAction("getDevices", 0, function getDevices() { 41 | }), writable: true, enumerable: true, configurable: true, 42 | }, 43 | constructor: { writable: true, enumerable: false, configurable: true, value: USB }, 44 | requestDevice: { 45 | value: rsvm.RsCreateAction("requestDevice", 1, function requestDevice() { 46 | }), writable: true, enumerable: true, configurable: true, 47 | }, 48 | [Symbol.toStringTag]: { value: "USB", writable: false, enumerable: false, configurable: true, }, 49 | }); 50 | Object.setPrototypeOf(USB, EventTarget); 51 | Object.setPrototypeOf(USB.prototype, EventTarget.prototype); 52 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/WindowControlsOverlay/WindowControlsOverlay.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "WindowControlsOverlay", { 3 | value: rsvm.RsCreateConstructor("WindowControlsOverlay"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.WindowControlsOverlay = { 7 | memory: { 8 | visible: false, 9 | ongeometrychange: null, 10 | }, 11 | malloc(target) { 12 | rsvm.mallocBaseMemory("WindowControlsOverlay", target); 13 | }, 14 | new() { 15 | let obj = rsvm.RsCreate(WindowControlsOverlay.prototype); 16 | return obj; 17 | }, 18 | }; 19 | 20 | Object.defineProperties(WindowControlsOverlay, { 21 | prototype: { value: WindowControlsOverlay.prototype, writable: false, enumerable: false, configurable: false }, 22 | }); 23 | 24 | Object.defineProperties(WindowControlsOverlay.prototype, { 25 | visible: { 26 | get: rsvm.RsCreateGetter("visible", function visible() { 27 | return rsvm.get(this, "visible"); 28 | }), set: undefined, enumerable: true, configurable: true, 29 | }, 30 | ongeometrychange: { 31 | get: rsvm.RsCreateGetter("ongeometrychange", function ongeometrychange() { 32 | return rsvm.get(this, "ongeometrychange"); 33 | }), set: rsvm.RsCreateSetter("ongeometrychange", function ongeometrychange() { 34 | rsvm.set(this, "ongeometrychange", arguments[0]); 35 | }), enumerable: true, configurable: true, 36 | }, 37 | getTitlebarAreaRect: { 38 | value: rsvm.RsCreateAction("getTitlebarAreaRect", 0, function getTitlebarAreaRect() { 39 | }), writable: true, enumerable: true, configurable: true, 40 | }, 41 | constructor: { writable: true, enumerable: false, configurable: true, value: WindowControlsOverlay }, 42 | [Symbol.toStringTag]: { value: "WindowControlsOverlay", writable: false, enumerable: false, configurable: true, }, 43 | }); 44 | Object.setPrototypeOf(WindowControlsOverlay, EventTarget); 45 | Object.setPrototypeOf(WindowControlsOverlay.prototype, EventTarget.prototype); 46 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/XMLHttpRequestEventTarget/XMLHttpRequestUpload/XMLHttpRequestUpload.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "XMLHttpRequestUpload", { 3 | value: rsvm.RsCreateConstructor("XMLHttpRequestUpload"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.XMLHttpRequestUpload = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("XMLHttpRequestUpload", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(XMLHttpRequestUpload.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(XMLHttpRequestUpload, { 18 | prototype: { value: XMLHttpRequestUpload.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(XMLHttpRequestUpload.prototype, { 22 | constructor: { writable: true, enumerable: false, configurable: true, value: XMLHttpRequestUpload }, 23 | [Symbol.toStringTag]: { value: "XMLHttpRequestUpload", writable: false, enumerable: false, configurable: true, }, 24 | }); 25 | Object.setPrototypeOf(XMLHttpRequestUpload, XMLHttpRequestEventTarget); 26 | Object.setPrototypeOf(XMLHttpRequestUpload.prototype, XMLHttpRequestEventTarget.prototype); 27 | }(); -------------------------------------------------------------------------------- /Browser/EventTarget/XRSystem/XRSystem.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "XRSystem", { 3 | value: rsvm.RsCreateConstructor("XRSystem"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.XRSystem = { 7 | memory: { 8 | ondevicechange: null, 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("XRSystem", target); 12 | }, 13 | new() { 14 | let obj = rsvm.RsCreate(XRSystem.prototype); 15 | return obj; 16 | }, 17 | }; 18 | 19 | Object.defineProperties(XRSystem, { 20 | prototype: { value: XRSystem.prototype, writable: false, enumerable: false, configurable: false }, 21 | }); 22 | 23 | Object.defineProperties(XRSystem.prototype, { 24 | ondevicechange: { 25 | get: rsvm.RsCreateGetter("ondevicechange", function ondevicechange() { 26 | return rsvm.get(this, "ondevicechange"); 27 | }), set: rsvm.RsCreateSetter("ondevicechange", function ondevicechange() { 28 | rsvm.set(this, "ondevicechange", arguments[0]); 29 | }), enumerable: true, configurable: true, 30 | }, 31 | isSessionSupported: { 32 | value: rsvm.RsCreateAction("isSessionSupported", 1, function isSessionSupported() { 33 | }), writable: true, enumerable: true, configurable: true, 34 | }, 35 | requestSession: { 36 | value: rsvm.RsCreateAction("requestSession", 1, function requestSession() { 37 | }), writable: true, enumerable: true, configurable: true, 38 | }, 39 | supportsSession: { 40 | value: rsvm.RsCreateAction("supportsSession", 1, function supportsSession() { 41 | }), writable: true, enumerable: true, configurable: true, 42 | }, 43 | constructor: { writable: true, enumerable: false, configurable: true, value: XRSystem }, 44 | [Symbol.toStringTag]: { value: "XRSystem", writable: false, enumerable: false, configurable: true, }, 45 | }); 46 | Object.setPrototypeOf(XRSystem, EventTarget); 47 | Object.setPrototypeOf(XRSystem.prototype, EventTarget.prototype); 48 | }(); -------------------------------------------------------------------------------- /Browser/External/External.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "External", { 3 | value: rsvm.RsCreateConstructor("External"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.External = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("External", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(External.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(External, { 18 | prototype: { value: External.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(External.prototype, { 22 | AddSearchProvider: { 23 | value: rsvm.RsCreateAction("AddSearchProvider", 0, function AddSearchProvider() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | IsSearchProviderInstalled: { 27 | value: rsvm.RsCreateAction("IsSearchProviderInstalled", 0, function IsSearchProviderInstalled() { 28 | }), writable: true, enumerable: true, configurable: true, 29 | }, 30 | constructor: { writable: true, enumerable: false, configurable: true, value: External }, 31 | [Symbol.toStringTag]: { value: "External", writable: false, enumerable: false, configurable: true, }, 32 | }); 33 | }(); -------------------------------------------------------------------------------- /Browser/FeaturePolicy/FeaturePolicy.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "FeaturePolicy", { 3 | value: rsvm.RsCreateConstructor("FeaturePolicy"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.FeaturePolicy = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("FeaturePolicy", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(FeaturePolicy.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(FeaturePolicy, { 18 | prototype: { value: FeaturePolicy.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(FeaturePolicy.prototype, { 22 | allowedFeatures: { 23 | value: rsvm.RsCreateAction("allowedFeatures", 0, function allowedFeatures() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | allowsFeature: { 27 | value: rsvm.RsCreateAction("allowsFeature", 1, function allowsFeature() { 28 | }), writable: true, enumerable: true, configurable: true, 29 | }, 30 | features: { 31 | value: rsvm.RsCreateAction("features", 0, function features() { 32 | }), writable: true, enumerable: true, configurable: true, 33 | }, 34 | getAllowlistForFeature: { 35 | value: rsvm.RsCreateAction("getAllowlistForFeature", 1, function getAllowlistForFeature() { 36 | }), writable: true, enumerable: true, configurable: true, 37 | }, 38 | constructor: { writable: true, enumerable: false, configurable: true, value: FeaturePolicy }, 39 | [Symbol.toStringTag]: { value: "FeaturePolicy", writable: false, enumerable: false, configurable: true, }, 40 | }); 41 | }(); -------------------------------------------------------------------------------- /Browser/FileSystemHandle/FileSystemHandle.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "FileSystemHandle", { 3 | value: rsvm.RsCreateConstructor("FileSystemHandle"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.FileSystemHandle = { 7 | memory: { 8 | kind: "directory", 9 | name: "", 10 | }, 11 | malloc(target) { 12 | rsvm.mallocBaseMemory("FileSystemHandle", target); 13 | }, 14 | new() { 15 | let obj = rsvm.RsCreate(FileSystemHandle.prototype); 16 | return obj; 17 | }, 18 | }; 19 | 20 | Object.defineProperties(FileSystemHandle, { 21 | prototype: { value: FileSystemHandle.prototype, writable: false, enumerable: false, configurable: false }, 22 | }); 23 | 24 | Object.defineProperties(FileSystemHandle.prototype, { 25 | kind: { 26 | get: rsvm.RsCreateGetter("kind", function kind() { 27 | return rsvm.get(this, "kind"); 28 | }), set: undefined, enumerable: true, configurable: true, 29 | }, 30 | name: { 31 | get: rsvm.RsCreateGetter("name", function name() { 32 | return rsvm.get(this, "name"); 33 | }), set: undefined, enumerable: true, configurable: true, 34 | }, 35 | isSameEntry: { 36 | value: rsvm.RsCreateAction("isSameEntry", 1, function isSameEntry() { 37 | }), writable: true, enumerable: true, configurable: true, 38 | }, 39 | queryPermission: { 40 | value: rsvm.RsCreateAction("queryPermission", 0, function queryPermission() { 41 | }), writable: true, enumerable: true, configurable: true, 42 | }, 43 | remove: { 44 | value: rsvm.RsCreateAction("remove", 0, function remove() { 45 | }), writable: true, enumerable: true, configurable: true, 46 | }, 47 | requestPermission: { 48 | value: rsvm.RsCreateAction("requestPermission", 0, function requestPermission() { 49 | }), writable: true, enumerable: true, configurable: true, 50 | }, 51 | constructor: { writable: true, enumerable: false, configurable: true, value: FileSystemHandle }, 52 | [Symbol.toStringTag]: { value: "FileSystemHandle", writable: false, enumerable: false, configurable: true, }, 53 | }); 54 | }(); -------------------------------------------------------------------------------- /Browser/FragmentDirective/FragmentDirective.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "FragmentDirective", { 3 | value: rsvm.RsCreateConstructor("FragmentDirective"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.FragmentDirective = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("FragmentDirective", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(FragmentDirective.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(FragmentDirective, { 18 | prototype: { value: FragmentDirective.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(FragmentDirective.prototype, { 22 | constructor: { writable: true, enumerable: false, configurable: true, value: FragmentDirective }, 23 | [Symbol.toStringTag]: { value: "FragmentDirective", writable: false, enumerable: false, configurable: true, }, 24 | }); 25 | }(); -------------------------------------------------------------------------------- /Browser/GPU/GPU.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "GPU", { 3 | value: rsvm.RsCreateConstructor("GPU"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.GPU = { 7 | memory: { 8 | wgslLanguageFeatures: rsvm.prototype.WGSLLanguageFeatures.new(), 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("GPU", target); 12 | }, 13 | new() { 14 | let obj = rsvm.RsCreate(GPU.prototype); 15 | return obj; 16 | }, 17 | }; 18 | 19 | Object.defineProperties(GPU, { 20 | prototype: { value: GPU.prototype, writable: false, enumerable: false, configurable: false }, 21 | }); 22 | 23 | Object.defineProperties(GPU.prototype, { 24 | wgslLanguageFeatures: { 25 | get: rsvm.RsCreateGetter("wgslLanguageFeatures", function wgslLanguageFeatures() { 26 | return rsvm.get(this, "wgslLanguageFeatures"); 27 | }), set: undefined, enumerable: true, configurable: true, 28 | }, 29 | getPreferredCanvasFormat: { 30 | value: rsvm.RsCreateAction("getPreferredCanvasFormat", 0, function getPreferredCanvasFormat() { 31 | }), writable: true, enumerable: true, configurable: true, 32 | }, 33 | requestAdapter: { 34 | value: rsvm.RsCreateAction("requestAdapter", 0, function requestAdapter() { 35 | }), writable: true, enumerable: true, configurable: true, 36 | }, 37 | constructor: { writable: true, enumerable: false, configurable: true, value: GPU }, 38 | [Symbol.toStringTag]: { value: "GPU", writable: false, enumerable: false, configurable: true, }, 39 | }); 40 | }(); -------------------------------------------------------------------------------- /Browser/Geolocation/Geolocation.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "Geolocation", { 3 | value: rsvm.RsCreateConstructor("Geolocation"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.Geolocation = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("Geolocation", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(Geolocation.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(Geolocation, { 18 | prototype: { value: Geolocation.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(Geolocation.prototype, { 22 | clearWatch: { 23 | value: rsvm.RsCreateAction("clearWatch", 1, function clearWatch() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | getCurrentPosition: { 27 | value: rsvm.RsCreateAction("getCurrentPosition", 1, function getCurrentPosition() { 28 | }), writable: true, enumerable: true, configurable: true, 29 | }, 30 | watchPosition: { 31 | value: rsvm.RsCreateAction("watchPosition", 1, function watchPosition() { 32 | }), writable: true, enumerable: true, configurable: true, 33 | }, 34 | constructor: { writable: true, enumerable: false, configurable: true, value: Geolocation }, 35 | [Symbol.toStringTag]: { value: "Geolocation", writable: false, enumerable: false, configurable: true, }, 36 | }); 37 | }(); -------------------------------------------------------------------------------- /Browser/HTMLCollection/HTMLFormControlsCollection/HTMLFormControlsCollection.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "HTMLFormControlsCollection", { 3 | value: rsvm.RsCreateConstructor("HTMLFormControlsCollection"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.HTMLFormControlsCollection = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("HTMLFormControlsCollection", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(HTMLFormControlsCollection.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(HTMLFormControlsCollection, { 18 | prototype: { value: HTMLFormControlsCollection.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(HTMLFormControlsCollection.prototype, { 22 | namedItem: { 23 | value: rsvm.RsCreateAction("namedItem", 1, function namedItem() { 24 | return this[arguments[0]]; 25 | }), writable: true, enumerable: true, configurable: true, 26 | }, 27 | constructor: { writable: true, enumerable: false, configurable: true, value: HTMLFormControlsCollection }, 28 | [Symbol.toStringTag]: { value: "HTMLFormControlsCollection", writable: false, enumerable: false, configurable: true, }, 29 | [Symbol.iterator]: { 30 | value: rsvm.RsCreateAction("values", 0, function* values() { 31 | for (const key of Object.keys(this)) { 32 | yield this[key]; 33 | } 34 | }), writable: true, enumerable: false, configurable: true, 35 | }, 36 | }); 37 | Object.setPrototypeOf(HTMLFormControlsCollection, HTMLCollection); 38 | Object.setPrototypeOf(HTMLFormControlsCollection.prototype, HTMLCollection.prototype); 39 | }(); -------------------------------------------------------------------------------- /Browser/Ink/Ink.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "Ink", { 3 | value: rsvm.RsCreateConstructor("Ink"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.Ink = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("Ink", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(Ink.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(Ink, { 18 | prototype: { value: Ink.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(Ink.prototype, { 22 | requestPresenter: { 23 | value: rsvm.RsCreateAction("requestPresenter", 0, function requestPresenter() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | constructor: { writable: true, enumerable: false, configurable: true, value: Ink }, 27 | [Symbol.toStringTag]: { value: "Ink", writable: false, enumerable: false, configurable: true, }, 28 | }); 29 | }(); -------------------------------------------------------------------------------- /Browser/Keyboard/Keyboard.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "Keyboard", { 3 | value: rsvm.RsCreateConstructor("Keyboard"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.Keyboard = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("Keyboard", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(Keyboard.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(Keyboard, { 18 | prototype: { value: Keyboard.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(Keyboard.prototype, { 22 | getLayoutMap: { 23 | value: rsvm.RsCreateAction("getLayoutMap", 0, function getLayoutMap() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | lock: { 27 | value: rsvm.RsCreateAction("lock", 0, function lock() { 28 | }), writable: true, enumerable: true, configurable: true, 29 | }, 30 | unlock: { 31 | value: rsvm.RsCreateAction("unlock", 0, function unlock() { 32 | }), writable: true, enumerable: true, configurable: true, 33 | }, 34 | constructor: { writable: true, enumerable: false, configurable: true, value: Keyboard }, 35 | [Symbol.toStringTag]: { value: "Keyboard", writable: false, enumerable: false, configurable: true, }, 36 | }); 37 | }(); -------------------------------------------------------------------------------- /Browser/LaunchQueue/LaunchQueue.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "LaunchQueue", { 3 | value: rsvm.RsCreateConstructor("LaunchQueue"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.LaunchQueue = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("LaunchQueue", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(LaunchQueue.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(LaunchQueue, { 18 | prototype: { value: LaunchQueue.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(LaunchQueue.prototype, { 22 | setConsumer: { 23 | value: rsvm.RsCreateAction("setConsumer", 1, function setConsumer() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | constructor: { writable: true, enumerable: false, configurable: true, value: LaunchQueue }, 27 | [Symbol.toStringTag]: { value: "LaunchQueue", writable: false, enumerable: false, configurable: true, }, 28 | }); 29 | }(); -------------------------------------------------------------------------------- /Browser/LockManager/LockManager.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "LockManager", { 3 | value: rsvm.RsCreateConstructor("LockManager"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.LockManager = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("LockManager", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(LockManager.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(LockManager, { 18 | prototype: { value: LockManager.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(LockManager.prototype, { 22 | query: { 23 | value: rsvm.RsCreateAction("query", 0, function query() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | request: { 27 | value: rsvm.RsCreateAction("request", 2, function request() { 28 | }), writable: true, enumerable: true, configurable: true, 29 | }, 30 | constructor: { writable: true, enumerable: false, configurable: true, value: LockManager }, 31 | [Symbol.toStringTag]: { value: "LockManager", writable: false, enumerable: false, configurable: true, }, 32 | }); 33 | }(); -------------------------------------------------------------------------------- /Browser/MediaCapabilities/MediaCapabilities.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "MediaCapabilities", { 3 | value: rsvm.RsCreateConstructor("MediaCapabilities"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.MediaCapabilities = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("MediaCapabilities", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(MediaCapabilities.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(MediaCapabilities, { 18 | prototype: { value: MediaCapabilities.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(MediaCapabilities.prototype, { 22 | decodingInfo: { 23 | value: rsvm.RsCreateAction("decodingInfo", 1, function decodingInfo() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | encodingInfo: { 27 | value: rsvm.RsCreateAction("encodingInfo", 1, function encodingInfo() { 28 | }), writable: true, enumerable: true, configurable: true, 29 | }, 30 | constructor: { writable: true, enumerable: false, configurable: true, value: MediaCapabilities }, 31 | [Symbol.toStringTag]: { value: "MediaCapabilities", writable: false, enumerable: false, configurable: true, }, 32 | }); 33 | }(); -------------------------------------------------------------------------------- /Browser/MediaDeviceInfo/InputDeviceInfo/InputDeviceInfo.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "InputDeviceInfo", { 3 | value: rsvm.RsCreateConstructor("InputDeviceInfo"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.InputDeviceInfo = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("InputDeviceInfo", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(InputDeviceInfo.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(InputDeviceInfo, { 18 | prototype: { value: InputDeviceInfo.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(InputDeviceInfo.prototype, { 22 | getCapabilities: { 23 | value: rsvm.RsCreateAction('getCapabilities', 0, function getCapabilities() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | constructor: { writable: true, enumerable: false, configurable: true, value: InputDeviceInfo }, 27 | [Symbol.toStringTag]: { value: "InputDeviceInfo", writable: false, enumerable: false, configurable: true, }, 28 | }); 29 | Object.setPrototypeOf(InputDeviceInfo, MediaDeviceInfo); 30 | Object.setPrototypeOf(InputDeviceInfo.prototype, MediaDeviceInfo.prototype); 31 | }(); -------------------------------------------------------------------------------- /Browser/MediaDeviceInfo/MediaDeviceInfo.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "MediaDeviceInfo", { 3 | value: rsvm.RsCreateConstructor("MediaDeviceInfo"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.MediaDeviceInfo = { 7 | memory: { 8 | deviceId: "communications", 9 | kind: "audiooutput", 10 | label: "通讯 - 扬声器 (5- USB Audio Device) (1b3f:2008)", 11 | groupId: "a9993f1e145f06deb7009aee86e16ed21d79f5709e44b445cfd343f1491eaa12", 12 | }, 13 | malloc(target) { 14 | rsvm.mallocBaseMemory("MediaDeviceInfo", target); 15 | }, 16 | new() { 17 | let obj = rsvm.RsCreate(MediaDeviceInfo.prototype); 18 | return obj; 19 | }, 20 | }; 21 | 22 | Object.defineProperties(MediaDeviceInfo, { 23 | prototype: { value: MediaDeviceInfo.prototype, writable: false, enumerable: false, configurable: false }, 24 | }); 25 | 26 | Object.defineProperties(MediaDeviceInfo.prototype, { 27 | deviceId: { 28 | get: rsvm.RsCreateGetter("deviceId", function deviceId() { 29 | return rsvm.get(this, "deviceId"); 30 | }), set: undefined, enumerable: true, configurable: true, 31 | }, 32 | kind: { 33 | get: rsvm.RsCreateGetter("kind", function kind() { 34 | return rsvm.get(this, "kind"); 35 | }), set: undefined, enumerable: true, configurable: true, 36 | }, 37 | label: { 38 | get: rsvm.RsCreateGetter("label", function label() { 39 | return rsvm.get(this, "label"); 40 | }), set: undefined, enumerable: true, configurable: true, 41 | }, 42 | groupId: { 43 | get: rsvm.RsCreateGetter("groupId", function groupId() { 44 | return rsvm.get(this, "groupId"); 45 | }), set: undefined, enumerable: true, configurable: true, 46 | }, 47 | toJSON: { 48 | value: rsvm.RsCreateAction('toJSON', 0, function toJSON() { 49 | }), writable: true, enumerable: true, configurable: true, 50 | }, 51 | constructor: { writable: true, enumerable: false, configurable: true, value: MediaDeviceInfo }, 52 | [Symbol.toStringTag]: { value: "MediaDeviceInfo", writable: false, enumerable: false, configurable: true, }, 53 | }); 54 | }(); -------------------------------------------------------------------------------- /Browser/MemoryInfo/MemoryInfo.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | let MemoryInfo = {}; 3 | 4 | rsvm.prototype.MemoryInfo = { 5 | memory: { 6 | totalJSHeapSize: 10135337, 7 | usedJSHeapSize: 7834197, 8 | jsHeapSizeLimit: 4294705152, 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("MemoryInfo", target); 12 | }, 13 | new() { 14 | let obj = rsvm.RsCreate(MemoryInfo); 15 | return obj; 16 | }, 17 | }; 18 | 19 | Object.defineProperties(MemoryInfo, { 20 | totalJSHeapSize: { 21 | get: rsvm.RsCreateGetter("totalJSHeapSize", function totalJSHeapSize() { 22 | return rsvm.get(this, "totalJSHeapSize"); 23 | }), set: undefined, enumerable: true, configurable: true, 24 | }, 25 | usedJSHeapSize: { 26 | get: rsvm.RsCreateGetter("usedJSHeapSize", function usedJSHeapSize() { 27 | return rsvm.get(this, "usedJSHeapSize"); 28 | }), set: undefined, enumerable: true, configurable: true, 29 | }, 30 | jsHeapSizeLimit: { 31 | get: rsvm.RsCreateGetter("jsHeapSizeLimit", function jsHeapSizeLimit() { 32 | return rsvm.get(this, "jsHeapSizeLimit"); 33 | }), set: undefined, enumerable: true, configurable: true, 34 | }, 35 | [Symbol.toStringTag]: { value: "MemoryInfo", writable: false, enumerable: false, configurable: true, }, 36 | }); 37 | }(); -------------------------------------------------------------------------------- /Browser/MimeType/MimeType.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "MimeType", { 3 | value: rsvm.RsCreateConstructor("MimeType"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.MimeType = { 7 | memory: { 8 | type: "application/pdf", 9 | suffixes: "pdf", 10 | description: "Portable Document Format", 11 | enabledPlugin: null, 12 | }, 13 | malloc(target) { 14 | rsvm.mallocBaseMemory("MimeType", target); 15 | }, 16 | new() { 17 | let obj = rsvm.RsCreate(MimeType.prototype); 18 | return obj; 19 | }, 20 | }; 21 | 22 | Object.defineProperties(MimeType, { 23 | prototype: { value: MimeType.prototype, writable: false, enumerable: false, configurable: false }, 24 | }); 25 | 26 | Object.defineProperties(MimeType.prototype, { 27 | type: { 28 | get: rsvm.RsCreateGetter("type", function type() { 29 | return rsvm.get(this, "type"); 30 | }), set: undefined, enumerable: true, configurable: true, 31 | }, 32 | suffixes: { 33 | get: rsvm.RsCreateGetter("suffixes", function suffixes() { 34 | return rsvm.get(this, "suffixes"); 35 | }), set: undefined, enumerable: true, configurable: true, 36 | }, 37 | description: { 38 | get: rsvm.RsCreateGetter("description", function description() { 39 | return rsvm.get(this, "description"); 40 | }), set: undefined, enumerable: true, configurable: true, 41 | }, 42 | enabledPlugin: { 43 | get: rsvm.RsCreateGetter("enabledPlugin", function enabledPlugin() { 44 | return rsvm.get(this, "enabledPlugin"); 45 | }), set: undefined, enumerable: true, configurable: true, 46 | }, 47 | constructor: { writable: true, enumerable: false, configurable: true, value: MimeType }, 48 | [Symbol.toStringTag]: { value: "MimeType", writable: false, enumerable: false, configurable: true, }, 49 | }); 50 | }(); -------------------------------------------------------------------------------- /Browser/MutationObserver/MutationObserver.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "MutationObserver", { 3 | value: rsvm.RsCreateConstructor("MutationObserver", 1, function () { 4 | if (typeof arguments[0] != "function"){ 5 | throw new TypeError("Failed to construct 'MutationObserver': 1 argument required, but only 0 present."); 6 | } 7 | return rsvm.prototype.MutationObserver.new.apply(null, arguments); 8 | }), writable: true, enumerable: false, configurable: true 9 | }); 10 | 11 | rsvm.prototype.MutationObserver = { 12 | memory: {}, 13 | malloc(target) { 14 | rsvm.mallocBaseMemory("MutationObserver", target); 15 | }, 16 | new() { 17 | let obj = rsvm.RsCreate(MutationObserver.prototype); 18 | return obj; 19 | }, 20 | }; 21 | 22 | Object.defineProperties(MutationObserver, { 23 | prototype: { value: MutationObserver.prototype, writable: false, enumerable: false, configurable: false }, 24 | }); 25 | 26 | Object.defineProperties(MutationObserver.prototype, { 27 | disconnect: { 28 | value: rsvm.RsCreateAction("disconnect", 0, function disconnect() { 29 | }), writable: true, enumerable: true, configurable: true, 30 | }, 31 | observe: { 32 | value: rsvm.RsCreateAction("observe", 1, function observe() { 33 | }), writable: true, enumerable: true, configurable: true, 34 | }, 35 | takeRecords: { 36 | value: rsvm.RsCreateAction("takeRecords", 0, function takeRecords() { 37 | }), writable: true, enumerable: true, configurable: true, 38 | }, 39 | constructor: { writable: true, enumerable: false, configurable: true, value: MutationObserver }, 40 | [Symbol.toStringTag]: { value: "MutationObserver", writable: false, enumerable: false, configurable: true, }, 41 | }); 42 | }(); -------------------------------------------------------------------------------- /Browser/NavigatorUAData/NavigatorUAData.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "NavigatorUAData", { 3 | value: rsvm.RsCreateConstructor("NavigatorUAData"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.NavigatorUAData = { 7 | memory: { 8 | brands: [ 9 | { brand: "Chromium", version: "118", }, 10 | { brand: "Google Chrome", version: "118", }, 11 | { brand: "Not=A?Brand", version: "99", }, 12 | ], 13 | mobile: false, 14 | platform: "Windows", 15 | }, 16 | malloc(target) { 17 | rsvm.mallocBaseMemory("NavigatorUAData", target); 18 | }, 19 | new() { 20 | let obj = rsvm.RsCreate(NavigatorUAData.prototype); 21 | return obj; 22 | }, 23 | }; 24 | 25 | Object.defineProperties(NavigatorUAData, { 26 | prototype: { value: NavigatorUAData.prototype, writable: false, enumerable: false, configurable: false }, 27 | }); 28 | 29 | Object.defineProperties(NavigatorUAData.prototype, { 30 | brands: { 31 | get: rsvm.RsCreateGetter("brands", function brands() { 32 | return rsvm.get(this, "brands"); 33 | }), set: undefined, enumerable: true, configurable: true, 34 | }, 35 | mobile: { 36 | get: rsvm.RsCreateGetter("mobile", function mobile() { 37 | return rsvm.get(this, "mobile"); 38 | }), set: undefined, enumerable: true, configurable: true, 39 | }, 40 | platform: { 41 | get: rsvm.RsCreateGetter("platform", function platform() { 42 | return rsvm.get(this, "platform"); 43 | }), set: undefined, enumerable: true, configurable: true, 44 | }, 45 | getHighEntropyValues: { 46 | value: rsvm.RsCreateAction("getHighEntropyValues", 1, function getHighEntropyValues() { 47 | }), writable: true, enumerable: true, configurable: true, 48 | }, 49 | toJSON: { 50 | value: rsvm.RsCreateAction("toJSON", 0, function toJSON() { 51 | }), writable: true, enumerable: true, configurable: true, 52 | }, 53 | constructor: { writable: true, enumerable: false, configurable: true, value: NavigatorUAData }, 54 | [Symbol.toStringTag]: { value: "NavigatorUAData", writable: false, enumerable: false, configurable: true, }, 55 | }); 56 | }(); -------------------------------------------------------------------------------- /Browser/NodeList/RadioNodeList/RadioNodeList.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "RadioNodeList", { 3 | value: rsvm.RsCreateConstructor("RadioNodeList"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.RadioNodeList = { 7 | memory: { 8 | value: "", 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("RadioNodeList", target); 12 | }, 13 | new() { 14 | let obj = rsvm.RsCreate(RadioNodeList.prototype); 15 | return obj; 16 | }, 17 | }; 18 | 19 | Object.defineProperties(RadioNodeList, { 20 | prototype: { value: RadioNodeList.prototype, writable: false, enumerable: false, configurable: false }, 21 | }); 22 | 23 | Object.defineProperties(RadioNodeList.prototype, { 24 | value: { 25 | get: rsvm.RsCreateGetter("value", function value() { 26 | return rsvm.get(this, "value"); 27 | }), set: rsvm.RsCreateSetter("value", function value() { 28 | rsvm.set(this, "value", arguments[0]); 29 | }), enumerable: true, configurable: true, 30 | }, 31 | constructor: { writable: true, enumerable: false, configurable: true, value: RadioNodeList }, 32 | [Symbol.toStringTag]: { value: "RadioNodeList", writable: false, enumerable: false, configurable: true, }, 33 | [Symbol.iterator]: { 34 | value: rsvm.RsCreateAction("values", 0, function* values() { 35 | for (const key of Object.keys(this)) { 36 | yield this[key]; 37 | } 38 | }), writable: true, enumerable: false, configurable: true, 39 | }, 40 | }); 41 | Object.setPrototypeOf(RadioNodeList, NodeList); 42 | Object.setPrototypeOf(RadioNodeList.prototype, NodeList.prototype); 43 | }(); -------------------------------------------------------------------------------- /Browser/PerformanceEntry/PerformanceEntry.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "PerformanceEntry", { 3 | value: rsvm.RsCreateConstructor("PerformanceEntry"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.PerformanceEntry = { 7 | memory: { 8 | name: "https://g.alicdn.com/AWSC/fireyejs/1.227.0/fireyejs.js", 9 | entryType: "resource", 10 | startTime: 3182.100000000559, 11 | duration: 45.59999999962747, 12 | }, 13 | malloc(target) { 14 | rsvm.mallocBaseMemory("PerformanceEntry", target); 15 | }, 16 | new() { 17 | let obj = rsvm.RsCreate(PerformanceEntry.prototype); 18 | return obj; 19 | }, 20 | }; 21 | 22 | Object.defineProperties(PerformanceEntry, { 23 | prototype: { value: PerformanceEntry.prototype, writable: false, enumerable: false, configurable: false }, 24 | }); 25 | 26 | Object.defineProperties(PerformanceEntry.prototype, { 27 | name: { 28 | get: rsvm.RsCreateGetter("name", function name() { 29 | return rsvm.get(this, "name"); 30 | }), set: undefined, enumerable: true, configurable: true, 31 | }, 32 | entryType: { 33 | get: rsvm.RsCreateGetter("entryType", function entryType() { 34 | return rsvm.get(this, "entryType"); 35 | }), set: undefined, enumerable: true, configurable: true, 36 | }, 37 | startTime: { 38 | get: rsvm.RsCreateGetter("startTime", function startTime() { 39 | return rsvm.get(this, "startTime"); 40 | }), set: undefined, enumerable: true, configurable: true, 41 | }, 42 | duration: { 43 | get: rsvm.RsCreateGetter("duration", function duration() { 44 | return rsvm.get(this, "duration"); 45 | }), set: undefined, enumerable: true, configurable: true, 46 | }, 47 | toJSON: { 48 | value: rsvm.RsCreateAction("toJSON", 0, function toJSON() { 49 | }), writable: true, enumerable: true, configurable: true, 50 | }, 51 | constructor: { writable: true, enumerable: false, configurable: true, value: PerformanceEntry }, 52 | [Symbol.toStringTag]: { value: "PerformanceEntry", writable: false, enumerable: false, configurable: true, }, 53 | }); 54 | }(); -------------------------------------------------------------------------------- /Browser/PerformanceServerTiming/PerformanceServerTiming.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "PerformanceServerTiming", { 3 | value: rsvm.RsCreateConstructor("PerformanceServerTiming"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.PerformanceServerTiming = { 7 | memory: { 8 | name: undefined, 9 | duration: undefined, 10 | description: undefined, 11 | }, 12 | malloc(target) { 13 | rsvm.mallocBaseMemory("PerformanceServerTiming", target); 14 | }, 15 | new() { 16 | let obj = rsvm.RsCreate(PerformanceServerTiming.prototype); 17 | return obj; 18 | }, 19 | }; 20 | 21 | Object.defineProperties(PerformanceServerTiming, { 22 | prototype: { value: PerformanceServerTiming.prototype, writable: false, enumerable: false, configurable: false }, 23 | }); 24 | 25 | Object.defineProperties(PerformanceServerTiming.prototype, { 26 | name: { 27 | get: rsvm.RsCreateGetter("name", function name() { 28 | return rsvm.get(this, "name"); 29 | }), set: undefined, enumerable: true, configurable: true, 30 | }, 31 | duration: { 32 | get: rsvm.RsCreateGetter("duration", function duration() { 33 | return rsvm.get(this, "duration"); 34 | }), set: undefined, enumerable: true, configurable: true, 35 | }, 36 | description: { 37 | get: rsvm.RsCreateGetter("description", function description() { 38 | return rsvm.get(this, "description"); 39 | }), set: undefined, enumerable: true, configurable: true, 40 | }, 41 | toJSON: { value: undefined, writable: true, enumerable: true, configurable: true, }, 42 | constructor: { writable: true, enumerable: false, configurable: true, value: PerformanceServerTiming }, 43 | [Symbol.toStringTag]: { value: "PerformanceServerTiming", writable: false, enumerable: false, configurable: true, }, 44 | }); 45 | }(); -------------------------------------------------------------------------------- /Browser/Presentation/Presentation.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "Presentation", { 3 | value: rsvm.RsCreateConstructor("Presentation"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.Presentation = { 7 | memory: { 8 | defaultRequest: null, 9 | receiver: null, 10 | }, 11 | malloc(target) { 12 | rsvm.mallocBaseMemory("Presentation", target); 13 | }, 14 | new() { 15 | let obj = rsvm.RsCreate(Presentation.prototype); 16 | return obj; 17 | }, 18 | }; 19 | 20 | Object.defineProperties(Presentation, { 21 | prototype: { value: Presentation.prototype, writable: false, enumerable: false, configurable: false }, 22 | }); 23 | 24 | Object.defineProperties(Presentation.prototype, { 25 | defaultRequest: { 26 | get: rsvm.RsCreateGetter("defaultRequest", function defaultRequest() { 27 | return rsvm.get(this, "defaultRequest"); 28 | }), set: rsvm.RsCreateSetter("defaultRequest", function defaultRequest() { 29 | rsvm.set(this, "defaultRequest", arguments[0]); 30 | }), enumerable: true, configurable: true, 31 | }, 32 | receiver: { 33 | get: rsvm.RsCreateGetter("receiver", function receiver() { 34 | return rsvm.get(this, "receiver"); 35 | }), set: undefined, enumerable: true, configurable: true, 36 | }, 37 | constructor: { writable: true, enumerable: false, configurable: true, value: Presentation }, 38 | [Symbol.toStringTag]: { value: "Presentation", writable: false, enumerable: false, configurable: true, }, 39 | }); 40 | }(); -------------------------------------------------------------------------------- /Browser/ReadableStreamDefaultController/ReadableStreamDefaultController.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "ReadableStreamDefaultController", { 3 | value: rsvm.RsCreateConstructor("ReadableStreamDefaultController"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.ReadableStreamDefaultController = { 7 | memory: { 8 | desiredSize: undefined, 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("ReadableStreamDefaultController", target); 12 | }, 13 | new() { 14 | let obj = rsvm.RsCreate(ReadableStreamDefaultController.prototype); 15 | return obj; 16 | }, 17 | }; 18 | 19 | Object.defineProperties(ReadableStreamDefaultController, { 20 | prototype: { value: ReadableStreamDefaultController.prototype, writable: false, enumerable: false, configurable: false }, 21 | }); 22 | 23 | Object.defineProperties(ReadableStreamDefaultController.prototype, { 24 | desiredSize: { 25 | get: rsvm.RsCreateGetter("desiredSize", function desiredSize() { 26 | return rsvm.get(this, "desiredSize"); 27 | }), set: undefined, enumerable: true, configurable: true, 28 | }, 29 | close: { value: undefined, writable: true, enumerable: true, configurable: true, }, 30 | enqueue: { value: undefined, writable: true, enumerable: true, configurable: true, }, 31 | error: { value: undefined, writable: true, enumerable: true, configurable: true, }, 32 | constructor: { writable: true, enumerable: false, configurable: true, value: ReadableStreamDefaultController }, 33 | [Symbol.toStringTag]: { value: "ReadableStreamDefaultController", writable: false, enumerable: false, configurable: true, }, 34 | }); 35 | }(); -------------------------------------------------------------------------------- /Browser/Scheduler/Scheduler.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "Scheduler", { 3 | value: rsvm.RsCreateConstructor("Scheduler"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.Scheduler = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("Scheduler", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(Scheduler.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(Scheduler, { 18 | prototype: { value: Scheduler.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(Scheduler.prototype, { 22 | postTask: { 23 | value: rsvm.RsCreateAction("postTask", 1, function postTask() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | constructor: { writable: true, enumerable: false, configurable: true, value: Scheduler }, 27 | [Symbol.toStringTag]: { value: "Scheduler", writable: false, enumerable: false, configurable: true, }, 28 | }); 29 | }(); -------------------------------------------------------------------------------- /Browser/Scheduling/Scheduling.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "Scheduling", { 3 | value: rsvm.RsCreateConstructor("Scheduling"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.Scheduling = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("Scheduling", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(Scheduling.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(Scheduling, { 18 | prototype: { value: Scheduling.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(Scheduling.prototype, { 22 | isInputPending: { 23 | value: rsvm.RsCreateAction("isInputPending", 0, function isInputPending() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | constructor: { writable: true, enumerable: false, configurable: true, value: Scheduling }, 27 | [Symbol.toStringTag]: { value: "Scheduling", writable: false, enumerable: false, configurable: true, }, 28 | }); 29 | }(); -------------------------------------------------------------------------------- /Browser/SharedStorageWorklet/SharedStorageWorklet.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "SharedStorageWorklet", { 3 | value: rsvm.RsCreateConstructor("SharedStorageWorklet"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.SharedStorageWorklet = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("SharedStorageWorklet", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(SharedStorageWorklet.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(SharedStorageWorklet, { 18 | prototype: { value: SharedStorageWorklet.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(SharedStorageWorklet.prototype, { 22 | addModule: { 23 | value: rsvm.RsCreateAction("addModule", 1, function addModule() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | constructor: { writable: true, enumerable: false, configurable: true, value: SharedStorageWorklet }, 27 | [Symbol.toStringTag]: { value: "SharedStorageWorklet", writable: false, enumerable: false, configurable: true, }, 28 | }); 29 | }(); -------------------------------------------------------------------------------- /Browser/SpeechSynthesisVoice/SpeechSynthesisVoice.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | let SpeechSynthesisVoice = {}; 3 | 4 | rsvm.prototype.SpeechSynthesisVoice = { 5 | memory: { 6 | voiceURI: "Microsoft Huihui - Chinese (Simplified, PRC)", 7 | name: "Microsoft Huihui - Chinese (Simplified, PRC)", 8 | lang: "zh-CN", 9 | localService: true, 10 | default: true, 11 | }, 12 | malloc(target) { 13 | rsvm.mallocBaseMemory("SpeechSynthesisVoice", target); 14 | }, 15 | new() { 16 | let obj = rsvm.RsCreate(SpeechSynthesisVoice); 17 | return obj; 18 | }, 19 | }; 20 | 21 | Object.defineProperties(SpeechSynthesisVoice, { 22 | voiceURI: { 23 | get: rsvm.RsCreateGetter("voiceURI", function voiceURI() { 24 | return rsvm.get(this, "voiceURI"); 25 | }), set: undefined, enumerable: true, configurable: true, 26 | }, 27 | name: { 28 | get: rsvm.RsCreateGetter("name", function name() { 29 | return rsvm.get(this, "name"); 30 | }), set: undefined, enumerable: true, configurable: true, 31 | }, 32 | lang: { 33 | get: rsvm.RsCreateGetter("lang", function lang() { 34 | return rsvm.get(this, "lang"); 35 | }), set: undefined, enumerable: true, configurable: true, 36 | }, 37 | localService: { 38 | get: rsvm.RsCreateGetter("localService", function localService() { 39 | return rsvm.get(this, "localService"); 40 | }), set: undefined, enumerable: true, configurable: true, 41 | }, 42 | default: { 43 | get: rsvm.RsCreateGetter("default", function default_() { 44 | return rsvm.get(this, "default"); 45 | }), set: undefined, enumerable: true, configurable: true, 46 | }, 47 | [Symbol.toStringTag]: { value: "SpeechSynthesisVoice", writable: false, enumerable: false, configurable: true, }, 48 | }); 49 | }(); -------------------------------------------------------------------------------- /Browser/StyleMedia/StyleMedia.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | let StyleMedia = {}; 3 | 4 | rsvm.prototype.StyleMedia = { 5 | memory: { 6 | type: "screen", 7 | }, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("StyleMedia", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(StyleMedia); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(StyleMedia, { 18 | type: { 19 | get: rsvm.RsCreateGetter("type", function type() { 20 | return rsvm.get(this, "type"); 21 | }), set: undefined, enumerable: true, configurable: true, 22 | }, 23 | matchMedium: { 24 | value: rsvm.RsCreateAction("matchMedium", 0, function matchMedium() { 25 | }), writable: true, enumerable: true, configurable: true, 26 | }, 27 | [Symbol.toStringTag]: { value: "StyleMedia", writable: false, enumerable: false, configurable: true, }, 28 | }); 29 | }(); -------------------------------------------------------------------------------- /Browser/StylePropertyMapReadOnly/StylePropertyMap/StylePropertyMap.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "StylePropertyMap", { 3 | value: rsvm.RsCreateConstructor("StylePropertyMap"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.StylePropertyMap = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("StylePropertyMap", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(StylePropertyMap.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(StylePropertyMap, { 18 | prototype: { value: StylePropertyMap.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(StylePropertyMap.prototype, { 22 | append: { 23 | value: rsvm.RsCreateAction("append", 1, function append() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | clear: { 27 | value: rsvm.RsCreateAction("clear", 0, function clear() { 28 | }), writable: true, enumerable: true, configurable: true, 29 | }, 30 | delete: { 31 | value: rsvm.RsCreateAction("delete", 1, function delete_() { 32 | }), writable: true, enumerable: true, configurable: true, 33 | }, 34 | set: { 35 | value: rsvm.RsCreateAction("set", 1, function set() { 36 | }), writable: true, enumerable: true, configurable: true, 37 | }, 38 | constructor: { writable: true, enumerable: false, configurable: true, value: StylePropertyMap }, 39 | [Symbol.toStringTag]: { value: "StylePropertyMap", writable: false, enumerable: false, configurable: true, }, 40 | }); 41 | Object.setPrototypeOf(StylePropertyMap, StylePropertyMapReadOnly); 42 | Object.setPrototypeOf(StylePropertyMap.prototype, StylePropertyMapReadOnly.prototype); 43 | }(); -------------------------------------------------------------------------------- /Browser/StyleSheetList/StyleSheetList.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "StyleSheetList", { 3 | value: rsvm.RsCreateConstructor("StyleSheetList"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.StyleSheetList = { 7 | memory: { 8 | length: 0, 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("StyleSheetList", target); 12 | }, 13 | new() { 14 | let obj = rsvm.RsCreate(StyleSheetList.prototype); 15 | return obj; 16 | }, 17 | }; 18 | 19 | Object.defineProperties(StyleSheetList, { 20 | prototype: { value: StyleSheetList.prototype, writable: false, enumerable: false, configurable: false }, 21 | }); 22 | 23 | Object.defineProperties(StyleSheetList.prototype, { 24 | length: { 25 | get: rsvm.RsCreateGetter("length", function length() { 26 | return Object.keys(this).length; 27 | }), set: undefined, enumerable: true, configurable: true, 28 | }, 29 | item: { 30 | value: rsvm.RsCreateAction("item", 1, function item() { 31 | return this[key]; 32 | }), writable: true, enumerable: true, configurable: true, 33 | }, 34 | constructor: { writable: true, enumerable: false, configurable: true, value: StyleSheetList }, 35 | [Symbol.toStringTag]: { value: "StyleSheetList", writable: false, enumerable: false, configurable: true, }, 36 | [Symbol.iterator]: { 37 | value: rsvm.RsCreateAction("values", 0, function* values() { 38 | for (const key of Object.keys(this)){ 39 | yield this[key]; 40 | } 41 | }), writable: true, enumerable: false, configurable: true, 42 | }, 43 | }); 44 | }(); -------------------------------------------------------------------------------- /Browser/TextDecoder/TextDecoder.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "TextDecoder", { 3 | value: rsvm.RsCreateConstructor("TextDecoder", 0, function TextDecoder() { 4 | return rsvm.prototype.TextDecoder.new.apply(null, arguments); 5 | }), writable: true, enumerable: false, configurable: true 6 | }); 7 | 8 | rsvm.prototype.TextDecoder = { 9 | memory: { 10 | encoding: "utf-8", 11 | fatal: false, 12 | ignoreBOM: false, 13 | }, 14 | malloc(target) { 15 | rsvm.mallocBaseMemory("TextDecoder", target); 16 | }, 17 | new() { 18 | let obj = rsvm.RsCreate(TextDecoder.prototype); 19 | return obj; 20 | }, 21 | }; 22 | 23 | Object.defineProperties(TextDecoder, { 24 | prototype: { value: TextDecoder.prototype, writable: false, enumerable: false, configurable: false }, 25 | }); 26 | 27 | Object.defineProperties(TextDecoder.prototype, { 28 | encoding: { 29 | get: rsvm.RsCreateGetter("encoding", function encoding() { 30 | return rsvm.get(this, "encoding"); 31 | }), set: undefined, enumerable: true, configurable: true, 32 | }, 33 | fatal: { 34 | get: rsvm.RsCreateGetter("fatal", function fatal() { 35 | return rsvm.get(this, "fatal"); 36 | }), set: undefined, enumerable: true, configurable: true, 37 | }, 38 | ignoreBOM: { 39 | get: rsvm.RsCreateGetter("ignoreBOM", function ignoreBOM() { 40 | return rsvm.get(this, "ignoreBOM"); 41 | }), set: undefined, enumerable: true, configurable: true, 42 | }, 43 | decode: { 44 | value: rsvm.RsCreateAction("decode", 0, function decode() { 45 | }), writable: true, enumerable: true, configurable: true, 46 | }, 47 | constructor: { writable: true, enumerable: false, configurable: true, value: TextDecoder }, 48 | [Symbol.toStringTag]: { value: "TextDecoder", writable: false, enumerable: false, configurable: true, }, 49 | }); 50 | }(); 51 | 52 | -------------------------------------------------------------------------------- /Browser/TimeRanges/TimeRanges.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "TimeRanges", { 3 | value: rsvm.RsCreateConstructor("TimeRanges"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.TimeRanges = { 7 | memory: { 8 | length: 0, 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("TimeRanges", target); 12 | }, 13 | new() { 14 | let obj = rsvm.RsCreate(TimeRanges.prototype); 15 | return obj; 16 | }, 17 | }; 18 | 19 | Object.defineProperties(TimeRanges, { 20 | prototype: { value: TimeRanges.prototype, writable: false, enumerable: false, configurable: false }, 21 | }); 22 | 23 | Object.defineProperties(TimeRanges.prototype, { 24 | length: { 25 | get: rsvm.RsCreateGetter("length", function length() { 26 | return rsvm.get(this, "length"); 27 | }), set: undefined, enumerable: true, configurable: true, 28 | }, 29 | end: { 30 | value: rsvm.RsCreateAction("end", 1, function end() { 31 | }), writable: true, enumerable: true, configurable: true, 32 | }, 33 | start: { 34 | value: rsvm.RsCreateAction("start", 1, function start() { 35 | }), writable: true, enumerable: true, configurable: true, 36 | }, 37 | constructor: { writable: true, enumerable: false, configurable: true, value: TimeRanges }, 38 | [Symbol.toStringTag]: { value: "TimeRanges", writable: false, enumerable: false, configurable: true, }, 39 | }); 40 | }(); -------------------------------------------------------------------------------- /Browser/TouchList/TouchList.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "TouchList", { 3 | value: rsvm.RsCreateConstructor("TouchList"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.TouchList = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("TouchList", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(TouchList.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(TouchList, { 18 | prototype: { value: TouchList.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(TouchList.prototype, { 22 | length: { 23 | get: rsvm.RsCreateGetter("length", function length() { 24 | return Object.keys(this).length; 25 | }), set: undefined, enumerable: true, configurable: true, 26 | }, 27 | item: { 28 | value: rsvm.RsCreateAction("item", 1, function item() { 29 | return this[arguments[0]]; 30 | }), writable: true, enumerable: true, configurable: true, 31 | }, 32 | constructor: { writable: true, enumerable: false, configurable: true, value: TouchList }, 33 | [Symbol.toStringTag]: { value: "TouchList", writable: false, enumerable: false, configurable: true, }, 34 | [Symbol.iterator]: { 35 | value: rsvm.RsCreateAction("values", 0, function* values() { 36 | for (const key of Object.keys(this)) { 37 | yield this[key]; 38 | } 39 | }), writable: true, enumerable: false, configurable: true, 40 | }, 41 | }); 42 | }(); -------------------------------------------------------------------------------- /Browser/TrustedHTML/TrustedHTML.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "TrustedHTML", { 3 | value: rsvm.RsCreateConstructor("TrustedHTML"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.TrustedHTML = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("TrustedHTML", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(TrustedHTML.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(TrustedHTML, { 18 | prototype: { value: TrustedHTML.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(TrustedHTML.prototype, { 22 | toJSON: { 23 | value: rsvm.RsCreateAction("toJSON", 0, function toJSON() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | toString: { 27 | value: rsvm.RsCreateAction("toString", 0, function toString() { 28 | }), writable: true, enumerable: true, configurable: true, 29 | }, 30 | constructor: { writable: true, enumerable: false, configurable: true, value: TrustedHTML }, 31 | [Symbol.toStringTag]: { value: "TrustedHTML", writable: false, enumerable: false, configurable: true, }, 32 | }); 33 | }(); -------------------------------------------------------------------------------- /Browser/TrustedScript/TrustedScript.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "TrustedScript", { 3 | value: rsvm.RsCreateConstructor("TrustedScript"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.TrustedScript = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("TrustedScript", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(TrustedScript.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(TrustedScript, { 18 | prototype: { value: TrustedScript.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(TrustedScript.prototype, { 22 | toJSON: { 23 | value: rsvm.RsCreateAction("toJSON", 0, function toJSON() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | toString: { 27 | value: rsvm.RsCreateAction("toString", 0, function toString() { 28 | }), writable: true, enumerable: true, configurable: true, 29 | }, 30 | constructor: { writable: true, enumerable: false, configurable: true, value: TrustedScript }, 31 | [Symbol.toStringTag]: { value: "TrustedScript", writable: false, enumerable: false, configurable: true, }, 32 | }); 33 | }(); -------------------------------------------------------------------------------- /Browser/UserActivation/UserActivation.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "UserActivation", { 3 | value: rsvm.RsCreateConstructor("UserActivation"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.UserActivation = { 7 | memory: { 8 | hasBeenActive: true, 9 | isActive: true, 10 | }, 11 | malloc(target) { 12 | rsvm.mallocBaseMemory("UserActivation", target); 13 | }, 14 | new() { 15 | let obj = rsvm.RsCreate(UserActivation.prototype); 16 | return obj; 17 | }, 18 | }; 19 | 20 | Object.defineProperties(UserActivation, { 21 | prototype: { value: UserActivation.prototype, writable: false, enumerable: false, configurable: false }, 22 | }); 23 | 24 | Object.defineProperties(UserActivation.prototype, { 25 | hasBeenActive: { 26 | get: rsvm.RsCreateGetter("hasBeenActive", function hasBeenActive() { 27 | return rsvm.get(this, "hasBeenActive"); 28 | }), set: undefined, enumerable: true, configurable: true, 29 | }, 30 | isActive: { 31 | get: rsvm.RsCreateGetter("isActive", function isActive() { 32 | return rsvm.get(this, "isActive"); 33 | }), set: undefined, enumerable: true, configurable: true, 34 | }, 35 | constructor: { writable: true, enumerable: false, configurable: true, value: UserActivation }, 36 | [Symbol.toStringTag]: { value: "UserActivation", writable: false, enumerable: false, configurable: true, }, 37 | }); 38 | }(); -------------------------------------------------------------------------------- /Browser/WGSLLanguageFeatures/WGSLLanguageFeatures.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "WGSLLanguageFeatures", { 3 | value: rsvm.RsCreateConstructor("WGSLLanguageFeatures"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.WGSLLanguageFeatures = { 7 | memory: { 8 | size: 0, 9 | }, 10 | malloc(target) { 11 | rsvm.mallocBaseMemory("WGSLLanguageFeatures", target); 12 | }, 13 | new() { 14 | let obj = rsvm.RsCreate(WGSLLanguageFeatures.prototype); 15 | return obj; 16 | }, 17 | }; 18 | 19 | Object.defineProperties(WGSLLanguageFeatures, { 20 | prototype: { value: WGSLLanguageFeatures.prototype, writable: false, enumerable: false, configurable: false }, 21 | }); 22 | 23 | Object.defineProperties(WGSLLanguageFeatures.prototype, { 24 | size: { 25 | get: rsvm.RsCreateGetter("size", function size() { 26 | return rsvm.get(this, "size"); 27 | }), set: undefined, enumerable: true, configurable: true, 28 | }, 29 | entries: { 30 | value: rsvm.RsCreateAction("entries", 0, function entries() { 31 | }), writable: true, enumerable: true, configurable: true, 32 | }, 33 | forEach: { 34 | value: rsvm.RsCreateAction("forEach", 1, function forEach() { 35 | }), writable: true, enumerable: true, configurable: true, 36 | }, 37 | has: { 38 | value: rsvm.RsCreateAction("has", 1, function has() { 39 | }), writable: true, enumerable: true, configurable: true, 40 | }, 41 | keys: { 42 | value: rsvm.RsCreateAction("keys", 0, function keys() { 43 | }), writable: true, enumerable: true, configurable: true, 44 | }, 45 | values: { 46 | value: rsvm.RsCreateAction("values", 0, function values() { 47 | }), writable: true, enumerable: true, configurable: true, 48 | }, 49 | constructor: { writable: true, enumerable: false, configurable: true, value: WGSLLanguageFeatures }, 50 | [Symbol.toStringTag]: { value: "WGSLLanguageFeatures", writable: false, enumerable: false, configurable: true, }, 51 | [Symbol.iterator]: { 52 | value: rsvm.RsCreateAction("values", 0, function values() { 53 | }), writable: true, enumerable: false, configurable: true, 54 | }, 55 | }); 56 | }(); -------------------------------------------------------------------------------- /Browser/WakeLock/WakeLock.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "WakeLock", { 3 | value: rsvm.RsCreateConstructor("WakeLock"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.WakeLock = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("WakeLock", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(WakeLock.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(WakeLock, { 18 | prototype: { value: WakeLock.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(WakeLock.prototype, { 22 | request: { 23 | value: rsvm.RsCreateAction("request", 0, function request() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | constructor: { writable: true, enumerable: false, configurable: true, value: WakeLock }, 27 | [Symbol.toStringTag]: { value: "WakeLock", writable: false, enumerable: false, configurable: true, }, 28 | }); 29 | }(); -------------------------------------------------------------------------------- /Browser/WebGLBuffer/WebGLBuffer.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "WebGLBuffer", { 3 | value: rsvm.RsCreateConstructor("WebGLBuffer"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.WebGLBuffer = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("WebGLBuffer", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(WebGLBuffer.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(WebGLBuffer, { 18 | prototype: { value: WebGLBuffer.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(WebGLBuffer.prototype, { 22 | constructor: { writable: true, enumerable: false, configurable: true, value: WebGLBuffer }, 23 | [Symbol.toStringTag]: { value: "WebGLBuffer", writable: false, enumerable: false, configurable: true, }, 24 | }); 25 | }(); -------------------------------------------------------------------------------- /Browser/WebGLFramebuffer/WebGLFramebuffer.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "WebGLFramebuffer", { 3 | value: rsvm.RsCreateConstructor("WebGLFramebuffer"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.WebGLFramebuffer = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("WebGLFramebuffer", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(WebGLFramebuffer.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(WebGLFramebuffer, { 18 | prototype: { value: WebGLFramebuffer.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(WebGLFramebuffer.prototype, { 22 | constructor: { writable: true, enumerable: false, configurable: true, value: WebGLFramebuffer }, 23 | [Symbol.toStringTag]: { value: "WebGLFramebuffer", writable: false, enumerable: false, configurable: true, }, 24 | }); 25 | }(); -------------------------------------------------------------------------------- /Browser/WebGLProgram/WebGLProgram.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "WebGLProgram", { 3 | value: rsvm.RsCreateConstructor("WebGLProgram"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.WebGLProgram = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("WebGLProgram", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(WebGLProgram.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(WebGLProgram, { 18 | prototype: { value: WebGLProgram.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(WebGLProgram.prototype, { 22 | constructor: { writable: true, enumerable: false, configurable: true, value: WebGLProgram }, 23 | [Symbol.toStringTag]: { value: "WebGLProgram", writable: false, enumerable: false, configurable: true, }, 24 | }); 25 | }(); -------------------------------------------------------------------------------- /Browser/WebGLRenderbuffer/WebGLRenderbuffer.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "WebGLRenderbuffer", { 3 | value: rsvm.RsCreateConstructor("WebGLRenderbuffer"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.WebGLRenderbuffer = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("WebGLRenderbuffer", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(WebGLRenderbuffer.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(WebGLRenderbuffer, { 18 | prototype: { value: WebGLRenderbuffer.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(WebGLRenderbuffer.prototype, { 22 | constructor: { writable: true, enumerable: false, configurable: true, value: WebGLRenderbuffer }, 23 | [Symbol.toStringTag]: { value: "WebGLRenderbuffer", writable: false, enumerable: false, configurable: true, }, 24 | }); 25 | }(); -------------------------------------------------------------------------------- /Browser/WebGLShader/WebGLShader.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "WebGLShader", { 3 | value: rsvm.RsCreateConstructor("WebGLShader"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.WebGLShader = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("WebGLShader", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(WebGLShader.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(WebGLShader, { 18 | prototype: { value: WebGLShader.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(WebGLShader.prototype, { 22 | constructor: { writable: true, enumerable: false, configurable: true, value: WebGLShader }, 23 | [Symbol.toStringTag]: { value: "WebGLShader", writable: false, enumerable: false, configurable: true, }, 24 | }); 25 | }(); -------------------------------------------------------------------------------- /Browser/WebGLShaderPrecisionFormat/WebGLShaderPrecisionFormat.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "WebGLShaderPrecisionFormat", { 3 | value: rsvm.RsCreateConstructor("WebGLShaderPrecisionFormat"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.WebGLShaderPrecisionFormat = { 7 | memory: { 8 | rangeMin: 127, 9 | rangeMax: 127, 10 | precision: 23, 11 | }, 12 | malloc(target) { 13 | rsvm.mallocBaseMemory("WebGLShaderPrecisionFormat", target); 14 | }, 15 | new() { 16 | let obj = rsvm.RsCreate(WebGLShaderPrecisionFormat.prototype); 17 | return obj; 18 | }, 19 | }; 20 | 21 | Object.defineProperties(WebGLShaderPrecisionFormat, { 22 | prototype: { value: WebGLShaderPrecisionFormat.prototype, writable: false, enumerable: false, configurable: false }, 23 | }); 24 | 25 | Object.defineProperties(WebGLShaderPrecisionFormat.prototype, { 26 | rangeMin: { 27 | get: rsvm.RsCreateGetter("rangeMin", function rangeMin() { 28 | return rsvm.get(this, "rangeMin"); 29 | }), set: undefined, enumerable: true, configurable: true, 30 | }, 31 | rangeMax: { 32 | get: rsvm.RsCreateGetter("rangeMax", function rangeMax() { 33 | return rsvm.get(this, "rangeMax"); 34 | }), set: undefined, enumerable: true, configurable: true, 35 | }, 36 | precision: { 37 | get: rsvm.RsCreateGetter("precision", function precision() { 38 | return rsvm.get(this, "precision"); 39 | }), set: undefined, enumerable: true, configurable: true, 40 | }, 41 | constructor: { writable: true, enumerable: false, configurable: true, value: WebGLShaderPrecisionFormat }, 42 | [Symbol.toStringTag]: { value: "WebGLShaderPrecisionFormat", writable: false, enumerable: false, configurable: true, }, 43 | }); 44 | }(); -------------------------------------------------------------------------------- /Browser/WebGLTexture/WebGLTexture.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "WebGLTexture", { 3 | value: rsvm.RsCreateConstructor("WebGLTexture"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.WebGLTexture = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("WebGLTexture", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(WebGLTexture.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(WebGLTexture, { 18 | prototype: { value: WebGLTexture.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(WebGLTexture.prototype, { 22 | constructor: { writable: true, enumerable: false, configurable: true, value: WebGLTexture }, 23 | [Symbol.toStringTag]: { value: "WebGLTexture", writable: false, enumerable: false, configurable: true, }, 24 | }); 25 | }(); -------------------------------------------------------------------------------- /Browser/WebGLUniformLocation/WebGLUniformLocation.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "WebGLUniformLocation", { 3 | value: rsvm.RsCreateConstructor("WebGLUniformLocation"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.WebGLUniformLocation = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("WebGLUniformLocation", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(WebGLUniformLocation.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(WebGLUniformLocation, { 18 | prototype: { value: WebGLUniformLocation.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(WebGLUniformLocation.prototype, { 22 | constructor: { writable: true, enumerable: false, configurable: true, value: WebGLUniformLocation }, 23 | [Symbol.toStringTag]: { value: "WebGLUniformLocation", writable: false, enumerable: false, configurable: true, }, 24 | }); 25 | }(); -------------------------------------------------------------------------------- /Browser/Window/Window.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | // Object.defineProperty(window, "Window", { 3 | // value: rsvm.RsCreateConstructor("Window"), writable: true, enumerable: false, configurable: true 4 | // }); 5 | 6 | rsvm.prototype.Window = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("Window", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(Window.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(Window, { 18 | prototype: { value: Window.prototype, writable: false, enumerable: false, configurable: false }, 19 | TEMPORARY: { value: 0, writable: false, enumerable: true, configurable: false }, 20 | PERSISTENT: { value: 1, writable: false, enumerable: true, configurable: false }, 21 | }); 22 | 23 | Object.defineProperties(Window.prototype, { 24 | TEMPORARY: { value: 0, writable: false, enumerable: true, configurable: false, }, 25 | PERSISTENT: { value: 1, writable: false, enumerable: true, configurable: false, }, 26 | constructor: { writable: true, enumerable: false, configurable: true, value: Window }, 27 | [Symbol.toStringTag]: { value: "Window", writable: false, enumerable: false, configurable: true, }, 28 | }); 29 | 30 | Object.setPrototypeOf(Window, EventTarget); 31 | // window.__proto__ = Window.prototype; 32 | }(); 33 | -------------------------------------------------------------------------------- /Browser/Window/Window_isolate.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | rsvm.prototype.Window = { 3 | memory: {}, 4 | malloc(target) { 5 | rsvm.mallocBaseMemory("Window", target); 6 | }, 7 | new() { 8 | let obj = rsvm.RsCreate(Window.prototype); 9 | return obj; 10 | }, 11 | }; 12 | 13 | Object.defineProperties(Window, { 14 | prototype: { value: Window.prototype, writable: false, enumerable: false, configurable: false }, 15 | TEMPORARY: { value: 0, writable: false, enumerable: true, configurable: false }, 16 | PERSISTENT: { value: 1, writable: false, enumerable: true, configurable: false }, 17 | }); 18 | 19 | Object.defineProperties(Window.prototype, { 20 | TEMPORARY: { value: 0, writable: false, enumerable: true, configurable: false, }, 21 | PERSISTENT: { value: 1, writable: false, enumerable: true, configurable: false, }, 22 | constructor: { writable: true, enumerable: false, configurable: true, value: Window }, 23 | [Symbol.toStringTag]: { value: "Window", writable: false, enumerable: false, configurable: true, }, 24 | }); 25 | 26 | Object.setPrototypeOf(Window, EventTarget); 27 | }(); 28 | -------------------------------------------------------------------------------- /Browser/Window/Window_vm2.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperties(window, { 3 | window: { 4 | get: function window() { 5 | return globalThis; 6 | }, set: undefined, enumerable: true, configurable: false 7 | }, 8 | }); 9 | 10 | Object.defineProperty(window, "Window", { 11 | value: rsvm.RsCreateConstructor("Window"), writable: true, enumerable: false, configurable: true 12 | }); 13 | 14 | rsvm.prototype.Window = { 15 | memory: {}, 16 | malloc(target) { 17 | rsvm.mallocBaseMemory("Window", target); 18 | }, 19 | new() { 20 | let obj = rsvm.RsCreate(Window.prototype); 21 | return obj; 22 | }, 23 | }; 24 | 25 | Object.defineProperties(Window, { 26 | prototype: { value: Window.prototype, writable: false, enumerable: false, configurable: false }, 27 | TEMPORARY: { value: 0, writable: false, enumerable: true, configurable: false }, 28 | PERSISTENT: { value: 1, writable: false, enumerable: true, configurable: false }, 29 | }); 30 | 31 | Object.defineProperties(Window.prototype, { 32 | TEMPORARY: { value: 0, writable: false, enumerable: true, configurable: false, }, 33 | PERSISTENT: { value: 1, writable: false, enumerable: true, configurable: false, }, 34 | constructor: { writable: true, enumerable: false, configurable: true, value: Window }, 35 | [Symbol.toStringTag]: { value: "Window", writable: false, enumerable: false, configurable: true, }, 36 | }); 37 | 38 | Object.setPrototypeOf(Window, EventTarget); 39 | window.__proto__ = Window.prototype; 40 | }(); 41 | -------------------------------------------------------------------------------- /Browser/XPathExpression/XPathExpression.js: -------------------------------------------------------------------------------- 1 | !function () { 2 | Object.defineProperty(window, "XPathExpression", { 3 | value: rsvm.RsCreateConstructor("XPathExpression"), writable: true, enumerable: false, configurable: true 4 | }); 5 | 6 | rsvm.prototype.XPathExpression = { 7 | memory: {}, 8 | malloc(target) { 9 | rsvm.mallocBaseMemory("XPathExpression", target); 10 | }, 11 | new() { 12 | let obj = rsvm.RsCreate(XPathExpression.prototype); 13 | return obj; 14 | }, 15 | }; 16 | 17 | Object.defineProperties(XPathExpression, { 18 | prototype: { value: XPathExpression.prototype, writable: false, enumerable: false, configurable: false }, 19 | }); 20 | 21 | Object.defineProperties(XPathExpression.prototype, { 22 | evaluate: { 23 | value: rsvm.RsCreateAction("evaluate", 1, function evaluate() { 24 | }), writable: true, enumerable: true, configurable: true, 25 | }, 26 | constructor: { writable: true, enumerable: false, configurable: true, value: XPathExpression }, 27 | [Symbol.toStringTag]: { value: "XPathExpression", writable: false, enumerable: false, configurable: true, }, 28 | }); 29 | }(); -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Web环境框架 2 | 作者:若水 3 | vx: proxy0014 4 | qq: 2370712779 5 | 交流群:907897634 6 | 7 | 基于isolated-vm魔改虚拟机实现的js环境框架,封装了一套非js标准的代理和native函数创建的方法,全局对象等其他对象均不可检测,document.all等均可实现同底层一样效果 8 | 9 | 基本使用看Sites/下的案例,后续再更新使用文档 10 | 11 | ### 操作浏览器对象绑定的属性值 12 | + 获取值(不触发访问器) 13 | ```js 14 | var cookie = rsvm.get(document, "cookie"); 15 | // 不同于 16 | var cookie = document.cookie; 17 | ``` 18 | + 设置值(不触发访问器) 19 | ```js 20 | rsvm.set(document, "cookie", "wdf"); 21 | // 不同于 22 | document.cookie = "wdf"; 23 | ``` 24 | 25 | ### 设置网站url 26 | ```js 27 | rsvm.siteInfo.url = "https://www.baidu.com/"; 28 | ``` 29 | 框架自动根据改值做解析和location对象的构建,location.href, window.origin, document.URL等 30 | 31 | ### 加载构建dom 32 | 直接通过给 rsvm.siteInfo.html 复制上网页源码,即可构建 33 | ```js 34 | rsvm.siteInfo.html = "......"; 35 | ``` 36 | 框架模拟了浏览器构建dom的过程,在遇到script节点,如有脚本代码则会执行代码后再继续构建dom,我称之为“按需加载”,其控制函数为rsvm.build()。 37 | + 如需“按需加载”,则调用rsvm.build(true), 会在script节点停止构建,此时你可以运行自己的代码,后再调用rsvm.build(true)构建碰到script节点,再继续运行你的代码 38 | + 不需“按需加载”,则调用rsvm.build(false)可从当前将要加载的节点开始直接将dom构建完成。 39 | 40 | ### 版本控制 41 | 不同的脚本可根据rsvm.siteInfo.version进行返回值的控制 42 | ```js 43 | rsvm.siteInfo.version = "rs6_yaojian"; 44 | ``` 45 | 46 | ### 缺值/补值 47 | 调试时可通过rsvm.ifProxy=true在框架加载时给一般对象进行代理,全局对象的代理通过在使用isolated-rsvm插件创建上下文时设置rsvm和intercept参数为true 48 | ```js 49 | let context = await isolate.createContext({ inspector: true, rsvm: true, intercept: true }); 50 | ``` 51 | 可通过rsvm.glog=true/rsvm.log=true将全局对象和一般对象的操作日志输出开关打开 52 | 根据日志,将缺的值补充到对应对象或函数中 53 | -------------------------------------------------------------------------------- /Tools/ToolCode.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs") 2 | const Browser = require(`${__dirname}/../Browser/BrowserCode.js`); 3 | 4 | function GetVMCode(type) { 5 | let code = ""; 6 | if (type == 0){ 7 | code += fs.readFileSync(`${__dirname}/rsvm-isolate-vm.js`) + '\r\n'; 8 | } else if (type == 1){ 9 | code += fs.readFileSync(`${__dirname}/rsvm-vm2.js`) + '\r\n'; 10 | } 11 | code += fs.readFileSync(`${__dirname}/parser.js`) + '\r\n'; 12 | code += Browser.GetBrowserCode(type); 13 | code += fs.readFileSync(`${__dirname}/fingerprint.js`) + '\r\n'; 14 | return code; 15 | } 16 | 17 | module.exports = { 18 | GetVMCode, 19 | } -------------------------------------------------------------------------------- /Tools/isolated_rsvm.node: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuoShui-0014/js-env/fffebd75ae6841eecda3f2db14274394603dc9dc/Tools/isolated_rsvm.node -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const Tool = require(`${__dirname}/Tools/ToolCode.js`); 3 | 4 | const WebSocket = require('ws'); 5 | 6 | const VMCode = Tool.GetVMCode(0); 7 | const ivm = require(`${__dirname}/Tools/isolated_rsvm.node`).ivm; 8 | 9 | let code = VMCode + fs.readFileSync(`${__dirname}/Sites/rs_药监局.js`); 10 | 11 | let isolate = new ivm.Isolate({ inspector: true, memoryLimit: 1024 }); 12 | (async function () { 13 | let context = await isolate.createContext({ inspector: true, rsvm: true, intercept: true }); 14 | 15 | let inspector = isolate.createInspectorSession(); 16 | inspector.dispatchProtocolMessage('{"id":1,"method":"Debugger.enable"}'); 17 | 18 | let script = await isolate.compileScriptSync(code, { filename: 'example.js' }); 19 | let result = await script.run(context); 20 | console.log(result); 21 | 22 | inspector.dispose(); 23 | }()).catch(console.error); 24 | 25 | const PORT = 9229; 26 | let wss = new WebSocket.Server({ port: PORT }); 27 | wss.on('connection', function (ws) { 28 | // Dispose inspector session on websocket disconnect 29 | let channel = isolate.createInspectorSession(); 30 | 31 | function dispose() { 32 | try { 33 | channel.dispose(); 34 | } catch (err) { } 35 | } 36 | ws.on('error', dispose); 37 | ws.on('close', dispose); 38 | 39 | // Relay messages from frontend to backend 40 | ws.on('message', function (message) { 41 | try { 42 | channel.dispatchProtocolMessage(String(message)); 43 | } catch (err) { 44 | // This happens if inspector session was closed unexpectedly 45 | ws.close(); 46 | } 47 | }); 48 | 49 | // Relay messages from backend to frontend 50 | function send(message) { 51 | try { 52 | ws.send(message); 53 | } catch (err) { 54 | dispose(); 55 | } 56 | } 57 | channel.onResponse = (callId, message) => send(message); 58 | channel.onNotification = send; 59 | }); 60 | console.log('devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:' + PORT); -------------------------------------------------------------------------------- /isolate-rsvm/src/external_copy/error.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "external_copy.h" 3 | #include "./string.h" 4 | 5 | namespace ivm { 6 | 7 | /** 8 | * Make a special case for errors so if someone throws then a similar error will come out the other 9 | * side. 10 | */ 11 | class ExternalCopyError : public ExternalCopy { 12 | friend class ExternalCopy; 13 | public: 14 | enum class ErrorType { Error, RangeError, ReferenceError, SyntaxError, TypeError, CustomError }; 15 | 16 | ExternalCopyError( 17 | ErrorType error_type, 18 | ExternalCopyString name, 19 | ExternalCopyString message, 20 | ExternalCopyString stack 21 | ); 22 | ExternalCopyError(ErrorType error_type, const char* message, const std::string& stack = ""); 23 | 24 | auto CopyInto(bool transfer_in = false) -> v8::Local final; 25 | 26 | private: 27 | ErrorType error_type; 28 | ExternalCopyString name; 29 | ExternalCopyString message; 30 | ExternalCopyString stack; 31 | }; 32 | 33 | } // namespace ivm 34 | -------------------------------------------------------------------------------- /isolate-rsvm/src/external_copy/string.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "external_copy.h" 3 | #include 4 | #include 5 | 6 | namespace ivm { 7 | 8 | class ExternalCopyString final : public ExternalCopy { 9 | public: 10 | ExternalCopyString() = default; 11 | explicit ExternalCopyString(v8::Local string); 12 | explicit ExternalCopyString(const char* string); 13 | explicit ExternalCopyString(const std::string& string); 14 | ExternalCopyString(const ExternalCopyString&) = delete; 15 | ExternalCopyString(ExternalCopyString&& that) = default; 16 | ~ExternalCopyString() final = default; 17 | auto operator= (const ExternalCopyString&) -> ExternalCopyString& = delete; 18 | auto operator= (ExternalCopyString&& that) noexcept -> ExternalCopyString& = default; 19 | 20 | explicit operator bool() const { return static_cast(value); } 21 | auto CopyInto(bool transfer_in = false) -> v8::Local final; 22 | 23 | private: 24 | std::shared_ptr> value; 25 | bool one_byte = false; 26 | }; 27 | 28 | } // namespace ivm 29 | -------------------------------------------------------------------------------- /isolate-rsvm/src/isolate/allocator.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include "v8_version.h" 5 | 6 | namespace ivm { 7 | 8 | class LimitedAllocator : public v8::ArrayBuffer::Allocator { 9 | private: 10 | class IsolateEnvironment& env; 11 | size_t limit; 12 | size_t v8_heap; 13 | size_t next_check; 14 | int failures = 0; 15 | 16 | 17 | public: 18 | auto Check(size_t length) -> bool; 19 | explicit LimitedAllocator(class IsolateEnvironment& env, size_t limit); 20 | auto Allocate(size_t length) -> void* final; 21 | auto AllocateUninitialized(size_t length) -> void* final; 22 | void Free(void* data, size_t length) final; 23 | auto Reallocate(void* data, size_t old_length, size_t new_length) -> void* final; 24 | 25 | // This is used by ExternalCopy when an ArrayBuffer is transferred. The memory is not freed but 26 | // we should no longer count it against the isolate 27 | void AdjustAllocatedSize(ptrdiff_t length); 28 | auto GetFailureCount() const -> int; 29 | void Track(v8::Local handle, size_t size); 30 | }; 31 | 32 | } // namespace ivm 33 | -------------------------------------------------------------------------------- /isolate-rsvm/src/isolate/external.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "environment.h" 3 | #include "util.h" 4 | #include 5 | #include 6 | #include 7 | 8 | namespace ivm { 9 | namespace detail { 10 | 11 | template 12 | class ExternalHolder { 13 | public: 14 | ExternalHolder(const ExternalHolder&) = delete; 15 | ~ExternalHolder() = default; 16 | auto operator=(const ExternalHolder&) = delete; 17 | 18 | template 19 | static auto New(Args&&... args) { 20 | // Allocate heap memory for ExternalHolder (don't construct) 21 | ExternalHolder* that = std::allocator{}.allocate(1); 22 | // Create a new v8::External referencing the unconstructed holder 23 | auto external = v8::External::New(v8::Isolate::GetCurrent(), &that->data); 24 | // Construct the holder in-place 25 | new(that) ExternalHolder(external, std::forward(args)...); 26 | // Setup weak callbacks (technically could throw) 27 | that->handle.SetWeak(reinterpret_cast(that), WeakCallbackV8, v8::WeakCallbackType::kParameter); 28 | IsolateEnvironment::GetCurrent().AddWeakCallback(&that->handle, WeakCallback, that); 29 | // Return local external handle 30 | return external; 31 | } 32 | 33 | private: 34 | template 35 | explicit ExternalHolder(v8::Local handle, Args&&... args) : 36 | handle{v8::Isolate::GetCurrent(), handle}, data{std::forward(args)...} {} 37 | 38 | static void WeakCallback(void* param) { 39 | auto* that = static_cast(param); 40 | auto& isolate = IsolateEnvironment::GetCurrent(); 41 | isolate.RemoveWeakCallback(&that->handle); 42 | that->handle.Reset(); 43 | delete that; 44 | } 45 | 46 | static void WeakCallbackV8(const v8::WeakCallbackInfo& info) { 47 | WeakCallback(info.GetParameter()); 48 | } 49 | 50 | v8::Persistent handle; 51 | Type data; 52 | }; 53 | 54 | } // namespace detail 55 | 56 | /** 57 | * Returns a v8::External with attached handle deletion 58 | */ 59 | template 60 | auto MakeExternal(Args&&... args) { 61 | return detail::ExternalHolder::New(std::forward(args)...); 62 | } 63 | 64 | } 65 | -------------------------------------------------------------------------------- /isolate-rsvm/src/isolate/generic/read_option.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "handle_cast.h" 4 | 5 | namespace ivm { 6 | namespace detail { 7 | 8 | struct ParamRequired : std::exception {}; 9 | 10 | template 11 | inline auto ReadOptionImpl(v8::MaybeLocal maybe_options, Property&& property, Default default_fn) { 12 | HandleCastArguments arguments; 13 | auto property_handle = HandleCast>(std::forward(property), arguments); 14 | try { 15 | v8::Local options; 16 | if (maybe_options.ToLocal(&options)) { 17 | v8::Local value = Unmaybe(options->Get(arguments.context, property_handle)); 18 | if (value->IsNullOrUndefined()) { 19 | return default_fn(); 20 | } 21 | return HandleCast(value, arguments); 22 | } else { 23 | return default_fn(); 24 | } 25 | } catch (const ParamIncorrect& ex) { 26 | throw RuntimeTypeError{ 27 | std::string{"`"}+ *v8::String::Utf8Value{arguments.isolate, property_handle}+ "` must be "+ ex.type 28 | }; 29 | } catch (const ParamRequired&) { 30 | throw RuntimeTypeError( 31 | std::string{"`"}+ *v8::String::Utf8Value{arguments.isolate, property_handle}+ "` is required"); 32 | } 33 | } 34 | 35 | } // namespace detail 36 | 37 | template 38 | auto ReadOption(Options options, Property&& property) { 39 | return detail::ReadOptionImpl(options, std::forward(property), []() { throw detail::ParamRequired(); }); 40 | } 41 | 42 | template 43 | auto ReadOption(Options options, Property&& property, Type default_value) { 44 | return detail::ReadOptionImpl(options, std::forward(property), [&]() { return std::move(default_value); }); 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /isolate-rsvm/src/isolate/holder.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "platform_delegate.h" 3 | #include "runnable.h" 4 | #include "v8_version.h" 5 | #include "lib/lockable.h" 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | namespace ivm { 12 | 13 | class IsolateEnvironment; 14 | 15 | class IsolateDisposeWait { 16 | public: 17 | void IsolateDidDispose(); 18 | void Join(); 19 | 20 | private: 21 | lockable_t is_disposed{false}; 22 | }; 23 | 24 | class IsolateHolder { 25 | friend IsolateEnvironment; 26 | 27 | public: 28 | explicit IsolateHolder(std::shared_ptr isolate) : 29 | isolate{std::move(isolate)} {} 30 | IsolateHolder(const IsolateHolder&) = delete; 31 | ~IsolateHolder() = default; 32 | auto operator=(const IsolateHolder&) = delete; 33 | 34 | static auto GetCurrent() -> std::shared_ptr; 35 | 36 | auto Dispose() -> bool; 37 | void Release(); 38 | auto GetIsolate() -> std::shared_ptr; 39 | void ScheduleTask(std::unique_ptr task, bool run_inline, bool wake_isolate, bool handle_task = false); 40 | 41 | private: 42 | lockable_t> isolate; 43 | }; 44 | 45 | // This needs to be separate from IsolateHolder because v8 holds references to this indefinitely and 46 | // we don't want it keeping the isolate alive. 47 | class IsolateTaskRunner final : public TaskRunner { 48 | public: 49 | explicit IsolateTaskRunner(const std::shared_ptr& isolate) : weak_env{isolate} {} 50 | IsolateTaskRunner(const IsolateTaskRunner&) = delete; 51 | ~IsolateTaskRunner() final = default; 52 | auto operator=(const IsolateTaskRunner&) = delete; 53 | 54 | // Methods for v8::TaskRunner 55 | void PostTask(std::unique_ptr task) final; 56 | void PostDelayedTask(std::unique_ptr task, double delay_in_seconds) final; 57 | void PostNonNestableTask(std::unique_ptr task) final { PostTask(std::move(task)); } 58 | 59 | private: 60 | std::weak_ptr weak_env; 61 | }; 62 | 63 | } // namespace ivm 64 | -------------------------------------------------------------------------------- /isolate-rsvm/src/isolate/node_wrapper.h: -------------------------------------------------------------------------------- 1 | // node.h has some deprecated v8 calls which blow up with warnings 2 | #pragma once 3 | #ifdef __clang__ 4 | #pragma clang system_header 5 | #include 6 | #elif __GNUC__ 7 | #pragma GCC system_header 8 | #include 9 | #elif _MSC_VER 10 | #pragma warning(push, 0) 11 | #include 12 | #pragma warning(pop) 13 | #else 14 | #include 15 | #endif 16 | -------------------------------------------------------------------------------- /isolate-rsvm/src/isolate/platform_delegate.cc: -------------------------------------------------------------------------------- 1 | #include "platform_delegate.h" 2 | 3 | namespace ivm { 4 | namespace { 5 | PlatformDelegate delegate; 6 | } 7 | 8 | void PlatformDelegate::InitializeDelegate() { 9 | auto context = v8::Isolate::GetCurrent()->GetCurrentContext(); 10 | auto* node_platform = node::GetMultiIsolatePlatform(node::GetCurrentEnvironment(context)); 11 | delegate = PlatformDelegate{node_platform}; 12 | } 13 | 14 | void PlatformDelegate::RegisterIsolate(v8::Isolate* isolate, node::IsolatePlatformDelegate* isolate_delegate) { 15 | delegate.node_platform->RegisterIsolate(isolate, isolate_delegate); 16 | } 17 | 18 | void PlatformDelegate::UnregisterIsolate(v8::Isolate* isolate) { 19 | delegate.node_platform->UnregisterIsolate(isolate); 20 | } 21 | 22 | } // namespace ivm 23 | -------------------------------------------------------------------------------- /isolate-rsvm/src/isolate/platform_delegate.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "lib/lockable.h" 3 | #include "node_wrapper.h" 4 | #include "v8_version.h" 5 | #include 6 | #include 7 | #include 8 | 9 | namespace ivm { 10 | 11 | // Normalize this interface from v8 12 | class TaskRunner : public v8::TaskRunner { 13 | public: 14 | // Methods for v8::TaskRunner 15 | void PostTask(std::unique_ptr task) override = 0; 16 | void PostDelayedTask(std::unique_ptr task, double delay_in_seconds) override = 0; 17 | void PostIdleTask(std::unique_ptr /*task*/) final { std::terminate(); } 18 | // Can't be final because symbol is also used in IsolatePlatformDelegate 19 | auto IdleTasksEnabled() -> bool override { return false; }; 20 | auto NonNestableTasksEnabled() const -> bool final { return true; } 21 | void PostNonNestableDelayedTask(std::unique_ptr /*task*/, double /*delay_in_seconds*/) final { std::terminate(); } 22 | auto NonNestableDelayedTasksEnabled() const -> bool final { return false; } 23 | }; 24 | 25 | class PlatformDelegate { 26 | public: 27 | PlatformDelegate() = default; 28 | explicit PlatformDelegate(node::MultiIsolatePlatform* node_platform) : node_platform{node_platform} {} 29 | PlatformDelegate(const PlatformDelegate&) = delete; 30 | PlatformDelegate(PlatformDelegate&&) = delete; 31 | ~PlatformDelegate() = default; // NOLINT(modernize-use-override) -- this only sometimes inherits from v8::Platform 32 | 33 | auto operator=(const PlatformDelegate&) = delete; 34 | auto operator=(PlatformDelegate&& delegate) noexcept -> PlatformDelegate& { 35 | node_platform = std::exchange(delegate.node_platform, nullptr); 36 | return *this; 37 | } 38 | 39 | static void InitializeDelegate(); 40 | static void RegisterIsolate(v8::Isolate* isolate, node::IsolatePlatformDelegate* isolate_delegate); 41 | static void UnregisterIsolate(v8::Isolate* isolate); 42 | 43 | node::MultiIsolatePlatform* node_platform = nullptr; 44 | }; 45 | 46 | } // namespace ivm 47 | -------------------------------------------------------------------------------- /isolate-rsvm/src/isolate/runnable.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | namespace ivm { 5 | // ivm::Runnable serves the same role as v8::Task but instances of Runnable live and die without v8 6 | // so it might not actually make sense to use a v8 container for the job. An alias is used to avoid 7 | // the adapter which would be needed in the case where a Runnable actually does need to be passed 8 | // off to v8. 9 | using Runnable = v8::Task; 10 | /* 11 | class Runnable { 12 | public: 13 | virtual ~Runnable() = default; 14 | virtual void Run() = 0; 15 | }; 16 | 17 | class TaskHolder : public Runnable { 18 | private: 19 | std::unique_ptr task; 20 | public: 21 | explicit TaskHolder(v8::Task* task) : task{task} {} 22 | explicit TaskHolder(std::unique_ptr task) : task{std::move(task)} {} 23 | TaskHolder(TaskHolder task) noexcept : task{std::move(task.task)} {} 24 | void Run() final { 25 | task->Run(); 26 | } 27 | }; 28 | */ 29 | } // namespace ivm 30 | -------------------------------------------------------------------------------- /isolate-rsvm/src/isolate/specific.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | namespace ivm { 6 | namespace detail { 7 | extern std::atomic IsolateSpecificSize; 8 | } 9 | 10 | /** 11 | * Like thread_local data, but specific to an Isolate instead. 12 | */ 13 | template 14 | class IsolateSpecific { 15 | template 16 | friend class IsolateSpecific; 17 | 18 | public: 19 | IsolateSpecific() = default; 20 | 21 | template 22 | auto Deref(Functor callback) -> v8::Local; 23 | 24 | private: 25 | size_t key{detail::IsolateSpecificSize++}; 26 | union HandleConvert { 27 | explicit HandleConvert(v8::Local data) : data{data} {} 28 | v8::Local data; 29 | v8::Local value; 30 | }; 31 | }; 32 | 33 | } // namespace ivm 34 | 35 | #include "environment.h" 36 | -------------------------------------------------------------------------------- /isolate-rsvm/src/isolate/stack_trace.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "class_handle.h" 4 | #include 5 | 6 | namespace ivm { 7 | 8 | /** 9 | * v8::StackTrace doesn't inherit from v8::Value so it can't be set as a property of an object which 10 | * is what we need to do to pass stack traces in an efficent way. So this gets around that. 11 | */ 12 | class StackTraceHolder : public ClassHandle { 13 | private: 14 | static void AppendFileLocation(v8::Isolate* isolate, v8::Local frame, std::stringstream& ss); 15 | public: 16 | v8::Persistent> stack_trace; 17 | explicit StackTraceHolder(v8::Local stack_handle); 18 | static auto Definition() -> v8::Local; 19 | static void AttachStack(v8::Local error, v8::Local stack); 20 | static void ChainStack(v8::Local error, v8::Local stack); 21 | static auto RenderSingleStack(v8::Local stack_trace) -> std::string; 22 | }; 23 | 24 | } // namespace ivm 25 | -------------------------------------------------------------------------------- /isolate-rsvm/src/isolate/strings.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuoShui-0014/js-env/fffebd75ae6841eecda3f2db14274394603dc9dc/isolate-rsvm/src/isolate/strings.h -------------------------------------------------------------------------------- /isolate-rsvm/src/isolate/transferable.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | namespace ivm { 5 | 6 | class Transferable { 7 | public: 8 | Transferable() = default; 9 | Transferable(const Transferable&) = delete; 10 | auto operator= (const Transferable&) = delete; 11 | virtual ~Transferable() = default; 12 | virtual auto TransferIn() -> v8::Local = 0; 13 | }; 14 | 15 | } // namespace ivm 16 | -------------------------------------------------------------------------------- /isolate-rsvm/src/isolate/util.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include "generic/error.h" 7 | 8 | namespace ivm { 9 | 10 | /** 11 | * Easy strings 12 | */ 13 | inline auto v8_string(const char* string) -> v8::Local { 14 | return Unmaybe(v8::String::NewFromOneByte(v8::Isolate::GetCurrent(), (const uint8_t*)string, v8::NewStringType::kNormal)); // NOLINT 15 | } 16 | 17 | inline auto v8_symbol(const char* string) -> v8::Local { 18 | return Unmaybe(v8::String::NewFromOneByte(v8::Isolate::GetCurrent(), (const uint8_t*)string, v8::NewStringType::kInternalized)); // NOLINT 19 | } 20 | 21 | /** 22 | * Shorthand dereference of Persistent to Local 23 | */ 24 | template 25 | auto Deref(const v8::Persistent& handle) -> v8::Local { 26 | return v8::Local::New(v8::Isolate::GetCurrent(), handle); 27 | } 28 | 29 | template 30 | auto Deref(const v8::Persistent>& handle) -> v8::Local { 31 | return v8::Local::New(v8::Isolate::GetCurrent(), handle); 32 | } 33 | 34 | } 35 | 36 | #include "remote_handle.h" 37 | 38 | namespace ivm { 39 | 40 | template 41 | auto Deref(const RemoteHandle& handle) -> v8::Local { 42 | return handle.Deref(); 43 | } 44 | 45 | } // namespace ivm 46 | -------------------------------------------------------------------------------- /isolate-rsvm/src/isolate/v8_inspector_wrapper.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "node_wrapper.h" 3 | #include "./v8_version.h" 4 | #if V8_AT_LEAST(12, 4, 254) 5 | #include "v8_inspector/nodejs_v22.0.0.h" 6 | #elif V8_AT_LEAST(11, 3, 244) 7 | #include "v8_inspector/nodejs_v20.0.0.h" 8 | #elif V8_AT_LEAST(10, 2, 154) 9 | #include "v8_inspector/nodejs_v18.3.0.h" 10 | #else 11 | #include "v8_inspector/nodejs_v18.0.0.h" 12 | #endif 13 | -------------------------------------------------------------------------------- /isolate-rsvm/src/isolate/v8_version.h: -------------------------------------------------------------------------------- 1 | #include "node_wrapper.h" 2 | #define V8_AT_LEAST(major, minor, patch) (\ 3 | V8_MAJOR_VERSION > (major) || \ 4 | (V8_MAJOR_VERSION == (major) && V8_MINOR_VERSION > (minor)) || \ 5 | (V8_MAJOR_VERSION == (major) && V8_MINOR_VERSION == (minor) && V8_BUILD_NUMBER >= (patch)) \ 6 | ) 7 | 8 | #ifdef NODE_MODULE_VERSION 9 | #define NODE_MODULE_OR_V8_AT_LEAST(nodejs, v8_major, v8_minor, v8_build) (NODE_MODULE_VERSION >= (nodejs)) 10 | #else 11 | #define NODE_MODULE_OR_V8_AT_LEAST(nodejs, v8_major, v8_minor, v8_build) (V8_AT_LEAST(v8_major, v8_minor, v8_build)) 12 | #endif 13 | -------------------------------------------------------------------------------- /isolate-rsvm/src/isolated_vm.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #ifdef _WIN32 3 | #define ISOLATED_VM_MODULE extern "C" __declspec(dllexport) 4 | #else 5 | #define ISOLATED_VM_MODULE extern "C" 6 | #endif 7 | 8 | #include "isolate/environment.h" 9 | #include "isolate/holder.h" 10 | #include "isolate/remote_handle.h" 11 | #include "isolate/runnable.h" 12 | #include 13 | 14 | namespace isolated_vm { 15 | using Runnable = ivm::Runnable; 16 | // ^ The only thing you need to know: `virtual void Run() = 0` 17 | 18 | class IsolateHolder { 19 | private: 20 | std::shared_ptr holder; 21 | explicit IsolateHolder(std::shared_ptr holder) : holder{std::move(holder)} { 22 | ivm::LockedScheduler::IncrementUvRefForIsolate(holder); 23 | } 24 | 25 | public: 26 | IsolateHolder(const IsolateHolder& that) : holder{that.holder} { 27 | ivm::LockedScheduler::IncrementUvRefForIsolate(holder); 28 | } 29 | 30 | IsolateHolder(IsolateHolder&& that) noexcept : holder{std::move(that.holder)} { 31 | } 32 | 33 | ~IsolateHolder() { 34 | if (holder) { 35 | ivm::LockedScheduler::DecrementUvRefForIsolate(holder); 36 | } 37 | } 38 | 39 | auto operator=(const IsolateHolder&) -> IsolateHolder& = default; 40 | auto operator=(IsolateHolder&&) -> IsolateHolder& = default; 41 | 42 | static auto GetCurrent() -> IsolateHolder { 43 | return IsolateHolder{ivm::IsolateEnvironment::GetCurrentHolder()}; 44 | } 45 | 46 | void ScheduleTask(std::unique_ptr runnable) { 47 | holder->ScheduleTask(std::move(runnable), false, true, false); 48 | } 49 | 50 | void Release() { 51 | holder.reset(); 52 | } 53 | }; 54 | 55 | template 56 | class RemoteHandle { 57 | private: 58 | std::shared_ptr> handle; 59 | 60 | public: 61 | explicit RemoteHandle(v8::Local handle) : handle(std::make_shared>(handle)) {} 62 | 63 | auto operator*() const { 64 | return handle->Deref(); 65 | } 66 | 67 | void Release() { 68 | handle.reset(); 69 | } 70 | }; 71 | } // namespace isolated_vm 72 | -------------------------------------------------------------------------------- /isolate-rsvm/src/lib/covariant.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace detail { 4 | 5 | template 6 | void destructor_wrapper(Base* value) { 7 | static_cast(value)->~Type(); 8 | } 9 | 10 | template 11 | struct contains_type { 12 | static constexpr bool value = 13 | std::is_same::value || contains_type::value; 14 | }; 15 | 16 | template 17 | struct contains_type : std::is_same {}; 18 | 19 | } // namespace detail 20 | 21 | template 22 | class in_place {}; 23 | 24 | template 25 | class covariant_t { 26 | public: 27 | template 28 | explicit covariant_t(in_place /*tag*/, Args&&... args) : dtor{&::detail::destructor_wrapper} { 29 | static_assert(::detail::contains_type::value, "Instantiated constructor must inherit from `Base`"); 30 | new(&storage) Ctor(std::forward(args)...); 31 | } 32 | 33 | ~covariant_t() { 34 | dtor(base()); 35 | } 36 | 37 | covariant_t(const covariant_t&) = delete; 38 | auto operator=(const covariant_t&) = delete; 39 | 40 | auto operator*() -> auto& { return *base(); } 41 | auto operator*() const -> auto& { return *base(); } 42 | auto operator->() { return base(); } 43 | auto operator->() const { return base(); } 44 | 45 | private: 46 | auto base() { return static_cast(static_cast(&storage)); } 47 | 48 | std::aligned_union_t<1, Storage...> storage; 49 | void(*dtor)(Base*); 50 | }; 51 | -------------------------------------------------------------------------------- /isolate-rsvm/src/lib/thread_pool.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | namespace ivm { 10 | 11 | class thread_pool_t { 12 | public: 13 | using entry_t = void(bool, void*); 14 | class affinity_t { 15 | friend thread_pool_t; 16 | std::unordered_set ids; 17 | unsigned previous = std::numeric_limits::max(); 18 | }; 19 | 20 | explicit thread_pool_t(size_t desired_size) noexcept : desired_size{desired_size} {} 21 | thread_pool_t(const thread_pool_t&) = delete; 22 | ~thread_pool_t() { resize(0); } 23 | auto operator= (const thread_pool_t&) = delete; 24 | 25 | void exec(affinity_t& affinity, entry_t* entry, void* param); 26 | void resize(size_t size); 27 | 28 | private: 29 | auto new_thread(std::lock_guard& /*lock*/) -> size_t; 30 | 31 | struct thread_data_t { 32 | std::thread thread; 33 | std::condition_variable cv; 34 | entry_t* entry = nullptr; 35 | void* param = nullptr; 36 | bool should_exit = false; 37 | }; 38 | 39 | size_t desired_size; 40 | size_t rr = 0; 41 | std::mutex mutex; 42 | std::deque thread_data; 43 | }; 44 | 45 | } // namespace ivm 46 | -------------------------------------------------------------------------------- /isolate-rsvm/src/lib/timer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | namespace ivm { 6 | 7 | /** 8 | * isolated-vm could start timers from different threads which libuv isn't really cut out for, so 9 | * I'm rolling my own here. The goal of the library is to have atomic timers without spawning a new 10 | * thread for each timer. 11 | */ 12 | struct timer_data_t; 13 | class timer_t { 14 | public: 15 | using callback_t = std::function; 16 | 17 | // Runs a callback unless the `timer_t` destructor is called. 18 | timer_t(uint32_t ms, void** holder, const callback_t& callback); 19 | timer_t(uint32_t ms, const callback_t& callback) : timer_t{ms, nullptr, callback} {} 20 | timer_t(const timer_t&) = delete; 21 | ~timer_t(); 22 | auto operator= (const timer_t&) = delete; 23 | 24 | // Runs a callback in `ms` with no `timer_t` object. 25 | static void wait_detached(uint32_t ms, const callback_t& callback); 26 | // Invoked from callbacks when they are done scheduling and may need to wait 27 | static void chain(void* ptr); 28 | // Pause/unpause timer callbacks 29 | static void pause(void*& holder); 30 | static void resume(void*& holder); 31 | 32 | private: 33 | std::shared_ptr data; 34 | }; 35 | 36 | } // namespace ivm 37 | -------------------------------------------------------------------------------- /isolate-rsvm/src/module/callback.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "transferable.h" 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | namespace ivm { 9 | 10 | /** 11 | * Holds a reference to a function in an arbitrary isolate 12 | */ 13 | class CallbackHandle : public TransferableHandle { 14 | public: 15 | template 16 | explicit CallbackHandle(Args&&... args) : data{std::forward(args)...} {} 17 | 18 | static auto Definition() -> v8::Local; 19 | static auto New(v8::Local fn, v8::MaybeLocal maybe_options) -> 20 | std::unique_ptr; 21 | auto TransferOut() -> std::unique_ptr final; 22 | 23 | void Release(); 24 | 25 | struct InvokeData { 26 | enum class Apply { Async, Ignored, Sync }; 27 | RemoteHandle callback; 28 | RemoteHandle context; 29 | Apply apply{}; 30 | }; 31 | 32 | struct Data : public InvokeData { 33 | Data() = default; 34 | 35 | template 36 | Data(std::optional name, int length, Args&&... args) : 37 | InvokeData{std::forward(args)...}, 38 | name{std::move(name)}, length{length} {} 39 | 40 | std::optional name; 41 | int length = 0; 42 | }; 43 | 44 | private: 45 | Data data; 46 | }; 47 | 48 | /** 49 | * Internal transferable handle for callback 50 | */ 51 | class CallbackTransferable : public Transferable { 52 | public: 53 | explicit CallbackTransferable(CallbackHandle::Data& data); 54 | explicit CallbackTransferable(v8::Local data); 55 | CallbackTransferable(v8::Local fn, v8::Local context); 56 | 57 | auto TransferIn() -> v8::Local final; 58 | 59 | private: 60 | static void Invoke(const v8::FunctionCallbackInfo& info); 61 | CallbackHandle::Data data; 62 | }; 63 | 64 | } // namespace ivm 65 | -------------------------------------------------------------------------------- /isolate-rsvm/src/module/context_handle.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "isolate/remote_handle.h" 3 | #include "transferable.h" 4 | #include 5 | #include 6 | 7 | #include "rs/rsvm.h" 8 | 9 | namespace ivm { 10 | 11 | class ContextHandle : public TransferableHandle { 12 | public: 13 | ContextHandle(RemoteHandle context, RemoteHandle global); 14 | static auto Definition() -> v8::Local; 15 | auto TransferOut() -> std::unique_ptr final; 16 | 17 | auto GetContext() const -> RemoteHandle; 18 | auto GlobalGetter() -> v8::Local; 19 | auto Release() -> v8::Local; 20 | 21 | template 22 | auto Eval(v8::Local code, v8::MaybeLocal maybe_options) -> v8::Local; 23 | 24 | template 25 | auto EvalClosure( 26 | v8::Local code, 27 | v8::Maybe maybe_arguments, 28 | v8::MaybeLocal maybe_options 29 | ) -> v8::Local; 30 | 31 | private: 32 | RemoteHandle context; 33 | RemoteHandle global; 34 | RemoteHandle global_reference; 35 | }; 36 | 37 | } // namespace ivm 38 | -------------------------------------------------------------------------------- /isolate-rsvm/src/module/external_copy_handle.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "transferable.h" 4 | #include 5 | 6 | namespace ivm { 7 | 8 | class ExternalCopy; 9 | 10 | class ExternalCopyHandle final : public TransferableHandle { 11 | public: 12 | class ExternalCopyTransferable : public Transferable { 13 | private: 14 | std::shared_ptr value; 15 | 16 | public: 17 | explicit ExternalCopyTransferable(std::shared_ptr value); 18 | auto TransferIn() -> v8::Local final; 19 | }; 20 | 21 | std::shared_ptr value; 22 | 23 | void CheckDisposed() const; 24 | 25 | explicit ExternalCopyHandle(std::shared_ptr value); 26 | ExternalCopyHandle(const ExternalCopyHandle&) = delete; 27 | auto operator= (const ExternalCopyHandle&) -> ExternalCopyHandle& = delete; 28 | ~ExternalCopyHandle() final; 29 | static auto Definition() -> v8::Local; 30 | auto TransferOut() -> std::unique_ptr final; 31 | 32 | static auto New(v8::Local value, v8::MaybeLocal maybe_options) -> std::unique_ptr; 33 | static auto TotalExternalSizeGetter() -> v8::Local; 34 | auto Copy(v8::MaybeLocal maybe_options) -> v8::Local; 35 | auto CopyInto(v8::MaybeLocal maybe_options) -> v8::Local; 36 | auto Release() -> v8::Local; 37 | auto GetValue() const -> std::shared_ptr { return value; } 38 | 39 | private: 40 | int size = 0; 41 | }; 42 | 43 | class ExternalCopyIntoHandle : public TransferableHandle { 44 | private: 45 | class ExternalCopyIntoTransferable : public Transferable { 46 | private: 47 | std::shared_ptr value; 48 | bool transfer_in; 49 | 50 | public: 51 | explicit ExternalCopyIntoTransferable(std::shared_ptr value, bool transfer_in); 52 | auto TransferIn() -> v8::Local final; 53 | }; 54 | 55 | std::shared_ptr value; 56 | bool transfer_in; 57 | 58 | public: 59 | explicit ExternalCopyIntoHandle(std::shared_ptr value, bool transfer_in); 60 | static auto Definition() -> v8::Local; 61 | auto TransferOut() -> std::unique_ptr final; 62 | }; 63 | 64 | } // namespace ivm 65 | -------------------------------------------------------------------------------- /isolate-rsvm/src/module/isolate_handle.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "isolate/generic/array.h" 3 | #include "transferable.h" 4 | #include 5 | #include 6 | 7 | namespace ivm { 8 | 9 | /** 10 | * Reference to a v8 isolate 11 | */ 12 | class IsolateHandle : public TransferableHandle { 13 | private: 14 | std::shared_ptr isolate; 15 | 16 | class IsolateHandleTransferable : public Transferable { 17 | private: 18 | std::shared_ptr isolate; 19 | public: 20 | explicit IsolateHandleTransferable(std::shared_ptr isolate); 21 | auto TransferIn() -> v8::Local final; 22 | }; 23 | 24 | public: 25 | explicit IsolateHandle(std::shared_ptr isolate); 26 | static auto Definition() -> v8::Local; 27 | static auto New(v8::MaybeLocal maybe_options) -> std::unique_ptr; 28 | auto TransferOut() -> std::unique_ptr final; 29 | 30 | template auto CreateContext(v8::MaybeLocal maybe_options) -> v8::Local; 31 | template auto CompileScript(v8::Local code_handle, v8::MaybeLocal maybe_options) -> v8::Local; 32 | template auto CompileModule(v8::Local code_handle, v8::MaybeLocal maybe_options) -> v8::Local; 33 | 34 | auto CreateInspectorSession() -> v8::Local; 35 | auto Dispose() -> v8::Local; 36 | template auto GetHeapStatistics() -> v8::Local; 37 | auto GetCpuTime() -> v8::Local; 38 | auto GetWallTime() -> v8::Local; 39 | auto StartCpuProfiler(v8::Local title) -> v8::Local; 40 | template auto StopCpuProfiler(v8::Local title) -> v8::Local; 41 | 42 | auto GetReferenceCount() -> v8::Local; 43 | auto IsDisposedGetter() -> v8::Local; 44 | static auto CreateSnapshot(ArrayRange script_handles, v8::MaybeLocal warmup_handle) -> v8::Local; 45 | }; 46 | 47 | } // namespace ivm 48 | -------------------------------------------------------------------------------- /isolate-rsvm/src/module/lib_handle.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | #include 5 | 6 | #include "transferable.h" 7 | #include "transferable.h" 8 | 9 | namespace ivm { 10 | 11 | class LibHandle : public TransferableHandle { 12 | private: 13 | class LibTransferable : public Transferable { 14 | public: 15 | auto TransferIn() -> v8::Local final; 16 | }; 17 | 18 | auto Hrtime(v8::MaybeLocal maybe_diff) -> v8::Local; 19 | auto PrivateSymbol(v8::MaybeLocal maybe_name) -> v8::Local; 20 | auto TestHang() -> v8::Local; 21 | auto TestOOM() -> v8::Local; 22 | 23 | public: 24 | static auto Definition() -> v8::Local; 25 | auto TransferOut() -> std::unique_ptr final; 26 | }; 27 | 28 | } // namespace ivm 29 | -------------------------------------------------------------------------------- /isolate-rsvm/src/module/native_module_handle.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | #include 6 | 7 | #include "transferable.h" 8 | #include "context_handle.h" 9 | #include "transferable.h" 10 | 11 | namespace ivm { 12 | 13 | class NativeModule { 14 | private: 15 | using init_t = void(*)(v8::Isolate *, v8::Local, v8::Local); 16 | uv_lib_t lib; 17 | init_t init; 18 | 19 | public: 20 | explicit NativeModule(const std::string& filename); 21 | NativeModule(const NativeModule&) = delete; 22 | auto operator= (const NativeModule&) -> NativeModule& = delete; 23 | ~NativeModule(); 24 | void InitForContext(v8::Isolate* isolate, v8::Local context, v8::Local target); 25 | }; 26 | 27 | class NativeModuleHandle : public TransferableHandle { 28 | private: 29 | class NativeModuleTransferable : public Transferable { 30 | private: 31 | std::shared_ptr module; 32 | public: 33 | explicit NativeModuleTransferable(std::shared_ptr module); 34 | auto TransferIn() -> v8::Local final; 35 | }; 36 | 37 | std::shared_ptr module; 38 | 39 | template 40 | auto Create(ContextHandle& context_handle) -> v8::Local; 41 | 42 | public: 43 | explicit NativeModuleHandle(std::shared_ptr module); 44 | static auto Definition() -> v8::Local; 45 | static auto New(v8::Local value) -> std::unique_ptr; 46 | auto TransferOut() -> std::unique_ptr final; 47 | }; 48 | 49 | } // namespace ivm 50 | -------------------------------------------------------------------------------- /isolate-rsvm/src/module/script_handle.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "isolate/remote_handle.h" 3 | #include "transferable.h" 4 | #include "transferable.h" 5 | #include 6 | #include 7 | 8 | namespace ivm { 9 | 10 | class ContextHandle; 11 | 12 | class ScriptHandle : public TransferableHandle { 13 | public: 14 | using DontFreezeInstance = void; 15 | 16 | explicit ScriptHandle(RemoteHandle script); 17 | static auto Definition() -> v8::Local; 18 | 19 | auto TransferOut() -> std::unique_ptr final; 20 | 21 | auto Release() -> v8::Local; 22 | template 23 | auto Run(ContextHandle& context_handle, v8::MaybeLocal maybe_options) -> v8::Local; 24 | 25 | private: 26 | class ScriptHandleTransferable : public Transferable { 27 | public: 28 | explicit ScriptHandleTransferable(RemoteHandle script); 29 | auto TransferIn() -> v8::Local final; 30 | private: 31 | RemoteHandle script; 32 | }; 33 | 34 | RemoteHandle script; 35 | }; 36 | 37 | } // namespace ivm 38 | -------------------------------------------------------------------------------- /isolate-rsvm/src/module/session_handle.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "isolate/class_handle.h" 4 | #include "isolate/inspector.h" 5 | #include 6 | 7 | namespace ivm { 8 | 9 | /** 10 | * This handle is given to the client and encapsulates an inspector session. Non-transferable. 11 | */ 12 | class SessionHandle : public ClassHandle { 13 | private: 14 | std::shared_ptr session; 15 | 16 | public: 17 | using DontFreezePrototype = void; 18 | using DontFreezeInstance = void; 19 | explicit SessionHandle(IsolateEnvironment& isolate); 20 | static auto Definition() -> v8::Local; 21 | 22 | void CheckDisposed(); 23 | auto DispatchProtocolMessage(v8::Local message) -> v8::Local; 24 | auto Dispose() -> v8::Local; 25 | auto OnNotificationGetter() -> v8::Local; 26 | void OnNotificationSetter(v8::Local value); 27 | auto OnResponseGetter() -> v8::Local; 28 | void OnResponseSetter(v8::Local value); 29 | }; 30 | 31 | } // namespace ivm 32 | -------------------------------------------------------------------------------- /isolate-rsvm/src/module/transferable.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "isolate/class_handle.h" 3 | #include "isolate/transferable.h" 4 | #include 5 | #include 6 | 7 | namespace ivm { 8 | 9 | class TransferableHandle : public ClassHandle { 10 | public: 11 | static auto Definition() -> v8::Local { 12 | return MakeClass("Transferable", nullptr); 13 | } 14 | 15 | virtual auto TransferOut() -> std::unique_ptr = 0; 16 | }; 17 | 18 | class TransferOptions { 19 | public: 20 | enum class Type { None, Copy, ExternalCopy, Reference, DeepReference }; 21 | 22 | TransferOptions() = default; 23 | explicit TransferOptions(Type fallback) : fallback{fallback} {}; 24 | explicit TransferOptions(v8::Local options, Type fallback = Type::None); 25 | explicit TransferOptions(v8::MaybeLocal maybe_options, Type fallback = Type::None); 26 | 27 | auto operator==(const TransferOptions& that) const -> bool { 28 | return type == that.type && fallback == that.fallback && promise == that.promise; 29 | } 30 | 31 | Type type = Type::None; 32 | Type fallback = Type::None; 33 | bool promise = false; 34 | 35 | private: 36 | void ParseOptions(v8::Local options); 37 | }; 38 | 39 | auto OptionalTransferOut(v8::Local value, TransferOptions options = {}) -> std::unique_ptr; 40 | auto TransferOut(v8::Local value, TransferOptions options = {}) -> std::unique_ptr; 41 | 42 | } // namespace ivm 43 | -------------------------------------------------------------------------------- /isolate-rsvm/src/rs/interface/event_target.cc: -------------------------------------------------------------------------------- 1 | #include "rs/interface/event_target.h" 2 | #include "rs/rsvm.h" 3 | 4 | using namespace v8; 5 | 6 | namespace rs { 7 | void EventTargetConstructor(const FunctionCallbackInfo& info) { 8 | Isolate* isolate = info.GetIsolate(); 9 | isolate->ThrowException(Exception::TypeError(ExceptionMessages::ConstructorNew())); 10 | } 11 | 12 | Local InterfaceEventTargetTemplate(Isolate* isolate) { 13 | Local eventTarget = FunctionTemplate::New(isolate); 14 | eventTarget->SetCallHandler(EventTargetConstructor); 15 | eventTarget->SetLength(0); 16 | eventTarget->SetClassName(v8_str("EventTarget")); 17 | 18 | Local prototype_template = eventTarget->PrototypeTemplate(); 19 | v8_set_property( 20 | prototype_template, Symbol::GetToStringTag(isolate), v8_str("EventTarget"), 21 | PropertyAttribute::ReadOnly | PropertyAttribute::DontEnum 22 | ); 23 | 24 | return eventTarget; 25 | } 26 | } -------------------------------------------------------------------------------- /isolate-rsvm/src/rs/interface/event_target.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | using namespace v8; 6 | 7 | namespace rs { 8 | Local InterfaceEventTargetTemplate(Isolate* isolate); 9 | } -------------------------------------------------------------------------------- /isolate-rsvm/src/rs/interface/window.h: -------------------------------------------------------------------------------- 1 | #ifndef RS_BROWSER_WINDOW_H_ 2 | #define RS_BROWSER_WINDOW_H_ 3 | 4 | #include 5 | 6 | using namespace v8; 7 | 8 | namespace rs { 9 | Local InterfaceWindowTemplate(Isolate* isolate); 10 | Local CreateRsGlobalTemplate(Isolate* isolate, bool intercept); 11 | } 12 | 13 | #endif // !RS_BROWSER_WINDOW_H_ -------------------------------------------------------------------------------- /isolate-rsvm/src/rs/rsvm.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RuoShui-0014/js-env/fffebd75ae6841eecda3f2db14274394603dc9dc/isolate-rsvm/src/rs/rsvm.cc --------------------------------------------------------------------------------