Allow to create ArrayBuffer with empty external user data (#3373)

JerryScript-DCO-1.0-Signed-off-by: Roland Takacs r.takacs2@partner.samsung.com
This commit is contained in:
Roland Takacs
2019-11-29 14:22:44 +01:00
committed by Robert Fancsik
parent 35c0a6e299
commit c5ed46f5ac
3 changed files with 29 additions and 15 deletions
+17 -8
View File
@@ -250,6 +250,23 @@ main (void)
jerry_release_value (arraybuffer);
}
/* Test zero length external ArrayBuffer */
{
const uint32_t length = 0;
jerry_value_t arraybuffer = jerry_create_arraybuffer_external (length, NULL, NULL);
TEST_ASSERT (!jerry_value_is_error (arraybuffer));
TEST_ASSERT (jerry_value_is_arraybuffer (arraybuffer));
TEST_ASSERT (jerry_get_arraybuffer_byte_length (arraybuffer) == length);
uint8_t data[20];
memset (data, 11, 20);
jerry_length_t bytes_written = jerry_arraybuffer_write (arraybuffer, 0, data, 20);
TEST_ASSERT (bytes_written == 0);
jerry_release_value (arraybuffer);
}
/* Test ArrayBuffer with buffer allocated externally */
{
const uint32_t buffer_size = 15;
@@ -346,14 +363,6 @@ main (void)
jerry_release_value (buffer);
}
/* Test ArrayBuffer external with invalid arguments */
{
jerry_value_t input_buffer = jerry_create_arraybuffer_external (0, NULL, NULL);
TEST_ASSERT (jerry_value_is_error (input_buffer));
TEST_ASSERT (jerry_get_error_type (input_buffer) == JERRY_ERROR_RANGE);
jerry_release_value (input_buffer);
}
/* Test ArrayBuffer detach */
{
const uint32_t length = 1;