Add ArrayBuffer detach operations (#3208)
JerryScript-DCO-1.0-Signed-off-by: legendecas legendecas@gmail.com
This commit is contained in:
committed by
Dániel Bátyai
parent
09c5d98e25
commit
2e86bdae6f
@@ -7397,6 +7397,85 @@ jerry_get_arraybuffer_pointer (const jerry_value_t value);
|
||||
|
||||
- [jerry_create_arraybuffer_external](#jerry_create_arraybuffer_external)
|
||||
|
||||
## jerry_is_arraybuffer_detachable
|
||||
|
||||
**Summary**
|
||||
|
||||
Get if the ArrayBuffer is detachable.
|
||||
|
||||
**Prototype**
|
||||
|
||||
```c
|
||||
jerry_value_t
|
||||
jerry_is_arraybuffer_detachable (const jerry_value_t value);
|
||||
```
|
||||
|
||||
- `value` - ArrayBuffer to be detached
|
||||
- return
|
||||
- boolean value if success
|
||||
- Error otherwise
|
||||
|
||||
**Example**
|
||||
|
||||
```c
|
||||
{
|
||||
// create the ArrayBuffer
|
||||
jerry_value_t buffer = jerry_create_arraybuffer (16);
|
||||
|
||||
jerry_value_t res = jerry_is_arraybuffer_detachable (buffer);
|
||||
bool is_detachable = jerry_get_boolean_value (res);
|
||||
|
||||
// release buffer as it is not needed after this point
|
||||
jerry_release_value (res);
|
||||
jerry_release_value (buffer);
|
||||
}
|
||||
```
|
||||
|
||||
**See also**
|
||||
|
||||
- [jerry_detach_arraybuffer](#jerry_detach_arraybuffer)
|
||||
|
||||
## jerry_detach_arraybuffer
|
||||
|
||||
**Summary**
|
||||
|
||||
Detach the underlying data block from ArrayBuffer and set its bytelength to 0.
|
||||
|
||||
This operation requires the ArrayBuffer to be external that created by
|
||||
`jerry_create_arraybuffer_external`.
|
||||
|
||||
**Prototype**
|
||||
|
||||
```c
|
||||
jerry_value_t
|
||||
jerry_detach_arraybuffer (const jerry_value_t value);
|
||||
```
|
||||
|
||||
- `value` - ArrayBuffer to be detached
|
||||
- return
|
||||
- null value if success
|
||||
- Error otherwise
|
||||
|
||||
**Example**
|
||||
|
||||
```c
|
||||
{
|
||||
uint8_t buf[1];
|
||||
jerry_size_t length = 1;
|
||||
// create the ArrayBuffer
|
||||
jerry_value_t buffer = jerry_create_arraybuffer (length, buf, NULL);
|
||||
|
||||
jerry_value_t res = jerry_detach_arraybuffer (buffer);
|
||||
|
||||
// release buffer as it is not needed after this point
|
||||
jerry_release_value (res);
|
||||
jerry_release_value (buffer);
|
||||
}
|
||||
```
|
||||
|
||||
**See also**
|
||||
|
||||
- [jerry_is_arraybuffer_detachable](#jerry_is_arraybuffer_detachable)
|
||||
|
||||
## jerry_get_dataview_buffer
|
||||
|
||||
|
||||
Reference in New Issue
Block a user