MCPcopy Create free account
hub / github.com/awslabs/llrt / from_js

Method from_js

modules/llrt_buffer/src/array_buffer_view.rs:34–124  ·  view source on GitHub ↗
(_ctx: &Ctx<'js>, value: Value<'js>)

Source from the content-addressed store, hash-verified

32
33impl<'js> FromJs<'js> for ArrayBufferView<'js> {
34 fn from_js(_ctx: &Ctx<'js>, value: Value<'js>) -> Result<Self> {
35 let ty_name = value.type_name();
36 let obj = Object::from_value(value.clone())
37 .map_err(|_| Error::new_from_js(ty_name, "ArrayBufferView"))?;
38
39 if let Some(array_buffer) = ArrayBuffer::from_object(obj.clone()) {
40 let buffer = array_buffer
41 .as_raw()
42 .map(|raw| RawArrayBuffer::new(raw.len, raw.ptr));
43 return Ok(ArrayBufferView { value, buffer });
44 }
45
46 if let Ok(typed_array) = TypedArray::<i8>::from_object(obj.clone()) {
47 let buffer = typed_array
48 .as_raw()
49 .map(|raw| RawArrayBuffer::new(raw.len, raw.ptr));
50 return Ok(ArrayBufferView { value, buffer });
51 }
52
53 if let Ok(typed_array) = TypedArray::<u8>::from_object(obj.clone()) {
54 let buffer = typed_array
55 .as_raw()
56 .map(|raw| RawArrayBuffer::new(raw.len, raw.ptr));
57 return Ok(ArrayBufferView { value, buffer });
58 }
59
60 if let Ok(typed_array) = TypedArray::<i16>::from_object(obj.clone()) {
61 let buffer = typed_array
62 .as_raw()
63 .map(|raw| RawArrayBuffer::new(raw.len, raw.ptr));
64 return Ok(ArrayBufferView { value, buffer });
65 }
66
67 if let Ok(typed_array) = TypedArray::<u16>::from_object(obj.clone()) {
68 let buffer = typed_array
69 .as_raw()
70 .map(|raw| RawArrayBuffer::new(raw.len, raw.ptr));
71 return Ok(ArrayBufferView { value, buffer });
72 }
73
74 if let Ok(typed_array) = TypedArray::<i32>::from_object(obj.clone()) {
75 let buffer = typed_array
76 .as_raw()
77 .map(|raw| RawArrayBuffer::new(raw.len, raw.ptr));
78 return Ok(ArrayBufferView { value, buffer });
79 }
80
81 if let Ok(typed_array) = TypedArray::<u32>::from_object(obj.clone()) {
82 let buffer = typed_array
83 .as_raw()
84 .map(|raw| RawArrayBuffer::new(raw.len, raw.ptr));
85 return Ok(ArrayBufferView { value, buffer });
86 }
87
88 if let Ok(typed_array) = TypedArray::<f32>::from_object(obj.clone()) {
89 let buffer = typed_array
90 .as_raw()
91 .map(|raw| RawArrayBuffer::new(raw.len, raw.ptr));

Callers

nothing calls this directly

Calls 1

cloneMethod · 0.45

Tested by

no test coverage detected