1/* Copyright JS Foundation and other contributors, http://js.foundation 2 * 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16/* 17 * Global built-in description 18 */ 19 20#include "ecma-builtin-helpers-macro-defines.inc.h" 21 22/* Simple value properties: 23 * (property name, simple value, writable, enumerable, configurable) */ 24 25/* ECMA-262 v5, 15.1.1.3 */ 26SIMPLE_VALUE (LIT_MAGIC_STRING_UNDEFINED, 27 ECMA_VALUE_UNDEFINED, 28 ECMA_PROPERTY_FIXED) 29 30/* Number properties: 31 * (property name, number value, writable, enumerable, configurable) */ 32 33/* ECMA-262 v5, 15.1.1.1 */ 34NUMBER_VALUE (LIT_MAGIC_STRING_NAN, 35 ECMA_BUILTIN_NUMBER_NAN, 36 ECMA_PROPERTY_FIXED) 37 38/* ECMA-262 v5, 15.1.1.2 */ 39NUMBER_VALUE (LIT_MAGIC_STRING_INFINITY_UL, 40 ECMA_BUILTIN_NUMBER_POSITIVE_INFINITY, 41 ECMA_PROPERTY_FIXED) 42 43/* Object properties: 44 * (property name, object pointer getter) */ 45 46/* ECMA-262 v5, 15.1.4.1 */ 47OBJECT_VALUE (LIT_MAGIC_STRING_OBJECT_UL, 48 ECMA_BUILTIN_ID_OBJECT, 49 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 50 51/* ECMA-262 v5, 15.1.4.2 */ 52OBJECT_VALUE (LIT_MAGIC_STRING_FUNCTION_UL, 53 ECMA_BUILTIN_ID_FUNCTION, 54 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 55 56/* ECMA-262 v5, 15.1.4.3 */ 57#if ENABLED (JERRY_BUILTIN_ARRAY) 58OBJECT_VALUE (LIT_MAGIC_STRING_ARRAY_UL, 59 ECMA_BUILTIN_ID_ARRAY, 60 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 61#endif /* ENABLED (JERRY_BUILTIN_ARRAY) */ 62 63#if ENABLED (JERRY_BUILTIN_STRING) 64/* ECMA-262 v5, 15.1.4.4 */ 65OBJECT_VALUE (LIT_MAGIC_STRING_STRING_UL, 66 ECMA_BUILTIN_ID_STRING, 67 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 68#endif /* ENABLED (JERRY_BUILTIN_STRING) */ 69 70#if ENABLED (JERRY_BUILTIN_BOOLEAN) 71/* ECMA-262 v5, 15.1.4.5 */ 72OBJECT_VALUE (LIT_MAGIC_STRING_BOOLEAN_UL, 73 ECMA_BUILTIN_ID_BOOLEAN, 74 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 75#endif /* ENABLED (JERRY_BUILTIN_BOOLEAN) */ 76 77#if ENABLED (JERRY_BUILTIN_NUMBER) 78/* ECMA-262 v5, 15.1.4.6 */ 79OBJECT_VALUE (LIT_MAGIC_STRING_NUMBER_UL, 80 ECMA_BUILTIN_ID_NUMBER, 81 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 82#endif /* ENABLED (JERRY_BUILTIN_NUMBER) */ 83 84#if ENABLED (JERRY_BUILTIN_DATE) 85/* ECMA-262 v5, 15.1.4.7 */ 86OBJECT_VALUE (LIT_MAGIC_STRING_DATE_UL, 87 ECMA_BUILTIN_ID_DATE, 88 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 89#endif /* ENABLED (JERRY_BUILTIN_DATE) */ 90 91#if ENABLED (JERRY_BUILTIN_REGEXP) 92/* ECMA-262 v5, 15.1.4.8 */ 93OBJECT_VALUE (LIT_MAGIC_STRING_REGEXP_UL, 94 ECMA_BUILTIN_ID_REGEXP, 95 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 96#endif /* ENABLED (JERRY_BUILTIN_REGEXP) */ 97 98/* ECMA-262 v5, 15.1.4.9 */ 99OBJECT_VALUE (LIT_MAGIC_STRING_ERROR_UL, 100 ECMA_BUILTIN_ID_ERROR, 101 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 102 103#if ENABLED (JERRY_BUILTIN_ERRORS) 104 105/* ECMA-262 v5, 15.1.4.10 */ 106OBJECT_VALUE (LIT_MAGIC_STRING_EVAL_ERROR_UL, 107 ECMA_BUILTIN_ID_EVAL_ERROR, 108 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 109 110/* ECMA-262 v5, 15.1.4.11 */ 111OBJECT_VALUE (LIT_MAGIC_STRING_RANGE_ERROR_UL, 112 ECMA_BUILTIN_ID_RANGE_ERROR, 113 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 114 115/* ECMA-262 v5, 15.1.4.12 */ 116OBJECT_VALUE (LIT_MAGIC_STRING_REFERENCE_ERROR_UL, 117 ECMA_BUILTIN_ID_REFERENCE_ERROR, 118 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 119 120/* ECMA-262 v5, 15.1.4.13 */ 121OBJECT_VALUE (LIT_MAGIC_STRING_SYNTAX_ERROR_UL, 122 ECMA_BUILTIN_ID_SYNTAX_ERROR, 123 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 124 125/* ECMA-262 v5, 15.1.4.14 */ 126OBJECT_VALUE (LIT_MAGIC_STRING_TYPE_ERROR_UL, 127 ECMA_BUILTIN_ID_TYPE_ERROR, 128 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 129 130/* ECMA-262 v5, 15.1.4.15 */ 131OBJECT_VALUE (LIT_MAGIC_STRING_URI_ERROR_UL, 132 ECMA_BUILTIN_ID_URI_ERROR, 133 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 134#endif /* ENABLED (JERRY_BUILTIN_ERRORS) */ 135 136#if ENABLED (JERRY_BUILTIN_MATH) 137/* ECMA-262 v5, 15.1.5.1 */ 138OBJECT_VALUE (LIT_MAGIC_STRING_MATH_UL, 139 ECMA_BUILTIN_ID_MATH, 140 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 141#endif /* ENABLED (JERRY_BUILTIN_MATH) */ 142#if ENABLED (JERRY_ES2015_BUILTIN_REFLECT) 143/* ECMA-262 v6, 26.1 */ 144OBJECT_VALUE (LIT_MAGIC_STRING_REFLECT_UL, 145 ECMA_BUILTIN_ID_REFLECT, 146 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 147#endif /* ENABLED (JERRY_ES2015_BUILTIN_REFLECT) */ 148 149#if ENABLED (JERRY_BUILTIN_JSON) 150/* ECMA-262 v5, 15.1.5.2 */ 151OBJECT_VALUE (LIT_MAGIC_STRING_JSON_U, 152 ECMA_BUILTIN_ID_JSON, 153 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 154#endif /* ENABLED (JERRY_BUILTIN_JSON) */ 155 156#if ENABLED (JERRY_ES2015_BUILTIN_TYPEDARRAY) 157OBJECT_VALUE (LIT_MAGIC_STRING_ARRAY_BUFFER_UL, 158 ECMA_BUILTIN_ID_ARRAYBUFFER, 159 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 160 161OBJECT_VALUE (LIT_MAGIC_STRING_INT8_ARRAY_UL, 162 ECMA_BUILTIN_ID_INT8ARRAY, 163 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 164 165OBJECT_VALUE (LIT_MAGIC_STRING_UINT8_ARRAY_UL, 166 ECMA_BUILTIN_ID_UINT8ARRAY, 167 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 168 169OBJECT_VALUE (LIT_MAGIC_STRING_INT16_ARRAY_UL, 170 ECMA_BUILTIN_ID_INT16ARRAY, 171 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 172 173OBJECT_VALUE (LIT_MAGIC_STRING_UINT16_ARRAY_UL, 174 ECMA_BUILTIN_ID_UINT16ARRAY, 175 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 176 177OBJECT_VALUE (LIT_MAGIC_STRING_INT32_ARRAY_UL, 178 ECMA_BUILTIN_ID_INT32ARRAY, 179 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 180 181OBJECT_VALUE (LIT_MAGIC_STRING_UINT32_ARRAY_UL, 182 ECMA_BUILTIN_ID_UINT32ARRAY, 183 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 184 185OBJECT_VALUE (LIT_MAGIC_STRING_FLOAT32_ARRAY_UL, 186 ECMA_BUILTIN_ID_FLOAT32ARRAY, 187 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 188 189#if ENABLED (JERRY_NUMBER_TYPE_FLOAT64) 190OBJECT_VALUE (LIT_MAGIC_STRING_FLOAT64_ARRAY_UL, 191 ECMA_BUILTIN_ID_FLOAT64ARRAY, 192 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 193#endif /* ENABLED (JERRY_NUMBER_TYPE_FLOAT64) */ 194 195OBJECT_VALUE (LIT_MAGIC_STRING_UINT8_CLAMPED_ARRAY_UL, 196 ECMA_BUILTIN_ID_UINT8CLAMPEDARRAY, 197 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 198 199#endif /* ENABLED (JERRY_ES2015_BUILTIN_TYPEDARRAY) */ 200 201#if ENABLED (JERRY_ES2015_BUILTIN_PROMISE) 202OBJECT_VALUE (LIT_MAGIC_STRING_PROMISE_UL, 203 ECMA_BUILTIN_ID_PROMISE, 204 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 205#endif /* ENABLED (JERRY_ES2015_BUILTIN_PROMISE) */ 206 207#if ENABLED (JERRY_ES2015_BUILTIN_MAP) 208/* ECMA-262 v6, 23.1.1.1 */ 209OBJECT_VALUE (LIT_MAGIC_STRING_MAP_UL, 210 ECMA_BUILTIN_ID_MAP, 211 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 212#endif /* ENABLED (JERRY_ES2015_BUILTIN_MAP) */ 213 214#if ENABLED (JERRY_ES2015_BUILTIN_SET) 215/* ECMA-262 v6, 23.1.1.1 */ 216OBJECT_VALUE (LIT_MAGIC_STRING_SET_UL, 217 ECMA_BUILTIN_ID_SET, 218 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 219#endif /* ENABLED (JERRY_ES2015_BUILTIN_SET) */ 220 221#if ENABLED (JERRY_ES2015_BUILTIN_WEAKMAP) 222/* ECMA-262 v6, 23.1.1.1 */ 223OBJECT_VALUE (LIT_MAGIC_STRING_WEAKMAP_UL, 224 ECMA_BUILTIN_ID_WEAKMAP, 225 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 226#endif /* ENABLED (JERRY_ES2015_BUILTIN_SET) */ 227 228#if ENABLED (JERRY_ES2015_BUILTIN_WEAKSET) 229/* ECMA-262 v6, 23.1.1.1 */ 230OBJECT_VALUE (LIT_MAGIC_STRING_WEAKSET_UL, 231 ECMA_BUILTIN_ID_WEAKSET, 232 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 233#endif /* ENABLED (JERRY_ES2015_BUILTIN_SET) */ 234 235#if ENABLED (JERRY_ES2015) 236/* ECMA-262 v6, 19.4.1.1 */ 237OBJECT_VALUE (LIT_MAGIC_STRING_SYMBOL_UL, 238 ECMA_BUILTIN_ID_SYMBOL, 239 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 240#endif /* ENABLED (JERRY_ES2015) */ 241 242#if ENABLED (JERRY_ES2015_BUILTIN_DATAVIEW) 243/* ECMA-262 v6, 23.1.1.1 */ 244OBJECT_VALUE (LIT_MAGIC_STRING_DATAVIEW_UL, 245 ECMA_BUILTIN_ID_DATAVIEW, 246 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 247#endif /* ENABLED (JERRY_ES2015_BUILTIN_DATAVIEW */ 248 249#if ENABLED (JERRY_ES2015_BUILTIN_PROXY) 250/* ECMA-262 v6, 26.2.1 */ 251OBJECT_VALUE (LIT_MAGIC_STRING_PROXY_UL, 252 ECMA_BUILTIN_ID_PROXY, 253 ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 254#endif /* ENABLED (JERRY_ES2015_BUILTIN_PROXY) */ 255 256/* Routine properties: 257 * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ 258 259ROUTINE (LIT_MAGIC_STRING_EVAL, ECMA_GLOBAL_EVAL, 1, 1) 260ROUTINE (LIT_MAGIC_STRING_IS_NAN, ECMA_GLOBAL_IS_NAN, 1, 1) 261ROUTINE (LIT_MAGIC_STRING_IS_FINITE, ECMA_GLOBAL_IS_FINITE, 1, 1) 262ROUTINE (LIT_MAGIC_STRING_DECODE_URI, ECMA_GLOBAL_DECODE_URI, 1, 1) 263ROUTINE (LIT_MAGIC_STRING_DECODE_URI_COMPONENT, ECMA_GLOBAL_DECODE_URI_COMPONENT, 1, 1) 264ROUTINE (LIT_MAGIC_STRING_ENCODE_URI, ECMA_GLOBAL_ENCODE_URI, 1, 1) 265ROUTINE (LIT_MAGIC_STRING_ENCODE_URI_COMPONENT, ECMA_GLOBAL_ENCODE_URI_COMPONENT, 1, 1) 266#if ENABLED (JERRY_ES2015) 267INTRINSIC_PROPERTY (LIT_MAGIC_STRING_PARSE_FLOAT, LIT_MAGIC_STRING_PARSE_FLOAT, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 268INTRINSIC_PROPERTY (LIT_MAGIC_STRING_PARSE_INT, LIT_MAGIC_STRING_PARSE_INT, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) 269 270#else /* !ENABLED (JERRY_ES2015) */ 271ROUTINE (LIT_MAGIC_STRING_PARSE_FLOAT, ECMA_GLOBAL_PARSE_FLOAT, 1, 1) 272ROUTINE (LIT_MAGIC_STRING_PARSE_INT, ECMA_GLOBAL_PARSE_INT, 2, 2) 273#endif /* ENABLED (JERRY_ES2015) */ 274#if ENABLED (JERRY_BUILTIN_ANNEXB) 275ROUTINE (LIT_MAGIC_STRING_ESCAPE, ECMA_GLOBAL_ESCAPE, 1, 1) 276ROUTINE (LIT_MAGIC_STRING_UNESCAPE, ECMA_GLOBAL_UNESCAPE, 1, 1) 277#endif /* ENABLED (JERRY_BUILTIN_ANNEXB) */ 278 279#include "ecma-builtin-helpers-macro-undefs.inc.h" 280