Commit Graph
100 Commits
Author SHA1 Message Date
Robert Fancsik 525c35f148 Introduce jerry_get_resource_name API function (#3236)
This new API function adds possibility to query the resource name of the currently executed script (including modules) or a function object.
This patch closes #2170.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-11-06 15:05:49 +01:00
Robert Fancsik 3a505bda6b Increase the size of VM group opcodes to 256 (#3282)
Currently there is almost 115 group opcodes so increasing the number of bits which reprent a group opcode has become actual.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-11-06 14:49:57 +01:00
Robert Fancsik 06135da642 Do not create temporary object during [[Get]] operation with primitive base (#3278)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-11-05 19:37:20 +01:00
Robert Fancsik 6f83da4c0b Implement the spread operator for array initialization (#3265)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-11-04 16:36:58 +01:00
Robert Fancsik fc3cfc4fdc Arrow functions "prototype" property should not be lazy listed (#3268)
This patch fixes #3267.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-11-04 12:12:01 +01:00
Robert Fancsik f93fa98a75 Add Number.{EPSILON, {MAX,MIN}_SAFE_INTEGER} to the builtin descriptor (#3258)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-31 15:06:19 +01:00
Robert Fancsik eee41ec734 Support \u200C \u200D unicode characters (#3266)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-31 11:14:13 +01:00
Robert Fancsik d1faed7d03 Properly release callback result in ecma_builtin_typedarray_prototype_exec_routine (#3263)
This patch fixes #3262.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-31 11:08:16 +01:00
Robert Fancsik 1c34539997 Rework array hole calculation for fast access mode arrays (#3248)
This patch gives possibility to Array.prototype builtin routine optimizations.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-29 10:10:25 +01:00
Robert Fancsik 42ab062441 Introduce ecma_op_object_get_length and ecma_op_object_get_by_index operations (#3245)
These two functions helps to reduce code duplication, also invokes the elimination of several ECMA_TRY_CATCH macros.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-29 10:07:20 +01:00
Robert Fancsik 87f60da14f Add arithmetic operations support for the API (#3249)
This patch extends the jerry_binary_operation_t list with arithmetic operations.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-28 15:46:35 +01:00
Robert Fancsik 448c239f08 Export statement parsing should construct new ident literal (#3256)
This patch fixes #3253.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-28 15:30:47 +01:00
Robert Fancsik 351b88184c Arrow functions prototype property should not be lazy instantiated (#3251)
This patch fixes #3250

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-28 10:33:28 +01:00
Robert Fancsik b7aa21ebc7 Fix lazy instantiation of external functions 'prototype' property (#3246)
This patch resolves #2302.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-25 15:56:37 +02:00
Robert Fancsik 100a012931 Fix integer overflow during byteLength calculation for %TypedArray%s (#3244)
This patch fixes #3243.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-25 12:36:23 +02:00
Robert Fancsik 99ad34af4a Sort function breakpoints before enabling them (#3238)
Function breakpoints should be sorted before enabling then since the object enumeration order does not grant consistent result.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-24 15:08:03 +02:00
Robert Fancsik 48f34adea5 General GC optimizations (#3221)
- Enable recursive GC marking with a limited recursion count (this option is configurable)
- No need to decrease the reference count of the gray objects anymore
- Bound function object marking is seperated into a helper function

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-24 14:49:47 +02:00
Robert Fancsik 3b73562fa5 Revise ES2015 feature guards (#3240)
All the basic language element guards are merged into JERRY_ES2015 macro guard.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-24 14:44:51 +02:00
Robert Fancsik edf66f4e9b Extend the API documentation for jerry_create_string_* functions (#3234)
- The given string pointer cannot be NULL.
 - Fixed API prototype for jerry_create_string_sz_from_utf8
 - Assert is added for non-NULL pointer in lit_zt_utf8_string_size

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-21 13:42:31 +02:00
Robert Fancsik fd1f7eab9f Add public API functions for internal property management (#3128)
These 4 new API functions give possibility to perform [[Get]], [[Set]], [[Has]], [[Delete]] operations for properties
which are not accessible from the JavaScript context only from the public API.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-17 13:56:49 +02:00
Robert Fancsik a40eb9bab8 Remove duplicated error raising in ecma_op_typedarray_set_with_typedarray (#3223)
This patch fixes #3222.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-17 11:56:14 +02:00
Robert Fancsik 8f39d90f7c Static strings should be reference counted in debug mode (#3219)
This patch helps to find out invalid reference count usage for ecma-strings.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-16 14:00:47 +02:00
Robert Fancsik 7518b7bfe6 Remove ECMA_PROPERTY_HASHMAP_SHIFT_LIMIT (#3217)
Ecma-string hash limit has already been increased to UINT32_MAX so all the string hashes can be stored directly in the hashmap.
This patch fixes #3216.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-16 13:59:43 +02:00
Robert Fancsik fc2a2f94fd Properly release scanner info in parser_parse_for_statement_start (#3211)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-10 12:44:29 +02:00
Robert Fancsik 9e323cdcd6 Improve ecma_typedarray_info_t (#3205)
- The structure members have been renamed and the members got more detailed description.
- Updated the usage of the typedarray info structure in all occurrences to use absolute addressing from the underlying arraybuffer pointer.

This patch also fixes #3204.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-09 14:10:54 +02:00
Robert Fancsik 2a89eec98b Reduce code duplication in js-parser-expr.c (#3159)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-02 12:17:45 +02:00
Robert Fancsik 32962f067e Fix class/function parsing in single-statement blocks (#3179)
This patch fixes #3151 and fixes #3174.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-02 11:16:52 +02:00
Robert Fancsik fbca37fde6 Fix argument validation for Number.prototype.toPrecision (#3176)
This patch fixes #3173

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-02 10:25:52 +02:00
Robert Fancsik 195b0d3c3a Fix duplicated argument validation for default arguments (#3178)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-10-02 10:10:23 +02:00
Robert Fancsik 26626947c0 Inline ecma_gc_set_object_visited for performance critical code paths (#3154)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-30 16:46:31 +02:00
Robert Fancsik 57abd26c33 Optimize lcache insert (#3155)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-30 16:46:18 +02:00
Robert Fancsik 9ab4872244 Temporary fix for ESP8266 target on Travis (#3160)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-24 18:39:33 +02:00
Robert Fancsik 4452e79204 Class expression scanning must be continued with post primary expression scanning. (#3120)
This patch fixes #3117 and fixes #3119.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-16 12:58:14 +02:00
Robert Fancsik 8d9788d1b5 Fix incorrect assertion while decoding the literal argument index (#3118)
This patch fixes #3114.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-16 12:56:48 +02:00
Robert Fancsik 436fcbb4b7 Fix [[Delete]] operation for fast arrays. (#3115)
When popping the last element from a fast array the underlying buffer must be released.
This patch fixes #3106.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-16 12:54:16 +02:00
Robert Fancsik 83c44d20b3 Fix skipping empty statements during class literal scanning (#3124)
This patch fixes #3123

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-16 11:26:08 +02:00
Robert Fancsik fc30f003ba Rework ecma collection (#3086)
After this patch the ecma value collection is a resizable buffer of ecma-values where the adjacent elements are allocated next to each other.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-12 13:05:24 +02:00
Robert Fancsik 83459c1fac Fix String.prototype.repeat for empty strings (#3085)
This patch fixes #3084.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-10 15:03:53 +02:00
Robert Fancsik c04fe24253 Ensure that Map/Set object keys can always have MAP_KEY_STRING internal property (#3065)
This patch fixes #3062.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-09 10:38:22 +02:00
Robert Fancsik 9fbd0cce6c Fix fast access mode arrays delete property operation (#3073)
The old last element should be released before reallocating the underlying buffer

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-09 10:37:17 +02:00
Robert Fancsik e04bbdfff4 Fix byteLength validation in DataView constructor (#3074)
This patch fixes #3072.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-09 10:37:01 +02:00
Robert Fancsik c79659d3b2 Fix array initialization with array holes (#3076)
Fast mode access arrays must be converted back to normal if the array hole count reaches the limit during the initializtaion.
This patch fixes #3075.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-09 10:36:48 +02:00
Robert Fancsik 3111d0e0f2 Fix the internal object reference count in Map/Set.prototype.forEach (#3081)
This patch fixes #3079.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-09 10:36:33 +02:00
Robert Fancsik 2933947534 Properly decode literal index before CBC_MOV_IDENT (#3056)
This patch fixes #3055.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-07 12:23:49 +02:00
Robert Fancsik 91818bea93 Limit the constructed string size in String.prototype.repeat (#3066)
This patch fixes #3063.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-07 12:20:57 +02:00
Robert Fancsik 086c4ebf13 Fix array hole calculation for fast access mode arrays (#3061)
This patch fixes #3060.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-05 10:16:27 +02:00
Robert Fancsik 142f79ce05 Properly handle CBC_PUSH_THIS_LITERAL for unary lvalue operations (#3054)
This patch fixes #3048.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-05 09:52:58 +02:00
Robert Fancsik 4afcc709b8 Add fast array support for property name enumeration (#3053)
Since fast access mode arrays can be part of the prototype chain these objects must be handed separately.
This patch fixes #3050.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-05 09:49:56 +02:00
Robert Fancsik 1c4cfe3e20 Property release the callback result in Array.prototype.[find/findIndex] (#3052)
This patch fixes #3049.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-05 01:42:16 +02:00
Robert Fancsik 1088273bc3 Prevent fast access mode arrays from low-level property management methods (#3047)
This patch fixes #3043 and fixes #3045 and fixes #3046.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-04 10:41:29 +02:00
Robert Fancsik 91e87fe34f Fix the limit of the maximum number of directly stored properties in a hashmap (#3032)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-03 17:46:47 +02:00
Robert Fancsik 952fb23e0e Skip fast access arrays during hashmap frees (#3033)
Also this patch fixes some small issues during the fast array construct process.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-09-03 17:45:55 +02:00
Robert Fancsik 2f1908f894 Implement fast access mode arrays (#3028)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-08-30 15:18:15 +02:00
Robert Fancsik c6a4a86257 Improve ecma_string_t descriptor (#3016)
This patch introduces several changes conntect to ecma-strings:
 - Extend the size of the reference counter to 28 bytes from 13
 - Extend the size of the string hash to 32 bytes from 16 to use the extact FNV-1a hash
 - Introduce ECMA_STATIC_STRING_FLAG to reduce the number of string ref/derefs for static strings.
 - Introduce ECMA_STRING_CONTAINER_ASCII_STRING to store run-time allocated ASCII strings more efficiently
 - Remove ECMA_STRING_CONTAINER_LIT_NUMBER to half the storage size of the parsing time allocated floating point numbers
 - Rework the global number storage, to store only the floating point numbers
 - Optimize the lookup in the global number/string/symbol tables via reduce the number of NULL checks during decompressing the next element pointers
 - Reduce the code duplication in ecma_concat_ecma_strings and ecma_append_chars_to_string
 - Improve ecma_string_get_char with optional arguments to make it more reusable.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-08-30 15:16:27 +02:00
Robert Fancsik ee1da14577 Optimize ecma_builtin_helper_def_prop. (#3007)
This patch removes the ecma_property_descriptor_t structure bitfields and substitutes it with an uint16_t flag field
to reduce the cost of the transformation from/into the ecma_property_flags_t.
Also the is_throw last arguments is embedded to the property descriptor structure during the property defining process to reduce the number of arguments of the function.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-08-27 18:28:03 +02:00
Robert Fancsik 47f2f0ea8b General optimizations around compressed pointer management (#3019)
ECMA_GET_POINTER is removed from:
 - property list iteration
 - lexical environment chain iteration
 - prototype chain iteration

For all these iteration the compressed pointer can be used to get the elements and only decompressed them if it is necessary.

- Properly guard ecma property hashmap routines
- Remove the redundant NULL pointer check from ecma_create_property
- Remove ecma_gc_get_object_next since it became unnecessary
- Substitute ECMA_{GET,SET}_POINTER with ECMA_{GET,SET}_NON_NULL pointer when we can assume the pointer is not NULL
- Remove ecma_get_object_prototype and ecma_get_lex_env_outer_reference helper function the reduce the number of NULL pointer checks during decompressing the pointers
- Remove ecma_get_named_accessor_property_{getter,setter} helper functions for also reduce the number of NULL pointer check/decompressions
- Remove ECMA_PROPERTY_SEARCH_DEPTH_LIMIT since in ES5 there is no way to create circular prototype chain, and the ES2015 setPrototypeOf method can resolve this error so this check during the property lookup can be eliminated.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-08-26 17:42:02 +02:00
Robert Fancsik b47c36ad18 Eliminate ECMA_TRY_CATCH macros part I. (#3006)
Also this patch introduces several helper function to find/put/delete properties by indexed property names to reduce code duplications.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-08-26 17:20:00 +02:00
Robert Fancsik 3af0079a0e Introduce CBC_MOV_IDENT opcode to improve performance (#3020)
After this patch CBC_ASSIGN_SET_IDENT is transformed to CBC_MOV_IDENT if the opcode has register stored literal argument.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-08-26 15:59:27 +02:00
Robert Fancsik dec9dbc926 Reduce the size of the jerry_context_t structure (#2981)
This patch substitutes several global pointer with compressed pointers to reduce the size of the structure.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-08-06 13:18:44 +02:00
Robert Fancsik 4a9e185840 Rework the engine's internal recursion limit (#2969)
This patch unifies the recursion limit checking for RegExp, function call and JSON as well.
Until now the limit was only a counter which was increased/decreased at certain points.
This counter has been substituted with a numeric limit which allows to restrict the stack usage.

This patch fixes #2963 and resolves the closed #2258 issue.

Co-authored-by: Gabor Loki [email protected]
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-23 15:31:37 +02:00
Robert Fancsik 6c441091b4 Optional arguments should advance the iterator in jerryx_arg_transform_optional (#2962)
This patch fixes #2288

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-17 14:16:41 +02:00
Robert Fancsik 329b1fd3f7 Use custom dispatcher for Number.prototype routines (#2968)
Binary size gain:
     - Intel: ~630B (gcc-7.3)
     - Arm: ~280B (arm-linux-gnueabi-gcc-7.3)

Futher improvements:
 - Separate toFixed, toExponential, toPrecision common part into a helper function

Co-authored-by: Gabor Loki [email protected]
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-17 14:10:20 +02:00
Robert Fancsik 7aa3bfdc6d Use custom dispatcher for Function.prototype routines (#2967)
Binary size gain:
     - Intel: ~70B (gcc-7.3)
     - Arm: 50 B (arm-linux-gnueabi-gcc-7.3)

Co-authored-by: Gabor Loki [email protected]
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-17 14:10:05 +02:00
Robert Fancsik c0b8845530 Use custom dispatcher for Object routines (#2966)
Binary size gain:
     - Intel: ~370B (gcc-7.3)
     - Arm: ~240B (arm-linux-gnueabi-gcc-7.3)

Co-authored-by: Gabor Loki [email protected]
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-17 14:09:44 +02:00
Robert Fancsik f158dd4fb5 Use custom dispatcher for Object.prototype routines (#2965)
Binary size gain:
     - Intel: ~250B (gcc-7.3)
     - Arm: ~65B (arm-linux-gnueabi-gcc-7.3)

Co-authored-by: Gabor Loki [email protected]
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-17 14:09:29 +02:00
Robert Fancsik 603cd88006 Use custom dispatcher for String.prototype routines (#2964)
Binary size gain:
     - Intel: ~1.3KB (gcc-7.3)
     - Arm: ~650B (arm-linux-gnueabi-gcc-7.3)

Co-authored-by: Marko Fabo [email protected]
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-17 14:09:14 +02:00
Robert Fancsik a21a4191ca Improve RegExp.prototype.compile (#2971)
This patch fixes the return value of the routine also fixes several incorrect regression-tests
due to the previously incorrect [[RegExpMatcher]] internal slot check.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-17 08:14:38 +02:00
Robert Fancsik 2700e66c4b Improve class literal parsing (#2970)
Until now "get"/"set" were always parsed as special 'keywords' for accessor methods,
but they should be parsed as simple class method if no identifier is followed by them.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-16 13:52:05 +02:00
Robert Fancsik 6bd7d70a69 Fix Lcache and property hashmap related buildoption tests (#2973)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-16 13:04:40 +02:00
Robert Fancsik 3f47e1b0aa Container object's internal object must be allocated firstly (#2961)
This patch slightly reworks the container objects internal objects allocation.
This rework allows the same lifetime of the objects without the manual allocation/deallocation of the internal object.

This patch also fixes #2951.

Co-authored-by: Dániel Bátyai <[email protected]>
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-11 12:32:17 +02:00
Robert Fancsik a3cd2d7ff6 This argument must be pseudo-array in {Map/Set}Iterator.prototype.next routine (#2960)
This patch fixes #2950.

Co-authored-by: Gabor Loki [email protected]
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-11 11:33:17 +02:00
Robert Fancsik 06000b5161 Fix the repeat count checking in String.prototype.repeat (#2959)
This patch fixes #2948

Co-authored-by: Gabor Loki [email protected]
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-11 11:32:11 +02:00
Robert Fancsik 788fdc6603 Add missing release value call to %TypedArray%.prototype.findIndex routine (#2958)
This patch fixes #2947

Co-authored-by: Gabor Loki [email protected]
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-11 11:31:04 +02:00
Robert Fancsik 2b8c428694 Improve gen-unicode.py to support unicode ranges (#2944)
This patch fixes #2936

Co-authored-by: Gabor Loki [email protected]
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-05 15:44:56 +02:00
Robert Fancsik e902b870aa Limit the call stack size for native/builtin functions as well (#2935)
VM_RECURSION_LIMIT only prevented the recursion of interpreted codeblocks but
native/builtin function calls can also create stack overflow due to the too deep recursion.

This patch fixes #2905.

Co-authored-by: Gabor Loki [email protected]
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-05 12:21:48 +02:00
Robert Fancsik 8766bb3b37 CBC_PUSH_THIS_LITERAL must be converted back to CBC_PUSH_THIS during emitting unary lvalue opcode (#2939)
This patch fixes #2937.

Co-authored-by: Gabor Loki [email protected]
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-04 18:26:46 +02:00
Robert Fancsik a72d14f575 Make API unavailable while processing native free callbacks (#2932)
This patch fixes #2889 and extends the API documentation of the native free callbacks.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-07-02 15:46:19 +02:00
Robert Fancsik f6f52a2bf1 Update the internals documentation (#2923)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-06-27 12:56:06 +02:00
Robert Fancsik 9d4c2315f3 Implement the Map/Set iterator operations (#2882)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-06-24 11:18:37 +02:00
Robert Fancsik 95650993a2 Container object's properties must be marked during GC. (#2913)
This patch fixes #2895 and fixes #2911.

Co-authored-by: Gabor Loki [email protected]
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-06-24 11:13:11 +02:00
Robert Fancsik 44b21de7fc Ensure that the constructed object in [[Set]] operation with primitive base cannot be extensible (#2917)
Related part of the standard: https://www.ecma-international.org/ecma-262/5.1/#sec-8.7 1st note.

This patch fixes #2914.

Co-authored-by: Gabor Loki [email protected]
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-06-24 11:12:23 +02:00
Robert Fancsik 8b459d9643 Resolve build error after #2888 (#2921)
This patch fixes the build error due to #2888 since this patch has been merged without rebasing to #2903.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-06-21 15:44:35 +02:00
Robert Fancsik b707c3f8da Reduce the size of vm_frame_ctx_t. (#2886)
The reference to the previous context is only used by the debugger and the backtrace info,
so this element should not be part of the structure by default.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-06-21 14:04:24 +02:00
Robert Fancsik 343e80053b Implement the for of statement (#2871)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-06-07 12:35:42 +02:00
Robert Fancsik 076f515d61 Implement the string iterators (#2873)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-05-30 12:34:19 -04:00
Robert Fancsik 442e482afa Add missing error check for ecma_regexp_exec_helper (#2887)
This patch fixes #2885.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-05-28 14:22:57 +02:00
Robert Fancsik e1c552ba2e Cleanup unused macros/typedefs from ecma-globals.h (#2888)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-05-28 10:56:10 +02:00
Robert Fancsik 76a1fc5674 Support external context in the snapshot tool (#2870)
This patch fixes #2869.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-05-13 16:07:39 +02:00
Robert Fancsik 4331e39b9a Implement the Set builtin object (#2841)
Also implement the missing iterator initializer part from the Map builtin object constructor.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-05-10 20:28:43 +02:00
Robert Fancsik 99c7a4040f Super parsing options should be set only in direct eval call (#2863)
This patch fixes #2846.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-05-10 12:23:29 +02:00
Robert Fancsik 063e7fde2b undefined byteLength should be treated 0 in DataView constructor (#2856)
This patch fixes #2854.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-05-10 10:47:25 +02:00
Robert Fancsik 2d1ad149c1 Fix key iteration in ecma_op_map_foreach (#2855)
This patch fixes #2852 and fixes #2853 as well.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-05-08 15:21:43 +02:00
Robert Fancsik eb993d57ed DataView object underlying ArrayBuffer should be marked during GC. (#2849)
This patch fixes #2848 and fixes #2850 as well.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-05-08 15:14:21 +02:00
Robert Fancsik 56b6d3a45d Class this binding must be bound to non-heritage contexts as well (#2829)
This patch fixes #2822.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-04-26 13:34:02 +02:00
Robert Fancsik 10d820165d Enable 32bit cpointers by default if the given heap size is greater than 512KB (#2833)
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-04-24 14:41:07 +02:00
Robert Fancsik 6801871161 Super parse options should be cleared before setting it's value (#2831)
This patch fixes #2825.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-04-24 14:40:09 +02:00
Robert Fancsik 962d549be6 Non-object values should give early false result for instanceof operator (#2830)
This patch fixes #2823.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-04-24 14:39:04 +02:00
Robert Fancsik 760fc4fb95 Remove incorrect assertions from class construction instructions (#2827)
A class expression can be part of any kind of expression since the asserts for the stack position calculation were incorrect.
This patch fixes #2819.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-04-24 14:36:19 +02:00
Robert Fancsik d2931c6e40 Rework Map object (#2760)
This patch reworks the core of the builtin Map object.

Advantages:
 - Provide sublinear access time for the elements via Lcache and property hashmap
 - This implementation is suitable for the builtin Set object as well

Also add the missing 'forEach' routine for the builtin object as well.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-04-17 14:50:03 +02:00
Robert Fancsik 5c72d995e4 Implement DataView builtin (#2804)
New API functions:
 - jerry_create_dataview
 - jerry_value_is_dataview
 - jerry_get_dataview_buffer

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
2019-04-16 08:26:39 +02:00