#mizchi/js/builtins/reflect

    Reflection API with JavaScript's Reflect object.

    #Installation

    Add to your moon.pkg.json:

    { "import": [ "mizchi/js", "mizchi/js/builtins/reflect" ] }

    #Overview

    Provides bindings for JavaScript's Reflect API for intercepting JavaScript operations.

    #Usage Example

    fn main {
    let obj = @core.Object::new()

    // Set property
    @reflect.set(obj, "name", "value")

    // Get property
    let value = @reflect._get(obj, "name")

    // Has property
    let has = @reflect.has(obj, "name") // true

    // Delete property
    @reflect.delete_property(obj, "name")
    }

    #Available Methods

    • get(target, key) - Get property value
    • set(target, key, value) - Set property value
    • has(target, key) - Check if property exists
    • deleteProperty(target, key) - Delete property
    • ownKeys(target) - Get all own property keys

    #Reference

    Reflect

    #external
    pub type Reflect

    JavaScript Reflect API https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect

    Reflect::apply

    JS: Reflect.apply(target, thisArgument, argumentsList) Calls a target function with arguments as specified

    Reflect::construct

    JS: Reflect.construct(target, argumentsList, newTarget?) Acts like the new operator as a function

    Reflect::defineProperty

    fn Reflect::defineProperty(target :
    Any
    , property_key :
    Any
    , attributes :
    Any
    ) -> Bool

    JS: Reflect.defineProperty(target, propertyKey, attributes) Similar to Object.defineProperty but returns a Boolean

    Reflect::deleteProperty

    fn Reflect::deleteProperty(target :
    Any
    , property_key :
    Any
    ) -> Bool

    JS: Reflect.deleteProperty(target, propertyKey) Deletes a property from an object

    Reflect::get

    JS: Reflect.get(target, propertyKey, receiver?) Gets a property value from an object

    Reflect::getOwnPropertyDescriptor

    fn Reflect::getOwnPropertyDescriptor(target :
    Any
    , property_key :
    Any
    ) ->
    Any

    JS: Reflect.getOwnPropertyDescriptor(target, propertyKey) Gets the property descriptor of an own property

    Reflect::getPrototypeOf

    fn Reflect::getPrototypeOf(target :
    Any
    ) ->
    Any

    JS: Reflect.getPrototypeOf(target) Gets the prototype of an object

    Reflect::has

    fn Reflect::has(target :
    Any
    , property_key :
    Any
    ) -> Bool

    JS: Reflect.has(target, propertyKey) Checks if an object has a property

    Reflect::isExtensible

    fn Reflect::isExtensible(target :
    Any
    ) -> Bool

    JS: Reflect.isExtensible(target) Checks if an object is extensible

    Reflect::ownKeys

    JS: Reflect.ownKeys(target)

    Returns an array of the target object's own property keys. Note: The returned array is a snapshot and should be treated as immutable.

    Reflect::preventExtensions

    fn Reflect::preventExtensions(target :
    Any
    ) -> Bool

    JS: Reflect.preventExtensions(target) Prevents new properties from being added to an object

    Reflect::set

    fn Reflect::set(target :
    Any
    , property_key :
    Any
    , value :
    Any
    , receiver :
    Any
    ?) -> Bool

    JS: Reflect.set(target, propertyKey, value, receiver?) Sets a property value on an object

    Reflect::setPrototypeOf

    fn Reflect::setPrototypeOf(target :
    Any
    , prototype :
    Any
    ) -> Bool

    JS: Reflect.setPrototypeOf(target, prototype) Sets the prototype of an object

    Source Files