aboutsummaryrefslogtreecommitdiff
path: root/jerry-core/ecma/base/ecma-globals.h
diff options
context:
space:
mode:
authorRobert Fancsik <robert.fancsik@h-lab.eu>2021-02-17 16:07:54 +0100
committerGitHub <noreply@github.com>2021-02-17 16:07:54 +0100
commit488a0bf7e8ebe9cf62ce270f5132f707595c0bad (patch)
treeb67e0f68db74e46c74fb03bf3a2d78aee05d6c50 /jerry-core/ecma/base/ecma-globals.h
parent67e7e89c8eb1a8da40bdd7390c0462c9617609e1 (diff)
Improve date internals (#4593)
- Optimize year from time calculation - Force arithmetic operations to int32_t/int64_t whenever possible - Optimize number conversion in date parse - Cache local TZA of the date object - Fix a bug in Date.parse timezone parsing JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik robert.fancsik@h-lab.eu
Diffstat (limited to 'jerry-core/ecma/base/ecma-globals.h')
-rw-r--r--jerry-core/ecma/base/ecma-globals.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/jerry-core/ecma/base/ecma-globals.h b/jerry-core/ecma/base/ecma-globals.h
index 68598662..ed4a0fab 100644
--- a/jerry-core/ecma/base/ecma-globals.h
+++ b/jerry-core/ecma/base/ecma-globals.h
@@ -945,6 +945,8 @@ typedef struct
union
{
ecma_value_t value; /**< value of the object (e.g. boolean, number, string, etc.) */
+ ecma_value_t date; /**< Date object [[DateValue]] internal property */
+ int32_t tza; /**< TimeZone adjustment for date objects */
uint32_t length; /**< length related property (e.g. length of ArrayBuffer) */
ecma_value_t target; /**< [[ProxyTarget]] internal property */
ecma_value_t head; /**< points to the async generator task queue head item */
@@ -2313,6 +2315,28 @@ typedef struct
} u;
} ecma_mapped_arguments_t;
+#if JERRY_ESNEXT
+
+/**
+ * Date object descriptor flags
+ */
+typedef enum
+{
+ ECMA_DATE_TZA_NONE = 0,
+ ECMA_DATE_TZA_SET = 1 << 0,
+} ecma_date_object_flags_t;
+
+/**
+ * Definition of date object
+ */
+typedef struct
+{
+ ecma_extended_object_t header; /**< object header */
+ ecma_number_t date_value; /**< [[DateValue]] internal property */
+} ecma_date_object_t;
+
+#endif /* JERRY_ESNEXT */
+
/**
* @}
* @}