README

#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