@@ -993,6 +993,44 @@ jerry_value_is_array (const jerry_value_t value)
993
993
994
994
- [jerry_release_value](#jerry_release_value)
995
995
996
+ ## jerry_value_is_arraybuffer
997
+
998
+ **Summary**
999
+
1000
+ Returns whether the given `jerry_value_t` is an ArrayBuffer object.
1001
+
1002
+ **Prototype**
1003
+
1004
+ ```c
1005
+ bool
1006
+ jerry_value_is_arraybuffer (const jerry_value_t value)
1007
+ ```
1008
+
1009
+ - `value` - api value
1010
+ - return value
1011
+ - true, if the given `jerry_value_t` is an ArrayBuffer object.
1012
+ - false, otherwise
1013
+
1014
+ **Example**
1015
+
1016
+ ```c
1017
+ {
1018
+ jerry_value_t value;
1019
+ ... // create or acquire value
1020
+
1021
+ if (jerry_value_is_arraybuffer (value))
1022
+ {
1023
+ ...
1024
+ }
1025
+
1026
+ jerry_release_value (value);
1027
+ }
1028
+ ```
1029
+
1030
+ **See also**
1031
+
1032
+ - [jerry_create_arraybuffer](#jerry_create_arraybuffer)
1033
+
996
1034
997
1035
## jerry_value_is_boolean
998
1036
@@ -2391,6 +2429,42 @@ jerry_create_array (uint32_t size);
2391
2429
- [jerry_get_property_by_index](#jerry_get_property_by_index)
2392
2430
2393
2431
2432
+ ## jerry_create_arraybuffer
2433
+
2434
+ **Summary**
2435
+
2436
+ Create a jerry_value_t representing an ArrayBuffer object.
2437
+
2438
+ **Prototype**
2439
+
2440
+ ```c
2441
+ jerry_value_t
2442
+ jerry_create_arraybuffer (jerry_length_t size);
2443
+ ```
2444
+
2445
+ - `size` - size of the ArrayBuffer to create
2446
+ - return value - the new ArrayBuffer as a `jerry_value_t`
2447
+
2448
+ **Example**
2449
+
2450
+ ```c
2451
+ {
2452
+ jerry_value_t buffer_value = jerry_create_arraybuffer (15);
2453
+
2454
+ ... // use the ArrayBuffer
2455
+
2456
+ jerry_release_value (buffer_value);
2457
+ }
2458
+ ```
2459
+
2460
+ **See also**
2461
+
2462
+ - [jerry_arraybuffer_read](#jerry_arraybuffer_read)
2463
+ - [jerry_arraybuffer_write](#jerry_arraybuffer_write)
2464
+ - [jerry_value_is_arraybuffer](#jerry_value_is_arraybuffer)
2465
+ - [jerry_release_value](#jerry_release_value)
2466
+
2467
+
2394
2468
## jerry_create_boolean
2395
2469
2396
2470
**Summary**
@@ -4679,3 +4753,171 @@ main (void)
4679
4753
- [jerry_parse](#jerry_parse)
4680
4754
- [jerry_run](#jerry_run)
4681
4755
- [jerry_vm_exec_stop_callback_t](#jerry_vm_exec_stop_callback_t)
4756
+
4757
+
4758
+ # ArrayBuffer and TypedArray functions
4759
+
4760
+ ## jerry_get_arraybuffer_byte_length
4761
+
4762
+ **Summary**
4763
+
4764
+ Get the byte length property of the ArrayBuffer. This is the
4765
+ same value which was passed to the ArrayBuffer constructor call.
4766
+
4767
+ **Prototype**
4768
+
4769
+ ```c
4770
+ jerry_length_t
4771
+ jerry_get_arraybuffer_byte_length (const jerry_value_t value);
4772
+ ```
4773
+
4774
+ - `value` - ArrayBuffer object
4775
+ - return value
4776
+ - size of the ArrayBuffer in bytes
4777
+ - 0 if the `value` parameter is not an ArrayBuffer
4778
+
4779
+ **Example**
4780
+
4781
+ ```c
4782
+ {
4783
+ jerry_value_t buffer = jerry_create_arraybuffer (15);
4784
+ jerry_length_t length = jerry_get_arraybuffer_byte_length (buffer);
4785
+ // length should be 15
4786
+
4787
+ jerry_release_value (buffer);
4788
+ }
4789
+ ```
4790
+
4791
+ **See also**
4792
+ - [jerry_create_arraybuffer](#jerry_create_arraybuffer)
4793
+
4794
+
4795
+ ## jerry_arraybuffer_read
4796
+
4797
+ **Summary**
4798
+
4799
+ Copy the portion of the ArrayBuffer into a user provided buffer.
4800
+ The start offset of the read operation can be specified.
4801
+
4802
+ The number bytes to be read can be specified via the `buf_size`
4803
+ parameter. It is not possible to read more than the length of
4804
+ the ArrayBuffer.
4805
+
4806
+ Function returns the number of bytes read from the ArrayBuffer
4807
+ (and written to the buffer parameter). This value is
4808
+ calculated in the following way: `min(array buffer length - offset, buf_size)`.
4809
+
4810
+ **Prototype**
4811
+
4812
+ ```c
4813
+ jerry_length_t
4814
+ jerry_arraybuffer_read (const jerry_value_t value,
4815
+ jerry_length_t offset,
4816
+ uint8_t *buf_p,
4817
+ jerry_length_t buf_size);
4818
+ ```
4819
+
4820
+ - `value` - ArrayBuffer to read from
4821
+ - `offset` - start offset of the read operation
4822
+ - `buf_p` - buffer to read the data to
4823
+ - `buf_size` - maximum number of bytes to read into the buffer
4824
+ - return value
4825
+ - number of bytes written into the buffer (read from the ArrayBuffer)
4826
+ - 0 if the `value` is not an ArrayBuffer object
4827
+ - 0 if the `buf_size` is zero or there is nothing to read
4828
+
4829
+ **Example**
4830
+
4831
+ ```c
4832
+ {
4833
+ uint8_t data[20];
4834
+ jerry_value_t buffer;
4835
+ // ... create the ArrayBuffer or acuiqre it from somewhere.
4836
+
4837
+ jerry_value_t bytes_read;
4838
+
4839
+ // read 10 bytes from the start of the ArrayBuffer.
4840
+ bytes_read = jerry_arraybuffer_read (buffer, 0, data, 10);
4841
+ // read the next 10 bytes
4842
+ bytes_read += jerry_arraybuffer_read (buffer, bytes_read, data + bytes_read, 10);
4843
+
4844
+ // process the data variable
4845
+
4846
+ jerry_release_value (buffer);
4847
+ }
4848
+ ```
4849
+
4850
+ **See also**
4851
+
4852
+ - [jerry_create_arraybuffer](#jerry_create_arraybuffer)
4853
+ - [jerry_arraybuffer_write](#jerry_arraybuffer_write)
4854
+ - [jerry_get_arraybuffer_byte_length](#jerry_get_arraybuffer_byte_length)
4855
+
4856
+
4857
+ ## jerry_arraybuffer_write
4858
+
4859
+ **Summary**
4860
+
4861
+ Copy the contents of a buffer into the ArrayBuffer.
4862
+ The start offset of the write operation can be specified.
4863
+
4864
+ The number bytes to be written can be specified via the `buf_size`
4865
+ parameter. It is not possible to write more than the length of
4866
+ the ArrayBuffer.
4867
+
4868
+ Function returns the number of bytes written into the ArrayBuffer
4869
+ (and read from the buffer parameter). This value is
4870
+ calculated in the following way: `min(array buffer length - offset, buf_size)`.
4871
+
4872
+ **Prototype**
4873
+
4874
+ ```c
4875
+ jerry_length_t
4876
+ jerry_arraybuffer_write (const jerry_value_t value,
4877
+ jerry_length_t offset,
4878
+ const uint8_t *buf_p,
4879
+ jerry_length_t buf_size);
4880
+ ```
4881
+
4882
+ - `value` - ArrayBuffer to write to
4883
+ - `offset` - start offset of the write operation
4884
+ - `buf_p` - buffer to read the data from
4885
+ - `buf_size` - maximum number of bytes to write into the ArrayBuffer
4886
+ - return value
4887
+ - number of bytes written into the ArrayBuffer (read from the buffer parameter)
4888
+ - 0 if the `value` is not an ArrayBuffer object
4889
+ - 0 if the `buf_size` is zero or there is nothing to write
4890
+
4891
+ **Example**
4892
+
4893
+ ```c
4894
+ {
4895
+ uint8_t data[20];
4896
+
4897
+ // fill the data with values
4898
+ for (int i = 0; i < 20; i++)
4899
+ {
4900
+ data[i] = (uint8_t) (i * 2);
4901
+ }
4902
+
4903
+ jerry_value_t buffer;
4904
+ // ... create the ArrayBuffer or acquire it from somewhere.
4905
+
4906
+ jerry_value_t bytes_written;
4907
+
4908
+ // write 10 bytes from to the start of the ArrayBuffer.
4909
+ bytes_written = jerry_arraybuffer_write (buffer, 0, data, 10);
4910
+ // read the next 10 bytes
4911
+ bytes_written += jerry_arraybuffer_write (buffer, bytes_written, data + bytes_written, 10);
4912
+
4913
+ // use the ArrayBuffer
4914
+
4915
+ jerry_release_value (buffer);
4916
+ }
4917
+ ```
4918
+
4919
+ **See also**
4920
+
4921
+ - [jerry_create_arraybuffer](#jerry_create_arraybuffer)
4922
+ - [jerry_arraybuffer_write](#jerry_arraybuffer_write)
4923
+ - [jerry_get_arraybuffer_byte_length](#jerry_get_arraybuffer_byte_length)
0 commit comments