Commit Graph
580 Commits
Author SHA1 Message Date
Akos Kiss 4a5df52aa1 Factor out common macro un/definitions used for built-in descriptions (#1678)
The default definitions and undefinitions of macros used for built-in
descriptions (SIMPLE_VALUE, NUMBER_VALUE, STRING_VALUE, OBJECT_VALUE,
ROUTINE, ACCESSOR_READ_WRITE, ACCESSOR_READ_ONLY) are heavily cloned
all over the builtin-objects directory. This commit factors them out
into two header files, which are then included in the place of the
clones. This way, maintenance becomes a lot easier: e.g., if a new
macro gets introduced, default definition and undefinition don't have
to be added to all description files (of which there are 56 right now,
and their number will most probably just grow).

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2017-03-23 09:36:29 +01:00
Robert Sipka 78e4dcf6c2 Build fix for 32-bit float ecma-number storage (#1669)
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka [email protected]
2017-03-22 14:18:43 +01:00
Akos Kiss 6ddf00a9fa Fix comments of ecma_lexical_environment_type_t (#1676)
The comments of `ecma_lexical_environment_type_t` document why the
values of the enum are as they are, while referring to
`ecma_object_type_t`. However, they became out of sync lately and
refer to nonexistent enum labels and/or incorrect values. This
commit gets the two enums in sync.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2017-03-22 11:36:44 +01:00
Robert Sipka 7e1ade3406 Remove logically dead code (#1674)
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka [email protected]
2017-03-22 10:17:12 +01:00
Levente Orban 4420401cf5 Style fix: return value comments (#1668)
JerryScript-DCO-1.0-Signed-off-by: Levente Orban [email protected]
2017-03-21 10:24:54 +01:00
Akos Kiss e66bb5591d Implement Object.setPrototypeOf from ES2015 specification (#1666)
`Object.prototype.__proto__` has been implemented by most JS
engines to give R/W access to prototype chains, well before it made
it into the standard. JerryScript has decided not to implement it,
exactly because it was not part of ES 5.1. The only fully
ES5.1-compatible way of accessing the prototype chain is
`Object.getPrototypeOf` for reading.

However, ES2015 defines `Object.setPrototypeOf` for rewriting the
prototype chain, and JerryScript has now an ES2015 subset profile.
So, this commit adds its implementation to JerryScript.

Note, this commit does _not_ add `Object.prototype.__proto__`,
since that is in the Annex B of ES2015 specification, which is
optional for non-web-browser hosts.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2017-03-21 10:11:07 +01:00
Robert Sipka 23ac60915f Modify the snapshot API functions to expect a 32-bit aligned buffer pointer (#1655)
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka [email protected]
2017-03-17 09:01:59 +09:00
Akos Kiss edadc53def Fix Date objects' YearFromTime helper for out-of-range time values (#1658)
For negative out-of-range time values, ecma_date_year_from_time
fell into an infinite loop. (Moreover, for positive out-of-range
time values, it returned an incorrect year.) This patch fixes the
helper to return NaN in these cases (and ensures that its call
sites are prepared for NaN values).

Fixes #1657.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2017-03-16 17:03:42 +01:00
Robert Sipka 818c9cd0b0 Fix issue #742 (#1650)
It is a workaround fix. The problem comes from the inaccuracy of the double rounding.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka [email protected]
2017-03-16 08:59:48 +01:00
László Langó 202a88bbeb Temporarily disable a few test262 tests in automatic testing. (#1662)
Those tests are related the actual daylight saving adjustment.
Related issue: #1661

JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2017-03-14 15:26:56 +01:00
Zoltan Herczeg 1b4426fd2a Check whether match result has error flag. (#1653)
Fixes #1641.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2017-03-14 10:01:22 +01:00
Zoltan Herczeg b140158104 Fix various number parsing issues. (#1648)
For example Number(".") and Number("e5") should be NaN not
zero. Parsing Number("e") caused buffer overflow as well.
Infinity parsing is a bit faster now.

Fixes #1636.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2017-03-09 15:03:46 +01:00
Yanhui Shen a2a160d6f9 Improve error messages (#1577)
JerryScript-DCO-1.0-Signed-off-by: Yanhui Shen [email protected]
2017-03-08 10:58:25 +01:00
Zoltan Herczeg 319702cdd2 Support internal properties in GC mark. (#1646)
Some internal properties are incorrectly handled as objects and
marked as visited. This memory overwrite caused random crashes
in IoT.js.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2017-03-07 14:14:05 +01:00
Zidong Jiang c6f22a9683 Make sure the size arg of alloc will not overflow (#1618)
Also make sure the bytelength = arraylength << shift will not overflow

Fix issue #1616

JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang [email protected]
2017-03-07 08:37:19 +09:00
Zidong Jiang 71e1383d13 Check if propery is not found before delete it. (#1637)
Fix issue #1633

JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang [email protected]
2017-03-06 21:08:30 +08:00
Zidong Jiang b13f78f19e Check options in ecma_op_object_get_own_property for typedarray. (#1627)
And add regression-case subfolder for es2015

Fix issue #1622

JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang [email protected]
2017-03-06 19:07:02 +08:00
Zoltan Herczeg b5a91069fd Fix multiple debugger issues. (#1640)
- Wait for free byte code pointers during garbage collection.
- Detect incorrect free requests in the debugger server.
- Ignore byte code blocks loaded from snapshot.
- Use memmove instead of memcpy to avoid receive buffer corruption.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2017-03-06 11:13:25 +01:00
Robert Sipka 6254748081 Require JERRY_JS_PARSER macro to be defined (#1639)
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka [email protected]
2017-03-06 09:53:09 +01:00
Zoltan Herczeg 3de72af712 NaN must not be passed to date getter functions. (#1620)
Fixes #1547

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2017-02-27 11:19:29 +01:00
Zidong Jiang df4064c18e Implement ecma_object_get_class_name for all ES2015 builtin object (#1617)
Fix issue #1613

JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang [email protected]
2017-02-27 09:12:31 +01:00
Zidong Jiang f1d43784f5 No other objects should be allocated before a typedarray is fully (#1619)
initialized.

All members of an object must be valid when the garbage collector runs,
so no allocations are allowed during typed array initialization.

Fix issue #1605
JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang [email protected]
2017-02-25 09:23:44 +08:00
Robert Sipka 39dc4a6273 Remove shadowed declarations, undefined identifiers, and specify argument types where it is required. (#1601)
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka [email protected]
2017-02-22 10:34:44 +01:00
Zoltan Herczeg 54544163a9 Completely remove internal property support. (#1603)
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2017-02-22 10:39:48 +09:00
Zoltan Herczeg 00e3de230f Introduce debugger status flags to control the operation of the debugger. (#1596)
Two issues were fixed as well: inserting breakpoints before non-directive
prologue strings and the receive can process multiple messages.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2017-02-21 11:57:04 +01:00
Gabor Loki 6739463c1e Fix the missing inline specifier if compiling with -fPIC (#1590)
JerryScript-DCO-1.0-Signed-off-by: Gabor Loki [email protected]
2017-02-17 12:41:01 +01:00
Zidong Jiang 4727202c8e Add typedarray routine:reverse (#1585)
JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang [email protected]
2017-02-16 18:32:13 +01:00
László Langó 799726aa42 Add new input validator API functions (#1576)
Fixes #1549

JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2017-02-16 18:31:04 +01:00
Zidong Jiang 64a340ffeb typedarray routine: filter (#1581)
JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang [email protected]
2017-02-15 19:20:15 +01:00
Levente Orban 025a99ccbb Initial version of JerryScript debugger (#1557)
The debugger supports setting breakpoints, execution control (step, next, continue)
and getting backtrace. The communication is WebSocket-based, so a browser can
communicate with JerryScript without any intermediate application.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
JerryScript-DCO-1.0-Signed-off-by: Levente Orban [email protected]
2017-02-14 15:03:01 +01:00
Zoltan Herczeg 453066fcf1 Regexp exec should not use the empty magic string. (#1582)
This is a workaround for an ASAN issue and a small optimization as well.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2017-02-14 14:18:46 +01:00
slaff 5101d932f7 Fix compilation errors when LCACHE is disabled. (#1570)
JerryScript-DCO-1.0-Signed-off-by: Slavey Karadzhov [email protected]
2017-02-13 13:14:50 +01:00
Zidong Jiang 24e6c3f062 Add typedarray routine: reduce and reduceRight (#1569)
JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang [email protected]
2017-02-10 13:36:00 +01:00
Zoltan Herczeg bfc5bee394 Restore deleted lines. (#1574)
In a previous patch the original null count behaviour of the
property hashmap is just only partially restored. Now it is
restored fully Also another assertion was forgot to be fixed
in another patch, and we do so now.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2017-02-10 10:53:43 +01:00
Zoltan Herczeg be720b2238 Seperate NULL and unused values. (#1572)
Fixes #1552.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2017-02-10 08:10:20 +01:00
Zidong Jiang 7b01b29ec8 Add typedarray routine: every, some, foreach, and map (#1566)
JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang [email protected]
2017-02-09 08:49:00 +01:00
László Langó a976b0c061 Improve performance of GC sweep (#1568)
JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2017-02-08 14:58:54 +01:00
Zoltan Herczeg 589f2dec92 String.match should return on error. (#1560)
Fixes #1546.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2017-02-03 15:16:49 +01:00
László Langó 107c058bb1 Add doxygen checker (#1540)
* Fixed Doxygen issues
 * Updated Doxygen config
 * Added new script to test whether doxygen generation was successful or not
 * Added to Travis CI

JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2017-01-31 12:27:59 +01:00
Zoltan Herczeg 0c3ef892c0 Rework property hashmap delete. (#1543)
Triggering hashmap recreate during property delete may damage the
property chain list, so recreate postponed after the delete is done.

Next attempt to fix #1533.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2017-01-27 15:31:27 +01:00
Zidong Jiang 0547b31c16 [ES2015][TypedArray] add other 8 types (#1532)
Add Uint8Array, Int16Array Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array and Uint8ClampedArray. Support the conversion between any pairs of those types.

JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang [email protected]
2017-01-24 15:06:31 +01:00
Robert Sipka 124582793f Copy the characters of an UTF-8 encoded substring into a specified buffer (#1524)
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka [email protected]
2017-01-24 15:04:48 +01:00
László Langó 976c8aee80 Organize public and internal parts of memory management (#1539)
* Introduced new 'jmem.h' for public part.
 * Removed obsolete headers

JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2017-01-24 12:36:53 +01:00
t-harvey f88d1a4863 These changes are designed to enable the TI compilers to compile (#1505)
Jerryscript.  The changes include:

CMakeLists.txt: we added conditionals around GCC-specific flags, added
support for TI flags, and removed the always-on debugging flag (-g)

/toolchain_mcu_tim4f.cmake: new toolchain file uses TI-specific parameters

jerry-api.h: the sys/types.h file was #include'd but never used, so we
removed it

jrt-types.h: ditto

jerry-port-default-date.c: the TI toolchain doesn't include
sys/time.h, so we guarded uses of the package

ecma-objects-general.c: added initialization that Travis (the
auto-checking tool) required

JerryScript-DCO-1.0-Signed-off-by: Timothy Harvey [email protected]
2017-01-24 07:38:53 +01:00
t-harvey 94b6aae52c Added #if control around GCC built-in functions so that the code can be (#1483)
compiled using non-GCC compilers.

This included adding an initialization to a variable that looks(!)
like it can reach a use before being initialized (b/c we turned
JERRY_UNREACHABLE into a nop) -- an example:

int foo;
switch (value_can_only_be_one_or_two)
   case 1:
   case 2:
       foo = 5;
   default:
      JERRY_UNREACHABLE();
x = foo +1;

...the compiler assumes that the path can go through the default case,
which leaves the value of foo undefined.

JerryScript-DCO-1.0-Signed-off-by: Timothy Harvey [email protected]
2017-01-23 12:19:35 +01:00
Zoltan Herczeg 8b5d645df6 Track all NULL values in the property hashmap. (#1534)
There are two types of NULL values in the property hashmap: deleted
entries, and never used entries. The current implementation tracks
only the never used entries, and never scales back the hashmap.
After this patch property delete can also recreate the hashmap, or
remove it entirely if there are too few items in the array.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2017-01-19 11:34:24 +01:00
László Langó 471ad284f6 Remove 'OBJECT_ID' from builtin headers. (#1529)
After 378d7f7 it is not used in the codebase and can be eliminated.

JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2017-01-17 08:58:46 +01:00
Zoltan Herczeg 4b5cf8ad26 HasInstance should accept the prototype of all functions. Fixes #1519. (#1520)
The regression-test-issue-736.js is also changed, since it expects
throwing an error, which does not happen anymore because the "x"
variable is undefined.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2017-01-16 13:43:54 +01:00
Zidong Jiang 4f3dc2f37c Update macro definitions in Curie-BSP target (#1525)
* add JERRY_JS_PARSER
* add CONFIG_DISABLE_ARRAYBUFFER_BUILTIN
* add CONFIG_DISABLE_TYPEDARRAY_BUILTIN
JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang [email protected]
2017-01-16 09:22:15 +01:00
Robert Sipka 7139f0172a Copy the characters of a cesu-8 encoded substring into a specified buffer (#1516)
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka [email protected]
2017-01-13 13:27:07 +01:00