@@ -115,7 +115,7 @@ export function napi_get_typedarray_info (
115115 if ( ! ( ArrayBuffer . isView ( jsValue ) ) && ! ( jsValue instanceof DataView ) ) {
116116 return envObject . setLastError ( napi_status . napi_invalid_arg )
117117 }
118- const v : ArrayBufferView = jsValue
118+ let v : ArrayBufferView = jsValue
119119 if ( type ) {
120120 from64 ( 'type' )
121121 let t : napi_typedarray_type
@@ -148,13 +148,13 @@ export function napi_get_typedarray_info (
148148 }
149149 makeSetValue ( 'type' , 0 , 't' , 'i32' )
150150 }
151+ v = emnapiExternalMemory . getOrUpdateMemoryView ( v )
151152 if ( length ) {
152153 from64 ( 'length' )
153154 makeSetValue ( 'length' , 0 , 'v.length' , SIZE_TYPE )
154155 }
155- let buffer : ArrayBufferLike
156+
156157 if ( data || arraybuffer ) {
157- buffer = v . buffer
158158 if ( data ) {
159159 from64 ( 'data' )
160160
@@ -164,7 +164,7 @@ export function napi_get_typedarray_info (
164164 if ( arraybuffer ) {
165165 from64 ( 'arraybuffer' )
166166
167- const ab = emnapiCtx . napiValueFromJsValue ( buffer )
167+ const ab = emnapiCtx . napiValueFromJsValue ( v . buffer )
168168 makeSetValue ( 'arraybuffer' , 0 , 'ab' , '*' )
169169 }
170170 }
@@ -213,14 +213,13 @@ export function napi_get_dataview_info (
213213 if ( ! ( jsValue instanceof DataView ) ) {
214214 return envObject . setLastError ( napi_status . napi_invalid_arg )
215215 }
216- const v = jsValue as DataView
216+ const v = emnapiExternalMemory . getOrUpdateMemoryView ( jsValue as DataView )
217217 if ( byte_length ) {
218218 from64 ( 'byte_length' )
219219 makeSetValue ( 'byte_length' , 0 , 'v.byteLength' , SIZE_TYPE )
220220 }
221- let buffer : ArrayBufferLike
221+
222222 if ( data || arraybuffer ) {
223- buffer = v . buffer
224223 if ( data ) {
225224 from64 ( 'data' )
226225
@@ -230,7 +229,7 @@ export function napi_get_dataview_info (
230229 if ( arraybuffer ) {
231230 from64 ( 'arraybuffer' )
232231
233- const ab = emnapiCtx . napiValueFromJsValue ( buffer )
232+ const ab = emnapiCtx . napiValueFromJsValue ( v . buffer )
234233 makeSetValue ( 'arraybuffer' , 0 , 'ab' , '*' )
235234 }
236235 }
0 commit comments