js_sys

Struct Array

Source
pub struct Array { /* private fields */ }

Implementations§

Source§

impl Array

Source

pub fn new() -> Array

Creates a new empty array.

Source§

impl Array

Source

pub fn new_with_length(len: u32) -> Array

Creates a new array with the specified length (elements are initialized to undefined).

Source§

impl Array

Source

pub fn at(&self, index: i32) -> JsValue

Retrieves the element at the index, counting from the end if negative (returns undefined if the index is out of range).

Source§

impl Array

Source

pub fn get(&self, index: u32) -> JsValue

Retrieves the element at the index (returns undefined if the index is out of range).

Source§

impl Array

Source

pub fn set(&self, index: u32, value: JsValue)

Sets the element at the index (auto-enlarges the array if the index is out of range).

Source§

impl Array

Source

pub fn delete(&self, index: u32)

Deletes the element at the index (does nothing if the index is out of range).

The element at the index is set to undefined.

This does not resize the array, the array will still be the same length.

Source§

impl Array

Source

pub fn from(val: &JsValue) -> Array

The Array.from() method creates a new, shallow-copied Array instance from an array-like or iterable object.

Source§

impl Array

Source

pub fn copy_within(&self, target: i32, start: i32, end: i32) -> Array

The copyWithin() method shallow copies part of an array to another location in the same array and returns it, without modifying its size.

MDN documentation

Source§

impl Array

Source

pub fn concat(&self, array: &Array) -> Array

The concat() method is used to merge two or more arrays. This method does not change the existing arrays, but instead returns a new array.

MDN documentation

Source§

impl Array

Source

pub fn every( &self, predicate: &mut dyn FnMut(JsValue, u32, Array) -> bool, ) -> bool

The every() method tests whether all elements in the array pass the test implemented by the provided function.

MDN documentation

Source§

impl Array

Source

pub fn fill(&self, value: &JsValue, start: u32, end: u32) -> Array

The fill() method fills all the elements of an array from a start index to an end index with a static value. The end index is not included.

MDN documentation

Source§

impl Array

Source

pub fn filter( &self, predicate: &mut dyn FnMut(JsValue, u32, Array) -> bool, ) -> Array

The filter() method creates a new array with all elements that pass the test implemented by the provided function.

MDN documentation

Source§

impl Array

Source

pub fn find( &self, predicate: &mut dyn FnMut(JsValue, u32, Array) -> bool, ) -> JsValue

The find() method returns the value of the first element in the array that satisfies the provided testing function. Otherwise undefined is returned.

MDN documentation

Source§

impl Array

Source

pub fn find_index( &self, predicate: &mut dyn FnMut(JsValue, u32, Array) -> bool, ) -> i32

The findIndex() method returns the index of the first element in the array that satisfies the provided testing function. Otherwise -1 is returned.

MDN documentation

Source§

impl Array

Source

pub fn find_last( &self, predicate: &mut dyn FnMut(JsValue, u32, Array) -> bool, ) -> JsValue

The findLast() method of Array instances iterates the array in reverse order and returns the value of the first element that satisfies the provided testing function. If no elements satisfy the testing function, undefined is returned.

MDN documentation

Source§

impl Array

Source

pub fn find_last_index( &self, predicate: &mut dyn FnMut(JsValue, u32, Array) -> bool, ) -> i32

The findLastIndex() method of Array instances iterates the array in reverse order and returns the index of the first element that satisfies the provided testing function. If no elements satisfy the testing function, -1 is returned.

MDN documentation

Source§

impl Array

Source

pub fn flat(&self, depth: i32) -> Array

The flat() method creates a new array with all sub-array elements concatenated into it recursively up to the specified depth.

MDN documentation

Source§

impl Array

Source

pub fn flat_map( &self, callback: &mut dyn FnMut(JsValue, u32, Array) -> Vec<JsValue>, ) -> Array

The flatMap() method first maps each element using a mapping function, then flattens the result into a new array.

MDN documentation

Source§

impl Array

Source

pub fn for_each(&self, callback: &mut dyn FnMut(JsValue, u32, Array))

The forEach() method executes a provided function once for each array element.

MDN documentation

Source§

impl Array

Source

pub fn includes(&self, value: &JsValue, from_index: i32) -> bool

The includes() method determines whether an array includes a certain element, returning true or false as appropriate.

MDN documentation

Source§

impl Array

Source

pub fn index_of(&self, value: &JsValue, from_index: i32) -> i32

The indexOf() method returns the first index at which a given element can be found in the array, or -1 if it is not present.

MDN documentation

Source§

impl Array

Source

pub fn is_array(value: &JsValue) -> bool

The Array.isArray() method determines whether the passed value is an Array.

MDN documentation

Source§

impl Array

Source

pub fn join(&self, delimiter: &str) -> JsString

The join() method joins all elements of an array (or an array-like object) into a string and returns this string.

MDN documentation

Source§

impl Array

Source

pub fn last_index_of(&self, value: &JsValue, from_index: i32) -> i32

The lastIndexOf() method returns the last index at which a given element can be found in the array, or -1 if it is not present. The array is searched backwards, starting at fromIndex.

MDN documentation

Source§

impl Array

Source

pub fn length(&self) -> u32

The length property of an object which is an instance of type Array sets or returns the number of elements in that array. The value is an unsigned, 32-bit integer that is always numerically greater than the highest index in the array.

MDN documentation

Source§

impl Array

Source

pub fn set_length(&self, value: u32)

Sets the length of the array.

If it is set to less than the current length of the array, it will shrink the array.

If it is set to more than the current length of the array, it will increase the length of the array, filling the new space with empty slots.

MDN documentation

Source§

impl Array

Source

pub fn map( &self, predicate: &mut dyn FnMut(JsValue, u32, Array) -> JsValue, ) -> Array

map() calls a provided callback function once for each element in an array, in order, and constructs a new array from the results. callback is invoked only for indexes of the array which have assigned values, including undefined. It is not called for missing elements of the array (that is, indexes that have never been set, which have been deleted or which have never been assigned a value).

MDN documentation

Source§

impl Array

Source

pub fn of1(a: &JsValue) -> Array

The Array.of() method creates a new Array instance with a variable number of arguments, regardless of number or type of the arguments.

The difference between Array.of() and the Array constructor is in the handling of integer arguments: Array.of(7) creates an array with a single element, 7, whereas Array(7) creates an empty array with a length property of 7 (Note: this implies an array of 7 empty slots, not slots with actual undefined values).

MDN documentation

§Notes

There are a few bindings to of in js-sys: of1, of2, etc… with different arities.

Source§

impl Array

Source§

impl Array

Source§

impl Array

Source§

impl Array

Source

pub fn of5( a: &JsValue, b: &JsValue, c: &JsValue, d: &JsValue, e: &JsValue, ) -> Array

Source§

impl Array

Source

pub fn pop(&self) -> JsValue

The pop() method removes the last element from an array and returns that element. This method changes the length of the array.

MDN documentation

Source§

impl Array

Source

pub fn push(&self, value: &JsValue) -> u32

The push() method adds one or more elements to the end of an array and returns the new length of the array.

MDN documentation

Source§

impl Array

Source

pub fn reduce( &self, predicate: &mut dyn FnMut(JsValue, JsValue, u32, Array) -> JsValue, initial_value: &JsValue, ) -> JsValue

The reduce() method applies a function against an accumulator and each element in the array (from left to right) to reduce it to a single value.

MDN documentation

Source§

impl Array

Source

pub fn reduce_right( &self, predicate: &mut dyn FnMut(JsValue, JsValue, u32, Array) -> JsValue, initial_value: &JsValue, ) -> JsValue

The reduceRight() method applies a function against an accumulator and each value of the array (from right-to-left) to reduce it to a single value.

MDN documentation

Source§

impl Array

Source

pub fn reverse(&self) -> Array

The reverse() method reverses an array in place. The first array element becomes the last, and the last array element becomes the first.

MDN documentation

Source§

impl Array

Source

pub fn shift(&self) -> JsValue

The shift() method removes the first element from an array and returns that removed element. This method changes the length of the array.

MDN documentation

Source§

impl Array

Source

pub fn slice(&self, start: u32, end: u32) -> Array

The slice() method returns a shallow copy of a portion of an array into a new array object selected from begin to end (end not included). The original array will not be modified.

MDN documentation

Source§

impl Array

Source

pub fn some(&self, predicate: &mut dyn FnMut(JsValue) -> bool) -> bool

The some() method tests whether at least one element in the array passes the test implemented by the provided function. Note: This method returns false for any condition put on an empty array. MDN documentation

Source§

impl Array

Source

pub fn sort(&self) -> Array

The sort() method sorts the elements of an array in place and returns the array. The sort is not necessarily stable. The default sort order is according to string Unicode code points.

The time and space complexity of the sort cannot be guaranteed as it is implementation dependent.

MDN documentation

Source§

impl Array

Source

pub fn splice(&self, start: u32, delete_count: u32, item: &JsValue) -> Array

The splice() method changes the contents of an array by removing existing elements and/or adding new elements.

MDN documentation

Source§

impl Array

Source

pub fn to_locale_string(&self, locales: &JsValue, options: &JsValue) -> JsString

The toLocaleString() method returns a string representing the elements of the array. The elements are converted to Strings using their toLocaleString methods and these Strings are separated by a locale-specific String (such as a comma “,”).

MDN documentation

Source§

impl Array

Source

pub fn to_string(&self) -> JsString

The toString() method returns a string representing the specified array and its elements.

MDN documentation

Source§

impl Array

Source

pub fn unshift(&self, value: &JsValue) -> u32

The unshift() method adds one or more elements to the beginning of an array and returns the new length of the array.

MDN documentation

Source§

impl Array

Source

pub fn iter(&self) -> ArrayIter<'_>

Returns an iterator over the values of the JS array.

Source

pub fn to_vec(&self) -> Vec<JsValue>

Converts the JS array into a new Vec.

Source§

impl Array

Source

pub fn keys(&self) -> Iterator

The keys() method returns a new Array Iterator object that contains the keys for each index in the array.

MDN documentation

Source§

impl Array

Source

pub fn entries(&self) -> Iterator

The entries() method returns a new Array Iterator object that contains the key/value pairs for each index in the array.

MDN documentation

Source§

impl Array

Source

pub fn values(&self) -> Iterator

The values() method returns a new Array Iterator object that contains the values for each index in the array.

MDN documentation

Methods from Deref<Target = Object>§

Source

pub fn constructor(&self) -> Function

The constructor property returns a reference to the Object constructor function that created the instance object.

MDN documentation

Source

pub fn has_own_property(&self, property: &JsValue) -> bool

The hasOwnProperty() method returns a boolean indicating whether the object has the specified property as its own property (as opposed to inheriting it).

MDN documentation

Source

pub fn is_prototype_of(&self, value: &JsValue) -> bool

The isPrototypeOf() method checks if an object exists in another object’s prototype chain.

MDN documentation

Source

pub fn property_is_enumerable(&self, property: &JsValue) -> bool

The propertyIsEnumerable() method returns a Boolean indicating whether the specified property is enumerable.

MDN documentation

Source

pub fn to_locale_string(&self) -> JsString

The toLocaleString() method returns a string representing the object. This method is meant to be overridden by derived objects for locale-specific purposes.

MDN documentation

Source

pub fn to_string(&self) -> JsString

The toString() method returns a string representing the object.

MDN documentation

Source

pub fn value_of(&self) -> Object

The valueOf() method returns the primitive value of the specified object.

MDN documentation

Methods from Deref<Target = JsValue>§

Source

pub const NULL: JsValue = _

Source

pub const UNDEFINED: JsValue = _

Source

pub const TRUE: JsValue = _

Source

pub const FALSE: JsValue = _

Source

pub fn as_f64(&self) -> Option<f64>

Returns the f64 value of this JS value if it’s an instance of a number.

If this JS value is not an instance of a number then this returns None.

Source

pub fn is_string(&self) -> bool

Tests whether this JS value is a JS string.

Source

pub fn as_string(&self) -> Option<String>

If this JS value is a string value, this function copies the JS string value into Wasm linear memory, encoded as UTF-8, and returns it as a Rust String.

To avoid the copying and re-encoding, consider the JsString::try_from() function from js-sys instead.

If this JS value is not an instance of a string or if it’s not valid utf-8 then this returns None.

§UTF-16 vs UTF-8

JavaScript strings in general are encoded as UTF-16, but Rust strings are encoded as UTF-8. This can cause the Rust string to look a bit different than the JS string sometimes. For more details see the documentation about the str type which contains a few caveats about the encodings.

Source

pub fn as_bool(&self) -> Option<bool>

Returns the bool value of this JS value if it’s an instance of a boolean.

If this JS value is not an instance of a boolean then this returns None.

Source

pub fn is_null(&self) -> bool

Tests whether this JS value is null

Source

pub fn is_undefined(&self) -> bool

Tests whether this JS value is undefined

Source

pub fn is_symbol(&self) -> bool

Tests whether the type of this JS value is symbol

Source

pub fn is_object(&self) -> bool

Tests whether typeof self == "object" && self !== null.

Source

pub fn is_array(&self) -> bool

Tests whether this JS value is an instance of Array.

Source

pub fn is_function(&self) -> bool

Tests whether the type of this JS value is function.

Source

pub fn is_bigint(&self) -> bool

Tests whether the type of this JS value is bigint.

Source

pub fn js_typeof(&self) -> JsValue

Applies the unary typeof JS operator on a JsValue.

MDN documentation

Source

pub fn js_in(&self, obj: &JsValue) -> bool

Applies the binary in JS operator on the two JsValues.

MDN documentation

Source

pub fn is_truthy(&self) -> bool

Tests whether the value is “truthy”.

Source

pub fn is_falsy(&self) -> bool

Tests whether the value is “falsy”.

Source

pub fn loose_eq(&self, other: &JsValue) -> bool

Compare two JsValues for equality, using the == operator in JS.

MDN documentation

Source

pub fn bit_not(&self) -> JsValue

Applies the unary ~ JS operator on a JsValue.

MDN documentation

Source

pub fn unsigned_shr(&self, rhs: &JsValue) -> u32

Applies the binary >>> JS operator on the two JsValues.

MDN documentation

Source

pub fn checked_div(&self, rhs: &JsValue) -> JsValue

Applies the binary / JS operator on two JsValues, catching and returning any RangeError thrown.

MDN documentation

Source

pub fn pow(&self, rhs: &JsValue) -> JsValue

Applies the binary ** JS operator on the two JsValues.

MDN documentation

Source

pub fn lt(&self, other: &JsValue) -> bool

Applies the binary < JS operator on the two JsValues.

MDN documentation

Source

pub fn le(&self, other: &JsValue) -> bool

Applies the binary <= JS operator on the two JsValues.

MDN documentation

Source

pub fn ge(&self, other: &JsValue) -> bool

Applies the binary >= JS operator on the two JsValues.

MDN documentation

Source

pub fn gt(&self, other: &JsValue) -> bool

Applies the binary > JS operator on the two JsValues.

MDN documentation

Source

pub fn unchecked_into_f64(&self) -> f64

Applies the unary + JS operator on a JsValue. Can throw.

MDN documentation

Trait Implementations§

Source§

impl AsRef<Array> for Array

Source§

fn as_ref(&self) -> &Array

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<JsValue> for Array

Source§

fn as_ref(&self) -> &JsValue

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<Object> for Array

Source§

fn as_ref(&self) -> &Object

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Clone for Array

Source§

fn clone(&self) -> Array

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Array

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Array

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Deref for Array

Source§

type Target = Object

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Object

Dereferences the value.
Source§

impl<A> Extend<A> for Array
where A: AsRef<JsValue>,

Source§

fn extend<T>(&mut self, iter: T)
where T: IntoIterator<Item = A>,

Extends a collection with the contents of an iterator. Read more
Source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
Source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
Source§

impl From<Array> for JsValue

Source§

fn from(obj: Array) -> JsValue

Converts to this type from the input type.
Source§

impl From<Array> for Object

Source§

fn from(obj: Array) -> Object

Converts to this type from the input type.
Source§

impl From<JsValue> for Array

Source§

fn from(obj: JsValue) -> Array

Converts to this type from the input type.
Source§

impl<A> FromIterator<A> for Array
where A: AsRef<JsValue>,

Source§

fn from_iter<T>(iter: T) -> Array
where T: IntoIterator<Item = A>,

Creates a value from an iterator. Read more
Source§

impl FromWasmAbi for Array

Source§

type Abi = <JsValue as FromWasmAbi>::Abi

The Wasm ABI type that this converts from when coming back out from the ABI boundary.
Source§

unsafe fn from_abi(js: Self::Abi) -> Self

Recover a Self from Self::Abi. Read more
Source§

impl IntoIterator for Array

Source§

type Item = JsValue

The type of the elements being iterated over.
Source§

type IntoIter = ArrayIntoIter

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl<'a> IntoWasmAbi for &'a Array

Source§

type Abi = <&'a JsValue as IntoWasmAbi>::Abi

The Wasm ABI type that this converts into when crossing the ABI boundary.
Source§

fn into_abi(self) -> Self::Abi

Convert self into Self::Abi so that it can be sent across the wasm ABI boundary.
Source§

impl IntoWasmAbi for Array

Source§

type Abi = <JsValue as IntoWasmAbi>::Abi

The Wasm ABI type that this converts into when crossing the ABI boundary.
Source§

fn into_abi(self) -> Self::Abi

Convert self into Self::Abi so that it can be sent across the wasm ABI boundary.
Source§

impl JsCast for Array

Source§

fn instanceof(val: &JsValue) -> bool

Performs a dynamic instanceof check to see whether the JsValue provided is an instance of this type. Read more
Source§

fn is_type_of(val: &JsValue) -> bool

Performs a dynamic check to see whether the JsValue provided is a value of this type. Read more
Source§

fn unchecked_from_js(val: JsValue) -> Self

Performs a zero-cost unchecked conversion from a JsValue into an instance of Self Read more
Source§

fn unchecked_from_js_ref(val: &JsValue) -> &Self

Performs a zero-cost unchecked conversion from a &JsValue into an instance of &Self. Read more
Source§

fn has_type<T>(&self) -> bool
where T: JsCast,

Test whether this JS value has a type T. Read more
Source§

fn dyn_into<T>(self) -> Result<T, Self>
where T: JsCast,

Performs a dynamic cast (checked at runtime) of this value into the target type T. Read more
Source§

fn dyn_ref<T>(&self) -> Option<&T>
where T: JsCast,

Performs a dynamic cast (checked at runtime) of this value into the target type T. Read more
Source§

fn unchecked_into<T>(self) -> T
where T: JsCast,

Performs a zero-cost unchecked cast into the specified type. Read more
Source§

fn unchecked_ref<T>(&self) -> &T
where T: JsCast,

Performs a zero-cost unchecked cast into a reference to the specified type. Read more
Source§

fn is_instance_of<T>(&self) -> bool
where T: JsCast,

Test whether this JS value is an instance of the type T. Read more
Source§

impl LongRefFromWasmAbi for Array

Source§

type Abi = <JsValue as LongRefFromWasmAbi>::Abi

Same as RefFromWasmAbi::Abi
Source§

type Anchor = Array

Same as RefFromWasmAbi::Anchor
Source§

unsafe fn long_ref_from_abi(js: Self::Abi) -> Self::Anchor

Same as RefFromWasmAbi::ref_from_abi
Source§

impl OptionFromWasmAbi for Array

Source§

fn is_none(abi: &Self::Abi) -> bool

Tests whether the argument is a “none” instance. If so it will be deserialized as None, and otherwise it will be passed to FromWasmAbi.
Source§

impl<'a> OptionIntoWasmAbi for &'a Array

Source§

fn none() -> Self::Abi

Returns an ABI instance indicating “none”, which JS will interpret as the None branch of this option. Read more
Source§

impl OptionIntoWasmAbi for Array

Source§

fn none() -> Self::Abi

Returns an ABI instance indicating “none”, which JS will interpret as the None branch of this option. Read more
Source§

impl PartialEq for Array

Source§

fn eq(&self, other: &Array) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RefFromWasmAbi for Array

Source§

type Abi = <JsValue as RefFromWasmAbi>::Abi

The Wasm ABI type references to Self are recovered from.
Source§

type Anchor = ManuallyDrop<Array>

The type that holds the reference to Self for the duration of the invocation of the function that has an &Self parameter. This is required to ensure that the lifetimes don’t persist beyond one function call, and so that they remain anonymous.
Source§

unsafe fn ref_from_abi(js: Self::Abi) -> Self::Anchor

Recover a Self::Anchor from Self::Abi. Read more
Source§

impl WasmDescribe for Array

Source§

impl Eq for Array

Source§

impl StructuralPartialEq for Array

Auto Trait Implementations§

§

impl Freeze for Array

§

impl RefUnwindSafe for Array

§

impl !Send for Array

§

impl !Sync for Array

§

impl Unpin for Array

§

impl UnwindSafe for Array

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ReturnWasmAbi for T
where T: IntoWasmAbi,

Source§

type Abi = <T as IntoWasmAbi>::Abi

Same as IntoWasmAbi::Abi
Source§

fn return_abi(self) -> <T as ReturnWasmAbi>::Abi

Same as IntoWasmAbi::into_abi, except that it may throw and never return in the case of Err.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> VectorFromWasmAbi for T
where T: JsObject,

Source§

impl<T> VectorIntoWasmAbi for T
where T: JsObject,