Ruben Ayrapetyan
57f645c18c
Passing ecma_value_t arguments by const reference instead of by value.
2015-01-23 20:22:21 +03:00
Ruben Ayrapetyan
005b5370fc
Switching to g++ and corresponding changes according to C++ requirements.
2015-01-16 17:27:02 +03:00
Ruben Ayrapetyan
42c44830ce
Removing trailing whitespace from sources.
2014-12-19 14:35:17 +03:00
Ruben Ayrapetyan
84294018a3
Replacing dynamically sized on-stack arrays with heap allocated arrays defined through MEM_DEFINE_LOCAL_ARRAY.
2014-12-18 13:56:45 +03:00
Ruben Ayrapetyan
d836dc32af
Introducing ECMA_OP_TO_NUMBER_TRY_CATCH and ECMA_OP_TO_NUMBER_FINALIZE macroses.
...
- the ECMA_OP_TO_NUMBER_TRY_CATCH macro gets number from given value,
converting the value to number if it's type is different,
and catching possible conversion exceptions;
- using the macroses instead of ecma_op_to_number to reduce allocator invocations
in several routines with arguments that are likely to be numbers.
2014-12-15 23:08:34 +03:00
Ruben Ayrapetyan
d2f6b36cf7
Implementing Math.sin and Math.cos built-in routines.
2014-12-04 11:39:23 +03:00
Ruben Ayrapetyan
90fccc04ba
Passing property descriptors by const ref instead of by value.
2014-12-03 21:57:11 +03:00
Ruben Ayrapetyan
3190089818
Introducing getter and setter for named data property's value field, ecma_named_data_property_assign_value interface; using boolean flags for 'Writable', 'Enumerable' and 'Configurable' attributes values while passing them in routine arguments.
2014-12-03 15:45:58 +03:00
Ruben Ayrapetyan
0d870a1e74
Representing ecma_value_t as integer instead of structure with bit-fields, adding corresponding field accessors.
2014-11-27 17:34:03 +03:00
Ruben Ayrapetyan
815309c7e9
Introducing ecma_get_[type]_from_value, ecma_get_[type]_from_completion_value and ecma_get_completion_value_value interfaces.
2014-11-27 14:19:53 +03:00
Ruben Ayrapetyan
7b3eaf146b
Introducing ecma_is_value_{number,string,object} for checking type of ecma-value.
2014-11-20 14:21:33 +03:00
Ruben Ayrapetyan
857e66fb98
Revert "Calling routine for instantiating built-ins' properties only if property name is a magic string."
...
Reverting commit 1dd7d626967110c3a0f14c40479bc054baf04b3f because of performance degradation on ARM Linux.
The degradation requires further investigation.
2014-11-14 18:04:45 +03:00
Ruben Ayrapetyan
82fe067fc9
Calling routine for instantiating built-ins' properties only if property name is a magic string.
2014-11-14 14:40:36 +03:00
Ruben Ayrapetyan
477a694622
Introducing ECMA_GET_NON_NULL_POINTER macro that is ECMA_GET_POINTER without NULL pointer check.
...
Replacing invocations of ECMA_GET_POINTER passing non-NULL argument with introduced ECMA_GET_NON_NULL_POINTER.
2014-11-13 19:09:13 +03:00
Ruben Ayrapetyan
05cf2dbe04
Providing cp_minimal build mode.
...
In the mode built-in objects except Global, Object, Object.prototype, Function,
Function.prototype, [[ThrowTypeError]] and CompactProfileError are disabled.
Making default builds (without cp cp_minimal modes set) to not define CONFIG_ECMA_COMPACT_PROFILE.
Removing some tests that depend on 'eval'-like functionality or CompactProfileError built-in from pre-commit testing.
2014-10-31 18:37:55 +03:00
Ruben Ayrapetyan
5c4d2085a1
Fixing build without CONFIG_ECMA_COMPACT_PROFILE.
2014-10-31 16:02:30 +03:00
Ruben Ayrapetyan
b4bd0bfb4c
Correctly setting [[Extensible]] property of built-in objects.
2014-10-30 19:39:54 +03:00
Ruben Ayrapetyan
ac710dd0b5
Implementing [[ThrowTypeError]] built-in Function object.
2014-10-30 17:22:33 +03:00
Ruben Ayrapetyan
4625d5b90a
Changing value of CompactProfileError built-in's 'length' property to 0.
2014-10-30 17:22:33 +03:00
Ruben Ayrapetyan
4160262ce8
Implementing EvalError, RangeError, SyntaxError, URIError built-ins and corresponding prototype built-in objects.
2014-10-30 14:28:44 +03:00
Ruben Ayrapetyan
66cb7e316d
Implementing ReferenceError and ReferenceError.prototype built-ins.
2014-10-29 21:28:56 +03:00
Ruben Ayrapetyan
6991b26e04
Implementing TypeError and TypeError.prototype built-ins. Fixing Error.prototype.toString implementation.
2014-10-29 21:15:36 +03:00
Ruben Ayrapetyan
4e6f5c7716
Implementing Error and Error.prototype built-in objects.
2014-10-29 18:49:31 +03:00
Ruben Ayrapetyan
a74c77a1d5
Arrangement of built-in objects implementation (description of built-ins with *.inc.h headers, reducing code duplication).
2014-10-29 15:46:31 +03:00
Ruben Ayrapetyan
6078a4c854
Describing Boolean.prototype with src/libecmabuiltins/ecma-builtin-boolean-prototype.inc.h header.
2014-10-28 20:38:26 +03:00
Ruben Ayrapetyan
f9e809e2e8
Removing ecma_builtin_*_get_routine_parameters_number routines.
2014-10-28 20:12:03 +03:00
Ruben Ayrapetyan
87310e43c6
On-demand built-ins instantiation.
2014-10-28 17:52:07 +03:00
Ruben Ayrapetyan
e35ec87209
Making built-ins' property numbers to be stored as static const instead of extern const.
2014-10-28 17:32:31 +03:00
Ruben Ayrapetyan
fc751b0f15
Arranging JERRY_UNIMPLEMENTED macro usages and adding comments to each invocation of the macro.
2014-10-27 19:48:03 +03:00
Ruben Ayrapetyan
feedb37b20
Replacing way to specify ecma-char encoding and ecma-number type: instead of defining it like CONFIG_ECMA_NUMBER_FLOAT32 now it should be defined like CONFIG_ECMA_NUMBER_TYPE=CONFIG_ECMA_NUMBER_FLOAT32.
2014-10-23 18:33:10 +04:00
Ruben Ayrapetyan
42abd7d63a
Moving ecma-number mathematical constants to src/libecmaobjects/ecma-globals.h.
2014-10-20 20:48:36 +04:00
Ruben Ayrapetyan
3eed2d0d4c
Renaming ecma_op_number_{add,subtract,multiply,divide} -> ecma_number_{add,subtract,multiply,divide}.
...
Moving ecma_number_{add,subtract,multiply,divide} to src/libecmaobjects/ecma-helpers-number.c.
Moving abs, sqrt, ln, exp, calculation helpers from src/libecmabuiltins/ecma-builtin-math-object.c to src/libecmaobjects/ecma-helpers-number.c.
2014-10-20 18:48:10 +04:00
Ruben Ayrapetyan
b52ca8cca5
Fixing Number.prototype.toString.
2014-10-20 17:27:51 +04:00
Ruben Ayrapetyan
8f5160d6bf
Implementing ToObject for number arguments.
2014-10-20 15:39:09 +04:00
Ruben Ayrapetyan
1b74687989
Implementing ToObject for boolean arguments.
2014-10-20 15:26:24 +04:00
Ruben Ayrapetyan
9c1428de29
Implementing instantiation of prototype property Object built-in object.
2014-10-16 21:47:25 +04:00
Ruben Ayrapetyan
e54023caf2
Throwing CompactProfileError in cases required by Compact Profile.
2014-10-16 21:26:23 +04:00
Ruben Ayrapetyan
6520779f46
Initialization of [[PrimitiveValue]] properties of built-in String.prototype, Number.prototype and Boolean.prototype objects.
2014-10-16 20:17:29 +04:00
Ruben Ayrapetyan
ed960b78db
Introducing CompactProfileError built-in object.
2014-10-16 19:49:47 +04:00
Ruben Ayrapetyan
fce52b42c5
Fixing incorrect comments in src/libecmabuiltins/ecma-builtin-boolean-object.c.
2014-10-16 19:46:07 +04:00
Ilmir Usmanov
90789453ba
Fix 'prototype' property.
2014-10-16 18:07:56 +04:00
Ruben Ayrapetyan
8a58e0b9d5
Implementation of Boolean and Boolean.prototype built-in objects.
2014-10-16 14:45:55 +04:00
Ruben Ayrapetyan
c231893b28
Implementation of Number built-in object and partial implementation of Number.prototype built-in object.
...
Fixing [[Prototype]] and [[Class]] properties of Array and String built-in objects.
2014-10-16 13:25:47 +04:00
Ruben Ayrapetyan
6430a104b3
ecma_ref_ecma_string -> ecma_copy_or_ref_ecma_string: copying ecma-string when the string's reference counter reaches maximum value.
2014-10-13 18:59:07 +04:00
Ruben Ayrapetyan
47d384c565
Partial implementation of the Array.prototype built-in object.
2014-09-26 20:07:45 +04:00
Ruben Ayrapetyan
add24b93fe
Fixing various FIXMEs that depend on Function.prototype built-in.
2014-09-26 19:36:14 +04:00
Ruben Ayrapetyan
bef5289cb6
Adding stubs for Function and Function.prototype built-ins.
2014-09-26 19:26:17 +04:00
Ruben Ayrapetyan
2d332bc98b
Implementing 'Object.prototype.toString' and 'Object.prototype.valueOf' built-ins.
2014-09-26 18:50:46 +04:00
Ruben Ayrapetyan
f82ae90040
Fixing various FIXMEs that depend on built-in Object constructor and Object.prototype.
2014-09-26 18:33:50 +04:00
Ruben Ayrapetyan
a0a2ec2cea
Replacing items of ecma_object_class_t with corresponding ecma magic strings.
2014-09-26 18:04:42 +04:00