All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jsMain.js.core.Proxy.kt Maven / Gradle / Ivy

package js.core

external interface ProxyHandler {
    interface PropertyName /* string | symbol */

    var apply: ((target: T, thisArg: Any, argArray: ReadonlyArray) -> Any)?
    var construct: ((target: T, argArray: ReadonlyArray, newTarget: Function<*>) -> Any)?
    var defineProperty: ((target: T, p: PropertyName, attributes: PropertyDescriptor<*>) -> Boolean)?
    var deleteProperty: ((target: T, p: PropertyName) -> Boolean)?
    var get: ((target: T, p: PropertyName, receiver: Any) -> Any)?
    var getOwnPropertyDescriptor: ((target: T, p: PropertyName) -> PropertyDescriptor<*>)?
    var getPrototypeOf: ((target: T) -> Any?)?
    var has: ((target: T, p: PropertyName) -> Boolean)?
    var isExtensible: ((target: T) -> Boolean)?
    var ownKeys: ((target: T) -> ReadonlyArray)?
    var preventExtensions: ((target: T) -> Boolean)?
    var set: ((target: T, p: PropertyName, value: Any, receiver: Any) -> Boolean)?
    var setPrototypeOf: ((target: T, v: Any?) -> Boolean)?
}

external class Proxy(
    target: T,
    handler: ProxyHandler,
) {
    interface Revocable {
        val proxy: T
        fun revoke()
    }

    companion object {
        fun  revocable(
            target: T,
            handler: ProxyHandler,
        ): Revocable
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy