JnDirectFields.h 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft Corporation and contributors. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. //
  6. // NOTE: This file is intended to be "#include" multiple times. The call site should define various
  7. // macros to be executed for each entry. Macros that are not provided will be given a default,
  8. // empty implementation.
  9. //
  10. //
  11. // NOTE: After modifying this file you might observe unit test failures, especially jd/Debugger unit test failures.
  12. // This can be caused by the build-generated bytecode files for the Intl.js and Promise.js becoming invalidated.
  13. // Run RegenAllByteCode.cmd to update bytecode. (Note: this will build and regen all variants and may take some time.)
  14. //
  15. #if !defined(ENTRY_INTERNAL_SYMBOL)
  16. #define ENTRY_INTERNAL_SYMBOL
  17. #endif
  18. #if !defined(ENTRY_SYMBOL)
  19. #define ENTRY_SYMBOL(name, description)
  20. #endif
  21. #if !defined(ENTRY)
  22. #define ENTRY(name)
  23. #endif
  24. #if !defined(ENTRY2)
  25. #define ENTRY2(name, str)
  26. #endif
  27. ENTRY_SYMBOL(_symbolHasInstance, _u("Symbol.hasInstance"))
  28. ENTRY_SYMBOL(_symbolIsConcatSpreadable, _u("Symbol.isConcatSpreadable"))
  29. ENTRY_SYMBOL(_symbolIterator, _u("Symbol.iterator"))
  30. ENTRY_SYMBOL(_symbolMatch, _u("Symbol.match"))
  31. ENTRY_SYMBOL(_symbolReplace, _u("Symbol.replace"))
  32. ENTRY_SYMBOL(_symbolSearch, _u("Symbol.search"))
  33. ENTRY_SYMBOL(_symbolSplit, _u("Symbol.split"))
  34. ENTRY_SYMBOL(_symbolSpecies, _u("Symbol.species"))
  35. ENTRY_SYMBOL(_symbolToPrimitive, _u("Symbol.toPrimitive"))
  36. ENTRY_SYMBOL(_symbolToStringTag, _u("Symbol.toStringTag"))
  37. ENTRY_SYMBOL(_symbolUnscopables, _u("Symbol.unscopables"))
  38. // math functions must remain contiguous for quick modification check
  39. ENTRY(abs)
  40. ENTRY(acos)
  41. ENTRY(asin)
  42. ENTRY(atan)
  43. ENTRY(atan2)
  44. ENTRY(ceil)
  45. ENTRY(cos)
  46. ENTRY(exp)
  47. ENTRY(floor)
  48. ENTRY(log)
  49. ENTRY(LOG10E)
  50. ENTRY(LOG2E)
  51. ENTRY(min)
  52. ENTRY(PI)
  53. ENTRY(pow)
  54. ENTRY(random)
  55. ENTRY(round)
  56. ENTRY(sin)
  57. ENTRY(sqrt)
  58. ENTRY(tan)
  59. ENTRY(log10)
  60. ENTRY(log2)
  61. ENTRY(log1p)
  62. ENTRY(expm1)
  63. ENTRY(cosh)
  64. ENTRY(sinh)
  65. ENTRY(tanh)
  66. ENTRY(acosh)
  67. ENTRY(asinh)
  68. ENTRY(atanh)
  69. ENTRY(hypot)
  70. ENTRY(trunc)
  71. ENTRY(sign)
  72. ENTRY(cbrt)
  73. ENTRY(imul)
  74. ENTRY(clz32)
  75. ENTRY(fround)
  76. // End math functions
  77. ENTRY(load)
  78. ENTRY(store)
  79. ENTRY2(and_, _u("and"))
  80. ENTRY2(or_, _u("or"))
  81. ENTRY2(xor_, _u("xor"))
  82. ENTRY(add)
  83. ENTRY(all)
  84. ENTRY(anchor)
  85. ENTRY(apply)
  86. ENTRY(Array)
  87. ENTRY(assign)
  88. ENTRY(atEnd)
  89. ENTRY(big)
  90. ENTRY(bind)
  91. ENTRY(blink)
  92. ENTRY(bold)
  93. ENTRY2(boolean_, _u("boolean")) // "boolean" cannot be an identifier in C++ so using "boolean_" instead
  94. ENTRY(Boolean)
  95. ENTRY(JsBuiltIn)
  96. ENTRY(call)
  97. ENTRY(CanvasPixelArray)
  98. ENTRY(cast)
  99. ENTRY2(catch_, _u("catch")) // "catch" cannot be an identifier in C++ so using "catch_" instead
  100. ENTRY(charAt)
  101. ENTRY(charCodeAt)
  102. ENTRY(codePointAt)
  103. ENTRY(clear)
  104. ENTRY(copyWithin)
  105. ENTRY(CollectGarbage)
  106. ENTRY(concat)
  107. ENTRY(construct)
  108. ENTRY(constructor)
  109. ENTRY(ConversionError)
  110. ENTRY(create)
  111. ENTRY(date)
  112. ENTRY(Date)
  113. ENTRY(decodeURI)
  114. ENTRY(decodeURIComponent)
  115. ENTRY2(default_, _u("default"))
  116. ENTRY2(delete_, _u("delete")) // "delete" cannot be an identifier in C++ so using "delete_" instead
  117. ENTRY2(star_, _u("*"))
  118. ENTRY(deleteProperty)
  119. ENTRY(description)
  120. ENTRY(detach)
  121. ENTRY(done)
  122. ENTRY(E)
  123. ENTRY(encodeURI)
  124. ENTRY(encodeURIComponent)
  125. ENTRY(endsWith)
  126. ENTRY(entries)
  127. ENTRY(enumerate)
  128. ENTRY(Enumerator)
  129. ENTRY(EPSILON)
  130. ENTRY(escape)
  131. ENTRY(Error)
  132. ENTRY(eval)
  133. ENTRY(EvalError)
  134. ENTRY(every)
  135. ENTRY(exec)
  136. ENTRY2(false_, _u("false")) // "false" cannot be an identifier in C++ so using "false_" instead
  137. ENTRY(flags)
  138. ENTRY(flat)
  139. ENTRY(flatMap)
  140. ENTRY(fill)
  141. ENTRY(filter)
  142. ENTRY(finally)
  143. ENTRY(find)
  144. ENTRY(findIndex)
  145. ENTRY(fixed)
  146. ENTRY(fontcolor)
  147. ENTRY(fontsize)
  148. ENTRY2(for_, _u("for")) // "for" cannot be an identifier in C++ so using "for_" instead
  149. ENTRY(forEach)
  150. ENTRY(freeze)
  151. ENTRY(from)
  152. ENTRY(fromCharCode)
  153. ENTRY(fromCodePoint)
  154. ENTRY(fromEntries)
  155. ENTRY(function)
  156. ENTRY(Function)
  157. ENTRY(getDate)
  158. ENTRY(getDay)
  159. ENTRY(getFullYear)
  160. ENTRY(getHours)
  161. ENTRY(getMilliseconds)
  162. ENTRY(getMinutes)
  163. ENTRY(getMonth)
  164. ENTRY(GetObject)
  165. ENTRY(getOwnPropertyDescriptor)
  166. ENTRY(getOwnPropertyNames)
  167. ENTRY(getOwnPropertySymbols)
  168. ENTRY(getSeconds)
  169. ENTRY(getTime)
  170. ENTRY(getTimezoneOffset)
  171. ENTRY(getUTCDate)
  172. ENTRY(getUTCDay)
  173. ENTRY(getUTCFullYear)
  174. ENTRY(getUTCHours)
  175. ENTRY(getUTCMilliseconds)
  176. ENTRY(getUTCMinutes)
  177. ENTRY(getUTCMonth)
  178. ENTRY(getUTCSeconds)
  179. ENTRY(getVarDate)
  180. ENTRY(getYear)
  181. ENTRY(has)
  182. ENTRY(hasInstance)
  183. ENTRY(hasOwnProperty)
  184. ENTRY(includes)
  185. ENTRY(indexOf)
  186. ENTRY(Infinity)
  187. ENTRY(Intl)
  188. ENTRY(invokeJit)
  189. ENTRY(is)
  190. ENTRY(isArray)
  191. ENTRY(isConcatSpreadable)
  192. ENTRY(isExtensible)
  193. ENTRY(isFinite)
  194. ENTRY(isFrozen)
  195. ENTRY(isInteger)
  196. ENTRY(isNaN)
  197. ENTRY(isPrototypeOf)
  198. ENTRY(isSafeInteger)
  199. ENTRY(isSealed)
  200. ENTRY(isView)
  201. ENTRY(italics)
  202. ENTRY(item)
  203. ENTRY(iterator)
  204. ENTRY(join)
  205. ENTRY(JSON)
  206. ENTRY(keyFor)
  207. ENTRY(keys)
  208. ENTRY(lastIndexOf)
  209. ENTRY(length)
  210. ENTRY(link)
  211. ENTRY(LN10)
  212. ENTRY(LN2)
  213. ENTRY(map)
  214. ENTRY(Map)
  215. ENTRY(Math)
  216. // Wasm
  217. ENTRY(WebAssembly)
  218. ENTRY(Module)
  219. ENTRY(Instance)
  220. ENTRY(Memory)
  221. ENTRY(Table)
  222. ENTRY(CompileError)
  223. ENTRY(RuntimeError)
  224. ENTRY(LinkError)
  225. ENTRY(validate)
  226. ENTRY(compileStreaming)
  227. ENTRY(instantiate)
  228. ENTRY(instantiateStreaming)
  229. ENTRY(grow)
  230. ENTRY(module)
  231. ENTRY(instance)
  232. ENTRY(kind)
  233. ENTRY(exports)
  234. ENTRY(imports)
  235. ENTRY(customSections)
  236. ENTRY(initial)
  237. ENTRY(maximum)
  238. ENTRY(shared)
  239. ENTRY(element)
  240. ENTRY(low)
  241. ENTRY(high)
  242. ENTRY(arrayBuffer)
  243. // wabt
  244. ENTRY(wabt)
  245. ENTRY(convertWast2Wasm)
  246. ENTRY(spec)
  247. ENTRY(commands)
  248. ENTRY(type)
  249. ENTRY(line)
  250. ENTRY(action)
  251. ENTRY(field)
  252. ENTRY(args)
  253. ENTRY(as)
  254. ENTRY(text)
  255. ENTRY(expected)
  256. // End Wasm
  257. ENTRY(max)
  258. ENTRY(MAX_SAFE_INTEGER)
  259. ENTRY(MAX_VALUE)
  260. ENTRY(match)
  261. ENTRY(message)
  262. ENTRY(MIN_SAFE_INTEGER)
  263. ENTRY(MIN_VALUE)
  264. ENTRY(moveFirst)
  265. ENTRY(moveNext)
  266. ENTRY(NaN)
  267. ENTRY(name)
  268. ENTRY(next)
  269. ENTRY(normalize)
  270. ENTRY(now)
  271. ENTRY(null)
  272. ENTRY(Number)
  273. ENTRY(number)
  274. ENTRY(BigInt)
  275. ENTRY(NEGATIVE_INFINITY)
  276. ENTRY(ownKeys)
  277. ENTRY(object)
  278. ENTRY(Object)
  279. ENTRY2(object_Arguments, _u("[object Arguments]"))
  280. ENTRY2(object_Array, _u("[object Array]"))
  281. ENTRY2(object_Boolean, _u("[object Boolean]"))
  282. ENTRY2(object_Date, _u("[object Date]"))
  283. ENTRY2(object_Error, _u("[object Error]"))
  284. ENTRY2(object_Function, _u("[object Function]"))
  285. ENTRY2(object_Number, _u("[object Number]"))
  286. ENTRY2(object_Object, _u("[object Object]"))
  287. ENTRY2(object_RegExp, _u("[object RegExp]"))
  288. ENTRY2(object_String, _u("[object String]"))
  289. ENTRY(of)
  290. ENTRY(parse)
  291. ENTRY(parseFloat)
  292. ENTRY(parseInt)
  293. ENTRY(pop)
  294. ENTRY(POSITIVE_INFINITY)
  295. ENTRY(preventExtensions)
  296. ENTRY(propertyIsEnumerable)
  297. ENTRY(prototype)
  298. ENTRY(proxy)
  299. ENTRY(Proxy)
  300. ENTRY(push)
  301. ENTRY(race)
  302. ENTRY(RangeError)
  303. ENTRY(raw)
  304. ENTRY(reduce)
  305. ENTRY(reduceRight)
  306. ENTRY(ReferenceError)
  307. ENTRY(Reflect)
  308. ENTRY(RegExpError)
  309. ENTRY(reject)
  310. ENTRY(replace)
  311. ENTRY(resolve)
  312. ENTRY2(return_, _u("return")) // "return" cannot be an identifier in C++ so using "return_" instead
  313. ENTRY(reverse)
  314. ENTRY(revocable)
  315. ENTRY(revoke)
  316. ENTRY(RegExp)
  317. ENTRY(repeat)
  318. ENTRY(seal)
  319. ENTRY(search)
  320. ENTRY(Set)
  321. ENTRY(setDate)
  322. ENTRY(setFullYear)
  323. ENTRY(setHours)
  324. ENTRY(setMilliseconds)
  325. ENTRY(setMinutes)
  326. ENTRY(setMonth)
  327. ENTRY(setSeconds)
  328. ENTRY(setTime)
  329. ENTRY(setUTCDate)
  330. ENTRY(setUTCFullYear)
  331. ENTRY(setUTCHours)
  332. ENTRY(setUTCMilliseconds)
  333. ENTRY(setUTCMinutes)
  334. ENTRY(setUTCMonth)
  335. ENTRY(setUTCSeconds)
  336. ENTRY(setYear)
  337. ENTRY(shift)
  338. ENTRY(size)
  339. ENTRY(slice)
  340. ENTRY(some)
  341. ENTRY(sort)
  342. ENTRY(source)
  343. ENTRY(species)
  344. ENTRY(splice)
  345. ENTRY(split)
  346. ENTRY(SQRT1_2)
  347. ENTRY(SQRT2)
  348. ENTRY(strike)
  349. ENTRY(string)
  350. ENTRY(String)
  351. ENTRY(sub)
  352. ENTRY(substring)
  353. ENTRY(substr)
  354. ENTRY(sup)
  355. ENTRY(stack)
  356. ENTRY(stackTraceLimit)
  357. ENTRY(startsWith)
  358. ENTRY(stringify)
  359. ENTRY(symbol)
  360. ENTRY(Symbol)
  361. ENTRY(SyntaxError)
  362. ENTRY(test)
  363. ENTRY(then)
  364. ENTRY2(throw_, _u("throw")) // "throw" cannot be an identifier in C++ so using "throw_" instead
  365. ENTRY(toDateString)
  366. ENTRY(toExponential)
  367. ENTRY(toFixed)
  368. ENTRY(toISOString)
  369. ENTRY(toJSON)
  370. ENTRY(toLocaleDateString)
  371. ENTRY(toLocaleLowerCase)
  372. ENTRY(toLocaleString)
  373. ENTRY(toLocaleTimeString)
  374. ENTRY(toLocaleUpperCase)
  375. ENTRY(toLowerCase)
  376. ENTRY(toPrecision)
  377. ENTRY(toPrimitive)
  378. ENTRY(toString)
  379. ENTRY(toStringTag)
  380. ENTRY(toTimeString)
  381. ENTRY(toUpperCase)
  382. ENTRY(toUTCString)
  383. ENTRY(trim)
  384. ENTRY(trimLeft)
  385. ENTRY(trimStart)
  386. ENTRY(trimRight)
  387. ENTRY(trimEnd)
  388. ENTRY2(true_, _u("true")) // "true_" cannot be an identifier in C++ so using "true_" instead
  389. ENTRY(TypeError)
  390. ENTRY(undefined)
  391. ENTRY(unescape)
  392. ENTRY(unknown)
  393. ENTRY(unscopables)
  394. ENTRY(unshift)
  395. ENTRY(URIError)
  396. ENTRY(UTC)
  397. ENTRY(valueOf)
  398. ENTRY(values)
  399. ENTRY(WeakMap)
  400. ENTRY(WeakSet)
  401. ENTRY(WinRTError)
  402. ENTRY(write)
  403. ENTRY(writeln)
  404. ENTRY(setNonUserCodeExceptions)
  405. ENTRY(debuggerEnabled)
  406. ENTRY(enumerable)
  407. ENTRY(configurable)
  408. ENTRY(writable)
  409. ENTRY(value)
  410. ENTRY(get)
  411. ENTRY(getPrototypeOf)
  412. ENTRY(setPrototypeOf)
  413. ENTRY(set)
  414. ENTRY(defineProperty)
  415. ENTRY(defineProperties)
  416. ENTRY(toGMTString)
  417. ENTRY(compile)
  418. ENTRY(global)
  419. ENTRY(lastIndex)
  420. ENTRY(multiline)
  421. ENTRY(dotAll)
  422. ENTRY(ignoreCase)
  423. ENTRY(unicode)
  424. ENTRY(sticky)
  425. ENTRY(byteOffset)
  426. ENTRY(byteLength)
  427. ENTRY(buffer)
  428. ENTRY(BYTES_PER_ELEMENT)
  429. ENTRY(ArrayBuffer)
  430. ENTRY(Int8Array)
  431. ENTRY(Int16Array)
  432. ENTRY(Int32Array)
  433. ENTRY(Uint8Array)
  434. ENTRY(Uint8ClampedArray)
  435. ENTRY(Uint16Array)
  436. ENTRY(Uint32Array)
  437. ENTRY(Float32Array)
  438. ENTRY(Float64Array)
  439. ENTRY(CharArray)
  440. ENTRY(Int64Array)
  441. ENTRY(Uint64Array)
  442. ENTRY(BooleanArray)
  443. ENTRY(DataView)
  444. ENTRY(setInt8)
  445. ENTRY(setUint8)
  446. ENTRY(setInt16)
  447. ENTRY(setUint16)
  448. ENTRY(setInt32)
  449. ENTRY(setUint32)
  450. ENTRY(setFloat32)
  451. ENTRY(setFloat64)
  452. ENTRY(getInt8)
  453. ENTRY(getUint8)
  454. ENTRY(getInt16)
  455. ENTRY(getUint16)
  456. ENTRY(getInt32)
  457. ENTRY(getUint32)
  458. ENTRY(getFloat32)
  459. ENTRY(getFloat64)
  460. ENTRY(subarray)
  461. ENTRY(Debug)
  462. ENTRY(caller)
  463. ENTRY(callee)
  464. ENTRY(arguments)
  465. ENTRY($_)
  466. ENTRY($1)
  467. ENTRY($2)
  468. ENTRY($3)
  469. ENTRY($4)
  470. ENTRY($5)
  471. ENTRY($6)
  472. ENTRY($7)
  473. ENTRY($8)
  474. ENTRY($9)
  475. ENTRY(index)
  476. ENTRY(input)
  477. ENTRY(lastMatch)
  478. ENTRY(lastParen)
  479. ENTRY(leftContext)
  480. ENTRY(rightContext)
  481. ENTRY(options)
  482. ENTRY2(__instance, _u("$__instance"))
  483. ENTRY2(Small, _u("small"))
  484. ENTRY2($Ampersand, _u("$&"))
  485. ENTRY2($Plus, _u("$+"))
  486. ENTRY2($BackTick, _u("$`"))
  487. ENTRY2($Tick, _u("$\'"))
  488. ENTRY(__defineGetter__)
  489. ENTRY(__defineSetter__)
  490. ENTRY(__lookupGetter__)
  491. ENTRY(__lookupSetter__)
  492. ENTRY(__proto__)
  493. // Intl
  494. #ifdef INTL_ENTRY
  495. #undef INTL_ENTRY
  496. #endif
  497. #define INTL_ENTRY(id, func) ENTRY(id)
  498. #include "../Library/IntlExtensionObjectBuiltIns.h"
  499. #undef INTL_ENTRY
  500. ENTRY(Common)
  501. ENTRY(__initializedIntlObject)
  502. ENTRY(__locale)
  503. ENTRY(__relevantExtensionKeys)
  504. ENTRY(format)
  505. ENTRY(isValid)
  506. ENTRY(locale)
  507. ENTRY(localeMatcher)
  508. ENTRY(localeWithoutSubtags)
  509. ENTRY(resolvedOptions)
  510. ENTRY(subTags)
  511. ENTRY(supportedLocalesOf)
  512. ENTRY(winglob)
  513. ENTRY(platform)
  514. ENTRY(formatToParts)
  515. ENTRY(co)
  516. ENTRY(kn)
  517. ENTRY(kf)
  518. ENTRY(nu)
  519. ENTRY(ca)
  520. ENTRY(hc)
  521. ENTRY(upper)
  522. ENTRY(lower)
  523. ENTRY(base)
  524. ENTRY(accent)
  525. ENTRY2(case_, _u("case"))
  526. ENTRY(variant)
  527. ENTRY(code)
  528. ENTRY(decimal)
  529. ENTRY(percent)
  530. ENTRY(NumberFormatStyle)
  531. ENTRY(NumberFormatCurrencyDisplay)
  532. ENTRY(CollatorSensitivity)
  533. ENTRY(CollatorCaseFirst)
  534. ENTRY(LocaleDataKind)
  535. ENTRY(DateToLocaleString)
  536. ENTRY(DateToLocaleDateString)
  537. ENTRY(DateToLocaleTimeString)
  538. ENTRY(NumberToLocaleString)
  539. ENTRY(StringLocaleCompare)
  540. ENTRY(BuiltInFunctionID)
  541. // This symbol is not part of the regular Symbol API and is only used in rare circumstances in Intl.js for backwards compatibility
  542. // with the Intl v1 spec. It is visible to the user only using Object.getOwnPropertySymbols(Intl.NumberFormat.call(new Intl.NumberFormat())).
  543. ENTRY(FallbackSymbol)
  544. ENTRY_SYMBOL(_intlFallbackSymbol, _u("Intl.FallbackSymbol"))
  545. ENTRY(NumberFormat)
  546. ENTRY(__currency)
  547. ENTRY(__currencyDisplay)
  548. ENTRY(__currencyDisplayToUse)
  549. ENTRY(__formatterToUse)
  550. ENTRY(__initializedNumberFormat)
  551. ENTRY(__maximumFractionDigits)
  552. ENTRY(__maximumSignificantDigits)
  553. ENTRY(__minimumFractionDigits)
  554. ENTRY(__minimumIntegerDigits)
  555. ENTRY(__minimumSignificantDigits)
  556. ENTRY(__numberingSystem)
  557. ENTRY(__templateString)
  558. ENTRY(__useGrouping)
  559. ENTRY(currency)
  560. ENTRY(currencyDisplay)
  561. ENTRY(currencyDisplayToUse)
  562. ENTRY(formatterToUse)
  563. ENTRY(maximumFractionDigits)
  564. ENTRY(maximumSignificantDigits)
  565. ENTRY(minimumFractionDigits)
  566. ENTRY(minimumIntegerDigits)
  567. ENTRY(minimumSignificantDigits)
  568. ENTRY(numberingSystem)
  569. ENTRY(useGrouping)
  570. ENTRY(Collator)
  571. ENTRY(__boundCompare)
  572. ENTRY(__collation)
  573. ENTRY(__initializedCollator)
  574. ENTRY(compare)
  575. ENTRY(ignorePunctuation)
  576. ENTRY(numeric)
  577. ENTRY(sensitivity)
  578. ENTRY(sensitivityEnum)
  579. ENTRY(caseFirstEnum)
  580. ENTRY(usage)
  581. ENTRY(DateTimeFormat)
  582. ENTRY(__boundFormat)
  583. ENTRY(__calendar)
  584. ENTRY(__day)
  585. ENTRY(__era)
  586. ENTRY(__formatMatcher)
  587. ENTRY(__hour)
  588. ENTRY(__hour12)
  589. ENTRY(__initializedDateTimeFormat)
  590. ENTRY(__matcher)
  591. ENTRY(__minute)
  592. ENTRY(__month)
  593. ENTRY(__patternStrings)
  594. ENTRY(__second)
  595. ENTRY(__style)
  596. ENTRY(__timeZone)
  597. ENTRY(__timeZoneName)
  598. ENTRY(__weekday)
  599. ENTRY(__windowsCalendar)
  600. ENTRY(__windowsClock)
  601. ENTRY(__year)
  602. ENTRY(calendar)
  603. ENTRY(day)
  604. ENTRY(era)
  605. ENTRY(hour)
  606. ENTRY(hour12)
  607. ENTRY(minute)
  608. ENTRY(month)
  609. ENTRY(pattern)
  610. ENTRY(second)
  611. ENTRY(timeZone)
  612. ENTRY(timeZoneName)
  613. ENTRY(weekday)
  614. ENTRY(year)
  615. ENTRY(PluralRules)
  616. ENTRY(select)
  617. // JsBuiltIns
  618. ENTRY(__chakraLibrary)
  619. ENTRY(alias)
  620. ENTRY(argumentsCount)
  621. ENTRY(className)
  622. ENTRY(forceInline)
  623. ENTRY(GetIteratorPrototype)
  624. ENTRY(GetLength)
  625. ENTRY(InitInternalProperties)
  626. ENTRY(methodName)
  627. ENTRY(registerChakraLibraryFunction)
  628. ENTRY(registerFunction)
  629. ENTRY(staticMethod)
  630. ENTRY(toLength)
  631. ENTRY(toInteger)
  632. ENTRY(arraySpeciesCreate)
  633. ENTRY(arrayCreateDataPropertyOrThrow)
  634. ENTRY(Array_values)
  635. ENTRY(Array_keys)
  636. ENTRY(Array_entries)
  637. ENTRY(Array_indexOf)
  638. ENTRY(Array_filter)
  639. ENTRY(Array_flat)
  640. ENTRY(Array_flatMap)
  641. ENTRY(Array_forEach)
  642. ENTRY(Array_some)
  643. ENTRY(Array_every)
  644. ENTRY(Array_includes)
  645. ENTRY(Array_reduce)
  646. ENTRY(Object_fromEntries)
  647. ENTRY(FunctionKind)
  648. // EngineInterfaceObject built-ins
  649. ENTRY(builtInJavascriptArrayEntryFilter)
  650. ENTRY(builtInJavascriptArrayEntryForEach)
  651. ENTRY(builtInJavascriptArrayEntryIndexOf)
  652. ENTRY(builtInJavascriptArrayEntrySome)
  653. ENTRY(builtInJavascriptArrayEntryEvery)
  654. ENTRY(builtInJavascriptArrayEntryIncludes)
  655. ENTRY(EngineInterface)
  656. ENTRY(builtInCallInstanceFunction)
  657. #define GlobalMathBuiltIn(mathMethod) ENTRY(builtInMath##mathMethod)
  658. #define GlobalBuiltIn(global, method) ENTRY(builtIn##global##Entry##method)
  659. #define BuiltInRaiseException(exceptionType, exceptionID) ENTRY(raise##exceptionID)
  660. #define EngineInterfaceBuiltIn2(propId, nativeMethod) ENTRY(propId)
  661. #include "../Library/EngineInterfaceObjectBuiltIns.h"
  662. // Promise (ChakraFull)
  663. ENTRY(Promise)
  664. ENTRY(enqueueTask)
  665. ENTRY(MS_ASYNC_CALLBACK_STATUS_ASSIGN_DELEGATE)
  666. ENTRY(MS_ASYNC_CALLBACK_STATUS_CANCEL)
  667. ENTRY(MS_ASYNC_CALLBACK_STATUS_CHOOSEANY)
  668. ENTRY(MS_ASYNC_CALLBACK_STATUS_ERROR)
  669. ENTRY(MS_ASYNC_CALLBACK_STATUS_JOIN)
  670. ENTRY(MS_ASYNC_OP_STATUS_CANCELED)
  671. ENTRY(MS_ASYNC_OP_STATUS_ERROR)
  672. ENTRY(MS_ASYNC_OP_STATUS_SUCCESS)
  673. ENTRY(msTraceAsyncCallbackCompleted)
  674. ENTRY(msTraceAsyncCallbackStarting)
  675. ENTRY(msTraceAsyncOperationCompleted)
  676. ENTRY(msTraceAsyncOperationStarting)
  677. ENTRY(msUpdateAsyncCallbackRelation)
  678. // These are ES5/6/7+ builtins that are tracked for telemetry purposes, but currently not implemented by Chakra or are otherwise special.
  679. // IMPORTANT NOTE: See notes at top of this file regarding GenByteCode and test failures after changing this list.
  680. ENTRY(observe)
  681. ENTRY(unobserve)
  682. ENTRY(setUInt16)
  683. ENTRY(at)
  684. ENTRY(contains)
  685. ENTRY(rightPad)
  686. ENTRY(rPad)
  687. ENTRY(padRight)
  688. ENTRY(leftPad)
  689. ENTRY(lPad)
  690. ENTRY(padLeft)
  691. ENTRY(getOwnPropertyDescriptors)
  692. ENTRY(__constructor) // represents an invocation of the constructor function rather than a use of the constructor property (i.e. `new Foo()` rather than `(new Foo()).constructor`).
  693. // SymbolFunctionNameId: for RuntimeFunction nameId
  694. ENTRY2(_RuntimeFunctionNameId_hasInstance, _u("[Symbol.hasInstance]"))
  695. ENTRY2(_RuntimeFunctionNameId_toStringTag, _u("[Symbol.toStringTag]"))
  696. ENTRY2(_RuntimeFunctionNameId_toPrimitive, _u("[Symbol.toPrimitive]"))
  697. ENTRY2(_RuntimeFunctionNameId_iterator, _u("[Symbol.iterator]"))
  698. ENTRY2(_RuntimeFunctionNameId_species, _u("[Symbol.species]"))
  699. ENTRY2(_RuntimeFunctionNameId_replace, _u("[Symbol.replace]"))
  700. ENTRY2(_RuntimeFunctionNameId_search, _u("[Symbol.search]"))
  701. ENTRY2(_RuntimeFunctionNameId_match, _u("[Symbol.match]"))
  702. ENTRY2(_RuntimeFunctionNameId_split, _u("[Symbol.split]"))
  703. //Previously we would add these right after standard built-ins were generated; now adding them here.
  704. ENTRY(document)
  705. ENTRY2(_event, _u("event"))
  706. ENTRY(history)
  707. ENTRY(location)
  708. ENTRY(navigator)
  709. ENTRY(screen)
  710. ENTRY(padStart)
  711. ENTRY(padEnd)
  712. ENTRY(SharedArrayBuffer)
  713. ENTRY(Atomics)
  714. ENTRY(compareExchange)
  715. ENTRY(exchange)
  716. ENTRY(isLockFree)
  717. ENTRY(wait)
  718. ENTRY(notify)
  719. ENTRY(column)
  720. ENTRY(url)
  721. ENTRY(exception)
  722. ENTRY2(_this, _u("*this*"))
  723. ENTRY2(_super, _u("*super*"))
  724. ENTRY2(_superConstructor, _u("*superconstructor*"))
  725. ENTRY2(_newTarget, _u("*new.target*"))
  726. // Note: Do not add fields for conditionally-compiled PropertyIds into this file.
  727. // The bytecode for internal javascript libraries is built on chk but re-used in fre builds.
  728. // Having a mismatch in the number of PropertyIds will cause a failure loading bytecode.
  729. // See BLUE #467459
  730. #undef ENTRY_INTERNAL_SYMBOL
  731. #undef ENTRY_SYMBOL
  732. #undef ENTRY
  733. #undef ENTRY2