Commit Graph
127 Commits
Author SHA1 Message Date
László Langó ab26d57841 Don't use messages for errors by default
Use empty string for message property of builtin error objects
by default. Add ERROR_MESSAGES build option.

JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2016-03-09 11:44:32 +01:00
Robert Sipka 0b5a49f98b Warning fixes.
Passing argument 1 of ‘strncmp’ from incompatible pointer type.
Assignments from incompatible pointer types.
Passing argument or initialization discards ‘const’ qualifier from pointer target type.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka [email protected]
2016-03-09 09:41:23 +01:00
Akos Kiss 25b0750756 Fix problems arising from incorrect use of various size types
E.g.,
* `ssize_t` was used where `lit_utf8_size_t` or `jerry_api_size_t`
  would have been correct,
* `lit_utf8_size_t` was used where `ecma_length_t` would have been
  correct.

Note, the patch also includes internal and public API changes:
* `ecma_string_to_utf8_string` does not return negative value if
   output buffer is not large enough to contain the string; the
   buffer is expected to be large enough. (`ecma_string_get_size`
   can be used to retrieve the required size.)
* `jerry_api_string_to_char_buffer` adapts the same logic (and
  `jerry_api_get_string_size` can be used to determine the
  required size of the buffer).

Related issue: #942

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-03-08 15:22:07 +01:00
László Langó a187e6d60c Print error messages to be more informative
JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2016-03-07 12:02:05 +01:00
Zoltan Herczeg b8b587f76c Rearrange fields of ecma_property_t to be naturally aligned. Packed attribute and __extension__ keywords are removed. The standard approach reduced the binary size by 2K.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2016-03-03 05:18:28 -08:00
László Langó 2c72bb1139 RegExp refactoring and improvements
Move RegExp bytecode functions to a separate file.
Optimize bytecode lenght on character matching.
Implement a basic RegExp cache to optimize memory
usage on duplicated RegExp in JS files. Also fix
minor style issues and add missing comments. Improve
existing comments.

JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2016-03-01 13:54:14 +01:00
Zsolt Borbély 3f377692d9 Small refactorings
Modifications:
* eliminate unnecessary variables, functions
* use ECMA_NUMBER macros where it is possible
* simplify code
* minor style fix (comments, increase-decrease operators)

JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély [email protected]
2016-03-01 13:11:43 +01:00
László Langó e14d0b8942 Fix the format of doxygen comments of output arguments
JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2016-03-01 12:37:33 +01:00
Dániel Bátyai d47c36f1b4 New Allocator and improved String handling.
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai [email protected]
2016-03-01 10:44:35 +01:00
László Langó 9d7978074f Fix 'jerry-test-suite/13/13-011.js' fail in compact profile
Arguments object is not supported in compact profile, so remove
the test from 'compact-profile-list'. Do not create arguments
object on function calls in compact profile. Remove unnecessary
arguments check.
Related issue: #879

JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2016-02-22 14:35:37 +01:00
László Langó a7715a5d78 Fix style issues and improve vera++ rules.
JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2016-02-18 13:27:54 +00:00
Zoltan Herczeg b2426a7a94 Remove 'ecma_completion_value_t'
Remove ecma_completion_value_t, and add an extra bit to
ecma_value_t to represent errors. From the long list of
completion types only normal and error remained.

JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2016-02-17 13:52:51 +00:00
Akos Kiss 0d7ea70b41 Eliminating doxygen warnings by fixing the documentation
* Fix "end of file while inside a group" doxygen warnings.

* Fix "unknown command" doxygen warnings caused by incorrect
  argument references. Instead of `@foo`, `@a foo` is the proper
  format.

* Fix "unknown command" doxygen warnings caused by incorrect
  parameter direction specifications. Instead of `@in`, `@out`,
  and `@in-out`, `[in]`, `[out]`, and `[in,out]` are the proper
  formats.

* Wrapping special characters in quotes to avoid doxygen
  confusion. Raw pipe, semicolon, dot, backslash, etc. characters
  can drive doxygen into various misinterpretations and warnings.
  E.g.:
  ```
  End of list marker found without any preceding list items
  Found unknown command
  ```
  Putting quotes around such text snipets eliminates the errors.

* Fix the documentation of `ecma_builtin_global_object_print`. Raw
  <> and \ sequences confused doxygen in various ways (it tried to
  interpret them as XML tags and doxygen commands).

* Fix "ignoring title that does not match old title" doxygen
  warnings. At some places, the group titles were out of sync, at
  others, the group names were incorrect.

* Fix "parameters are not documented" doxygen warnings. Fixing
  various typos in the inline parameter documentations (`/*`,
  `/**`, `/** <`, and `/**>` are all considered incorrect, the
  right format is `/**<`).

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss [email protected]
2016-02-16 21:05:58 +01:00
László Langó 7a7b15c23a Remove unnecessary assertion
Fix for:
  * ICE: Assertion '!is_equal' failed at jerry-core/ecma/operations/ecma-lex-env.cpp(ecma_op_set_mutable_binding):219
Related issue: #879

JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2016-02-16 14:38:36 +01:00
Robert Sipka 80811c8332 Warning fixes.
ISO C99 doesn’t support unnamed structs/unions.
Comparison of distinct pointer types lacks a cast.
Dereferencing type-punned pointer will break strict-aliasing rules.
Type of bit-field ‘ext’ is a GCC extension.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka [email protected]
2016-02-16 13:56:07 +01:00
Robert Sipka 977bfa5d2c Remove g++ support from the [C]Make files.
Move all '.cpp' files to '.c'.
Rename comments from 'cpp' to 'c'.

JerryScript-DCO-1.0-Signed-off-by: Roland Takacs [email protected]
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka [email protected]
2016-02-15 12:49:12 +01:00
Robert Sipka ec5859f4e8 Add some fixes required by the C99 standard.
Use c-style cast instead of reinterpret_cast.
Use identifiers for function parameters.
Use type cast to avoid conversion error.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka [email protected]
2016-02-15 12:48:47 +01:00
Zoltan Herczeg cadc81d583 ECMAScript Parameters cannot be passed in collections anymore, only as arrays.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2016-02-10 16:01:52 +01:00
Robert Sipka cc6fced17a Use value types instead of reference types.
The C99 standard does not support reference types.

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka [email protected]
2016-02-10 15:55:02 +01:00
Robert Sipka b0bdf0ebf4 Merge the js-parser and parser files
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka [email protected]
2016-02-10 12:35:55 +01:00
Robert Sipka 207f6da504 Use type cast to avoid conversation error with C99 standard.
JerryScript-DCO-1.0-Signed-off-by: Robert Sipka [email protected]
2016-02-10 09:23:17 +01:00
László Langó 6b8332e631 Fix 'Segmentation fault on String.Replace'
Related issue: #747

JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2016-02-09 15:26:38 +01:00
László Langó d420be3fdf Fix 'Segmentation fault in re_get_value'
Related issue: #782

JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2016-02-09 15:17:28 +01:00
István Kádár 433f0705f7 Add missing doxygen group endings
JerryScript-DCO-1.0-Signed-off-by: István Kádár [email protected]
2016-02-09 14:37:49 +01:00
László Langó 0f378281ba Fix memory leak in RegExp builtin.
Related issue: #787

JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2016-02-09 13:48:09 +01:00
László Langó d038284bff Style fix: fix comments at the end of function definitions.
JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2016-02-05 13:46:51 +01:00
László Langó b1acf1a562 Style fix: align pointer dereference operator to right
JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
2016-02-05 13:06:34 +01:00
Zoltan Herczeg 4d2dd22ced Compact Byte Code parser and executor for Jerry.
JerryScript-DCO-1.0-Signed-off-by: László Langó [email protected]
JerryScript-DCO-1.0-Signed-off-by: Tamas Gergely [email protected]
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély [email protected]
JerryScript-DCO-1.0-Signed-off-by: Roland Takacs [email protected]
JerryScript-DCO-1.0-Signed-off-by: István Kádár [email protected]
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
2016-02-05 01:15:49 -08:00
pius.lee cc60b0b3a2 Fix eval fail with empty string
Fixes #278

JerryScript-DCO-1.0-Signed-off-by: pius.lee [email protected]
2016-01-13 18:07:32 +03:00
Andrey Shitov 50d124bfc3 Parser optimizations.
- parser is now non-recursive (i.e. parse function is not called recursively in any case);
 - byte-code is now more compact:
    - constants are now not immediately dumped upon occurence, but later - where necessary;
    - assignments are combined with unary / binary operations;
    - binary operations are encoded more compactly in many cases;
 - byte-code arrays are now allocated separately for each scope (so, GC of the scopes now becomes possible);
 - byte-code is dumped directly into corresponding byte-code arrays:
   - linked lists of op_meta are not now used for main code of a scope.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov [email protected]
2015-12-23 14:21:10 +03:00
Hanjoung Lee 17f7bad242 Fix [[HasInstance]] operation for external functions
Related issue: #736

JerryScript-DCO-1.0-Signed-off-by: Hanjoung Lee [email protected]
2015-11-27 12:02:09 +09:00
Zsolt Borbély aa74c3e2e0 Remove duplcation of ecma_reject function
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély [email protected]
2015-11-25 14:01:07 +01:00
Ruben Ayrapetyan 1fe2817457 Introduce parser-time optimization that moves function's argument values to registers.
For functions with the optimization applied:
 - vm puts arguments values immediately to registers without putting them to variables in lexical environment;
 - number of arguments is extracted from corresponding 'reg_var_decl' instruction's argument;
 - for functions that also don't have local variables, lexical environments are not created.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-11-02 17:15:13 +03:00
Ruben Ayrapetyan 46c65985e5 Create [[FormalParameters]] function object's internal property only if corresponding function has non-zero number of formal parameters.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-11-02 17:12:42 +03:00
Ruben Ayrapetyan f24effa629 Read function's scope flags only in ecma_op_create_function_object instead of call sites of the routine.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-11-02 17:12:42 +03:00
Ruben Ayrapetyan da47c671e7 List of lazy instantiated properties' names in ecma_op_object_get_property_names.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-11-02 16:32:31 +03:00
Ruben Ayrapetyan 9c3aa4a003 Improve performance of item 3.l of arrays' [[DefineOwnProperty]] (ecma_op_array_object_define_own_property).
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-11-02 16:32:09 +03:00
Ruben Ayrapetyan 09b4d20718 Use ecma_op_object_get_property_names for property enumeration in built-ins implementation.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-11-02 16:06:44 +03:00
Ruben Ayrapetyan 72208a61ee Remove vm_helper_for_in_enumerate_properties_names helper; introduce ecma_op_object_get_property_names interface for building list of an object's properties.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-11-02 15:22:55 +03:00
Zsolt Borbély 4aaa0ace17 Simplify [[DefineOwnProperty]] usage, use the helper function where possible.
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély [email protected]
2015-10-29 09:26:55 +01:00
Dániel Bátyai 579b1edaa5 Refactor builtins to handle CESU-8 encoded strings.
JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély [email protected]
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai [email protected]
2015-10-15 16:01:10 +02:00
Ruben Ayrapetyan b7c93f170d Remove argument names in function prototypes, declared in headers; fix '*' alignment in headers.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-09-28 18:27:10 +03:00
Andrey Shitov 443673fc5d Update bytecode header structure so that bytecode could be stored independently from hash table and bytecode header.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov [email protected]
2015-09-09 18:07:20 +03:00
Ruben Ayrapetyan 6a6fb3fdfa Extract vm_run_eval from ecma_op_eval_chars_buffer.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-09-09 16:58:52 +03:00
Ruben Ayrapetyan 50fdccc8c9 Lazy instantiation of built-in function object's 'length' properties.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-09-08 15:19:51 +03:00
Ruben Ayrapetyan bcf3396f26 Lazy instantiation of a function object's 'length' and 'prototype' properties.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-09-08 15:19:51 +03:00
Ruben Ayrapetyan a26c454219 Add warn_unused_result attribute to ecma_string_to_utf8_string. Add assertions that specified buffer size is sufficient in places, where return value of ecma_string_to_utf8_string wasn't checked prior to the changes.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-08-31 12:59:43 +03:00
Ruben Ayrapetyan 91aecc3bd0 Introduce parser scope types, add scope flags, indicating whether scope contains a function declaration, a 'try' statement, 'with' statement or 'delete' operator.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-08-27 17:42:45 +03:00
Ruben Ayrapetyan 845b0d5006 Clarify calculation precedence for & and ?.
(a & b ? c : d)-like expressions are changed to ((a & b) ? c : d).

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan [email protected]
2015-08-27 16:32:08 +03:00
Andrey Shitov e4843ece76 Fix processing of elision in array literal.
JerryScript-DCO-1.0-Signed-off-by: Andrey Shitov [email protected]
2015-08-24 14:51:24 +03:00