diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000000000000000000000000000000000..56e33b0746d5dc7a0a934ece6f66c91bddcc4bb2
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,5 @@
+as2panda/bin/* text eol=lf
+as2panda/dist/* binary
+as2panda/scripts/*.sh eol=lf
+as2panda/lib/binaryen.js binary
+as2panda/tests/compiler/std/string-encoding.ts eol=lf
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..4583ab1fb895357de1462bbd5a36ddc035661c25
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+test262/data/
+test262/eshost/
+test262/harness/
+out/
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..563750d672e448ef552ceffafa4c43d197493f1b
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,196 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ The "ts2panda\scripts\diagnosticMessages.json" file may contain
+ some information or content from the following software:
+ TypeScript
+ /*! *****************************************************************************
+ Copyright (c) Microsoft Corporation. All rights reserved.
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+ this file except in compliance with the License. You may obtain a copy of the
+ License at http://www.apache.org/licenses/LICENSE-2.0
+
+ THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+ WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+ MERCHANTABLITY OR NON-INFRINGEMENT.
+
+ See the Apache Version 2.0 License for specific language governing permissions
+ and limitations under the License.
+ ***************************************************************************** */
+ Apache License 2.0
\ No newline at end of file
diff --git a/OAT.xml b/OAT.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4b2b68b1e179db2681d0510a4ca15a37a932ca44
--- /dev/null
+++ b/OAT.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/README.en.md b/README.en.md
deleted file mode 100644
index 765a4e0a048240798ac54b311e758c3d6c0b0f20..0000000000000000000000000000000000000000
--- a/README.en.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# ark_ts2abc
-
-#### Description
-{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
-
-#### Software Architecture
-Software architecture description
-
-#### Installation
-
-1. xxxx
-2. xxxx
-3. xxxx
-
-#### Instructions
-
-1. xxxx
-2. xxxx
-3. xxxx
-
-#### Contribution
-
-1. Fork the repository
-2. Create Feat_xxx branch
-3. Commit your code
-4. Create Pull Request
-
-
-#### Gitee Feature
-
-1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
-2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
-3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
-4. The most valuable open source project [GVP](https://gitee.com/gvp)
-5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
-6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
diff --git a/README.md b/README.md
index 351ebd7d02b8fcc4699f2a92b59c7699f8c461fa..b9e02a2e5b628c7051395e7b7d26fa527087ba50 100644
--- a/README.md
+++ b/README.md
@@ -1,39 +1,193 @@
-# ark_ts2abc
+# ts2abc
-#### 介绍
-{**以下是 Gitee 平台说明,您可以替换此简介**
-Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台
-无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)}
+- [Introduction](#section11660541593)
+- [Directory Structure](#section161941989596)
+- [Note](#section0446154755015)
+ - [Usage Guidelines](#section33105542504)
-#### 软件架构
-软件架构说明
+- [Repositories Involved](#section1371113476307)
+## Introduction
-#### 安装教程
+As a module of the ARK platform, ts2abc is a front-end tool for JavaScript \(JS\) in the ARK compiler. It converts JS files into ARK bytecode files.
-1. xxxx
-2. xxxx
-3. xxxx
+## Directory Structure
-#### 使用说明
+```
+/ark/ts2abc/
+├── ts2panda
+ ├── doc # Documents
+ ├── scripts # Dependency scripts
+ ├── src # Source code directory
+ ├── templates # Ruby templates
+ ├── tests # Unit test cases
+ ├── tools # Tools provided by ts2abc
+ └── ts2abc # ts2abc source code
+```
-1. xxxx
-2. xxxx
-3. xxxx
+## Note
-#### 参与贡献
+ts2abc uses the command line interaction mode and converts JS code into ARK bytecode files that can be run on an ARK runtime system. ts2abc supports Windows, Linux, and macOS.
-1. Fork 本仓库
-2. 新建 Feat_xxx 分支
-3. 提交代码
-4. 新建 Pull Request
+### Usage Guidelines
+You can run **node --expose-gc _your\_path_\_to/index.js \[options\] _your\_file_.js** to convert a JS file into an ARK bytecode file using ts2abc. If no parameter is specified for **\[options\]**, an ARK binary file is generated by default. The **index.js** file is the executable file generated after ts2abc compilation.
-#### 特技
+
+
Option
+
+ Abbreviation
+
+ Description
+
+ Value Range
+
+ Default Value
+
+
+
+ --modules
+
+ -m
+
+ Compiles the code based on the module.
+
+ -
+
+ -
+
+
+ --debug-log
+
+ -l
+
+ Enables the log function.
+
+ -
+
+ -
+
+
+ --dump-assembly
+
+ -a
+
+ Outputs an assembly file.
+
+ -
+
+ -
+
+
+ --debug
+
+ -d
+
+ Provides debug information.
+
+ -
+
+ -
+
+
+ --show-statistics
+
+ -s
+
+ Displays statistics about bytecodes.
+
+ -
+
+ -
+
+
+ --output
+
+ -o
+
+ Specifies the path of the output file.
+
+ -
+
+ -
+
+
+ --timeout
+
+ -t
+
+ Specifies the timeout threshold.
+
+ -
+
+ -
+
+
+ --opt-log-level
+
+ -
+
+ Specifies the log level for compilation optimization.
+
+ ['debug', 'info', 'error', 'fatal']
+
+ error
+
+
+ --opt-level
+
+ -
+
+ Specifies the level for compilation optimization.
+
+ -
+
+ 1
+
+
+ --help
+
+ -h
+
+ Displays help information.
+
+ -
+
+ -
+
+
+ --bc-version
+
+ -v
+
+ Outputs the current bytecode version.
+
+ -
+
+ -
+
+
+ --bc-min-version
+
+ -
+
+ Outputs the lowest bytecode version supported.
+
+ -
+
+ -
+
+
+
+
+
+## Repositories Involved
+
+[ARK Runtime Subsystem](https://gitee.com/wanyanglan/ark_js_runtime/blob/master/docs/ARK-Runtime-Subsystem.md)
+
+[ark/runtime\_core](https://gitee.com/openharmony/ark_runtime_core/blob/master/README.md)
+
+[ark/js\_runtime](https://gitee.com/openharmony/ark_js_runtime/blob/master/README.md)
+
+**[ark/ts2abc](README.md)**
-1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
-2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
-3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
-4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
-5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
-6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
diff --git a/README_zh.md b/README_zh.md
new file mode 100644
index 0000000000000000000000000000000000000000..6bb290fb08e68aaacf4915a2404cb724c150bcbf
--- /dev/null
+++ b/README_zh.md
@@ -0,0 +1,193 @@
+# ts2abc组件
+
+- [简介](#section11660541593)
+- [目录](#section161941989596)
+- [说明](#section0446154755015)
+ - [使用说明](#section33105542504)
+
+- [相关仓](#section1371113476307)
+
+## 简介
+
+ts2abc组件是方舟平台的一个组件,其作为方舟编译器中JavaScript语言的前端工具,支持将JavaScript文件转换为方舟字节码文件。
+
+## 目录
+
+```
+/ark/ts2abc/
+├── ts2panda
+ ├── doc # 文档
+ ├── scripts # 依赖的脚本
+ ├── src # 源码存放目录
+ ├── templates # ruby模板文件
+ ├── tests # UT单元测试目录
+ ├── tools # ts2abc提供的工具
+ └── ts2abc # abc文件生成相关
+```
+
+## 说明
+
+ts2abc组件采用命令行交互方式,支持将JavaScript代码转换为方舟字节码文件,使其能够在方舟运行时上运行。支持Windows/Linux/MacOS平台。
+
+### 使用说明
+
+ts2abc组件将JavaScript文件转换为方舟字节码文件,命令行格式为: node --expose-gc your\_path\_to/index.js \[options\] your\_file.js。当不输入任何option参数时,默认生成方舟二进制文件。其中index.js是ts2abc组件编译后的可执行文件。
+
+
+ 选项
+
+ 缩写
+
+ 描述
+
+ 取值范围
+
+ 默认值
+
+
+
+ --modules
+
+ -m
+
+ 按照module模式编译
+
+ -
+
+ -
+
+
+ --debug-log
+
+ -l
+
+ 使能log信息
+
+ -
+
+ -
+
+
+ --dump-assembly
+
+ -a
+
+ 输出为汇编文件
+
+ -
+
+ -
+
+
+ --debug
+
+ -d
+
+ 携带debug信息
+
+ -
+
+ -
+
+
+ --show-statistics
+
+ -s
+
+ 显示字节码相关的统计信息
+
+ -
+
+ -
+
+
+ --output
+
+ -o
+
+ 输出文件路径
+
+ -
+
+ -
+
+
+ --timeout
+
+ -t
+
+ 超时门限
+
+ -
+
+ -
+
+
+ --opt-log-level
+
+ -
+
+ 指定编译优化log等级
+
+ ['debug', 'info', 'error', 'fatal']
+
+ error
+
+
+ --opt-level
+
+ -
+
+ 指定编译优化等级
+
+ -
+
+ 1
+
+
+ --help
+
+ -h
+
+ 帮助提示
+
+ -
+
+ -
+
+
+ --bc-version
+
+ -v
+
+ 输出当前字节码版本
+
+ -
+
+ -
+
+
+ --bc-min-version
+
+ -
+
+ 输出当前支持的最低字节码版本
+
+ -
+
+ -
+
+
+
+
+
+## 相关仓
+
+[方舟运行时子系统](https://gitee.com/wanyanglan/ark_js_runtime/blob/master/docs/%E6%96%B9%E8%88%9F%E8%BF%90%E8%A1%8C%E6%97%B6%E5%AD%90%E7%B3%BB%E7%BB%9F.md)
+
+[ark/runtime\_core](https://gitee.com/openharmony/ark_runtime_core/blob/master/README_zh.md)
+
+[ark/js\_runtime](https://gitee.com/openharmony/ark_js_runtime/blob/master/README_zh.md)
+
+**[ark/ts2abc](README_zh.md)**
+
diff --git a/ohos.build b/ohos.build
new file mode 100644
index 0000000000000000000000000000000000000000..2b9b29b6949d97094e0ee6fe39ac8ada38c0a2b9
--- /dev/null
+++ b/ohos.build
@@ -0,0 +1,16 @@
+{
+ "subsystem": "ark",
+ "parts": {
+ "ark_ts2abc": {
+ "variants": [
+ "phone"
+ ],
+ "module_list": [
+ "//ark/ts2abc/ts2panda:ark_ts2abc_build"
+ ],
+ "inner_kits": [],
+ "system_kits": [],
+ "test_list": []
+ }
+ }
+}
diff --git a/test262/README.md b/test262/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..c7ce6a86eb76cd18aca07c390751fb73e2c9c688
--- /dev/null
+++ b/test262/README.md
@@ -0,0 +1,177 @@
+## File overview:
+```
+es5_tests.txt: This file contains a list of ES5 test cases. If useful cases are found missing, you can add them as needed.
+es2015_tests.txt: This file contains a full list of use cases of ES2015 except those filtered out with'es6id'. If useful cases are found missing, you can add them as needed.
+skip_tests.json: This file contains a list of use cases that do not meet the requirements. If useful cases are found missing, you can add them according to the specified format.
+```
+
+## 1. Compile ts2abc and ark_js_vm project
+```
+./build.sh --product-name Hi3516DV300 --build-target ark_js_vm --build-target ark_ts2abc_build
+```
+
+## 2 Run test cases
+
+### 2.1 Options
+```
+usage: run_test262.py [-h] [--dir DIR] [--file FILE] [--mode [{1,2,3}]]
+ [--es51] [--es2015 [{all,only}]] [--esnext]
+ [--engine FILE] [--babel] [--timeout TIMEOUT]
+ [--threads THREADS] [--hostArgs HOSTARGS]
+ [--ark-tool ARK_TOOL]
+ [--ark-frontend-tool ARK_FRONTEND_TOOL]
+ [--libs-dir LIBS_DIR]
+ [--ark-frontend [{ts2panda,es2panda}]]
+
+optional arguments:
+ -h, --help show this help message and exit
+ --dir DIR Directory to test
+ --file FILE File to test
+ --mode [{1,2,3}] selection information as: 1: only default 2:
+ only strict mode 3: both default and strict mode
+ --es51 Run test262 ES5.1 version
+ --es2015 [{all,only}]
+ Run test262 - ES2015. all: Contains all use cases for
+ ES5 and ES2015, only: Only include use cases for
+ ES2015
+ --esnext Run test262 - ES.next.
+ --engine FILE Other engine binarys to run tests with
+ (as:d8,hermes,jsc,qjs...)
+ --babel Whether to use Babel conversion
+ --timeout TIMEOUT Set a custom test timeout in milliseconds !!!
+ --threads THREADS Run this many tests in parallel. Note that the browser
+ runners don't work great with t > 1.
+ --hostArgs HOSTARGS command-line arguments to pass to eshost host
+ --ark-tool ARK_TOOL ark's binary tool
+ --ark-frontend-tool ARK_FRONTEND_TOOL
+ ark frontend conversion tool
+ --libs-dir LIBS_DIR The path collection of dependent so has been divided
+ by':'
+ --ark-frontend [{ts2panda,es2panda}]
+ Choose one of them
+```
+
+### 2.2 run all the test cases
+
+```
+python3 test262/run_test262.py
+```
+
+### 2.3 run `es51` related test cases
+
+```python
+python3 test262/run_test262.py --es51
+```
+
+After the execution finished, a directory named `test_es51` is created under directory `test262/data` , which is used to store all `es51` cases.
+
+### 2.4 run `es2015` related test cases
+#### 2.4.1 only include use cases for ES2015
+```python
+python3 test262/run_test262.py --es2015 only
+```
+#### 2.4.2 contains all use cases for ES5 and ES2015
+```python
+python3 test262/run_test262.py --es2015 all
+```
+
+### 2.5 run single test case
+
+```python
+python3 test262/run_test262.py --file test262/data/test_es5/language/statements/break/12.8-1.js
+```
+
+### 2.6 run all the test cases under specified directory
+
+```python
+python3 test262/run_test262.py --dir test262/data/test_es5/language/statements
+```
+
+### 2.7 run single test case with other engines. Take d8 as an example
+
+```python
+ python3 test262/run_test262.py --engine="/home/share/v8-code/v8/out.gn/x64.release/d8" --file test262/data/test_es5/language/statements/break/12.8-1.js
+```
+### 2.8 run single test case with `babel` conversion
+```
+python3 test262/run_test262.py --babel --file test262/data/test_es5/language/statements/break/12.8-1.js
+```
+
+### 2.9 Get test result
+
+take the following code as an example:
+
+```shell
+zgy@lfgphicprd23154:/home/share/OpenHarmony2.0_20210604/ark/ts2abc$ python3 -B test262/run_test262.py --file test262/data/test_es51/language/statements/break/12.8-1.js
+
+Wait a moment..........
+
+07-30 16:56:03.857383 D:>>> command: npm install | dir: /home/share/OpenHarmony2.0_20210604/out/ohos-arm-release/clang_x64/ark/ark/build/src/..
+npm WARN ts2panda@1.0.0 No description
+npm WARN ts2panda@1.0.0 No repository field.
+npm WARN ts2panda@1.0.0 No license field.
+npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents):
+npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
+
+up to date in 2.225s
+
+28 packages are looking for funding
+ run `npm fund` for details
+
+07-30 16:56:06.746184 D:>>> command: npm install | dir: test262/eshost
+up to date in 1.446s
+
+1 package is looking for funding
+ run `npm fund` for details
+
+07-30 16:56:08.767037 D:>>> command: npm install | dir: test262/harness
+up to date in 2.412s
+07-30 16:56:11.836409 D:>>> command: git checkout -- . | dir: test262/data
+07-30 16:56:12.012115 D:>>> command: git checkout 9ca13b12728b7e0089c7eb03fa2bd17f8abe297f | dir: test262/data
+HEAD is now at 9ca13b1272 Fix typo in BigIntArray property descriptor test
+07-30 16:56:12.275768 D:>>> command: git checkout -- . | dir: test262/eshost
+07-30 16:56:12.280134 D:>>> command: git apply ../eshost.patch | dir: test262/eshost
+07-30 16:56:12.283263 D:>>> command: git checkout -- . | dir: test262/harness
+07-30 16:56:12.288134 D:>>> command: git apply ../harness.patch | dir: test262/harness
+Test command:
+ node
+ test262/harness/bin/run.js
+ --hostType=panda
+ --hostPath=python3
+ --hostArgs='-B test262/run_sunspider.py --ark-tool=/home/share/OpenHarmony2.0_20210604/out/ohos-arm-release/clang_x64/ark/ark/ark_js_vm --ark-frontend-tool=/home/share/OpenHarmony2.0_20210604/out/ohos-arm-release/clang_x64/ark/ark/build/src/index.js --libs-dir=/home/share/OpenHarmony2.0_20210604/out/ohos-arm-release/clang_x64/ark/ark:/home/share/OpenHarmony2.0_20210604/out/ohos-arm-release/clang_x64/global/i18n_standard:/home/share/OpenHarmony2.0_20210604/prebuilts/clang/ohos/linux-x86_64/llvm/lib/ --ark-frontend=ts2panda '
+ --threads=15
+ --mode=only strict mode
+ --timeout=60000
+ --tempDir=out/test262
+ --test262Dir=test262/data
+ --saveCompiledTests
+ test262/data/test_es51/language/statements/break/12.8-1.js
+
+FAIL test262/data/test_es51/language/statements/break/12.8-1.js (strict mode)
+
+Ran 1 tests
+0 passed
+1 failed
+used time is: 0:00:13.303865
+```
+
+* `default` indicates `non-strict` mode, `strict mode` indicates the strict mode.
+
+* After the execution finished, the following files are generated under directory `out/test262/` (you can specified it in `test262/config.py`):
+
+```
+-rw-rw-r-- 1 zgy zgy 7583 Nov 21 18:18 12.8-1-default.abc
+-rw-rw-r-- 1 zgy zgy 415 Nov 21 18:18 12.8-1.js.panda.default.err
+-rw-rw-r-- 1 zgy zgy 4389 Nov 21 18:18 12.8-1.js.panda.default.fail
+-rw-rw-r-- 1 zgy zgy 415 Nov 21 18:18 12.8-1.js.panda.strict.err
+-rw-rw-r-- 1 zgy zgy 4403 Nov 21 18:18 12.8-1.js.panda.strict.fail
+-rw-rw-r-- 1 zgy zgy 7601 Nov 21 18:18 12.8-1-strict.abc
+```
+
+`.abc` indicates the generated binary `abc` file.
+
+`.err` indicates error occurs during the test.
+
+`.fail/.pass` is the file saved after `js` file has been preprocessed.
+
+The `result.txt` file is generated under directory `out/test262` to save statistics after the test finished.
diff --git a/test262/babel-preprocessor.js b/test262/babel-preprocessor.js
new file mode 100644
index 0000000000000000000000000000000000000000..870f2a6a0a5f938ad851800061b329dc0c0c337c
--- /dev/null
+++ b/test262/babel-preprocessor.js
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+const babel = require("@babel/core");
+const config = {
+ "presets": ["@babel/preset-env"],
+};
+
+module.exports = function(test) {
+ try {
+ test.contents = babel.transform(test.contents, config).code;
+ } catch (error) {
+ test.result = {
+ stderr: `${error.name}: ${error.message}\n`,
+ stdout: '',
+ error
+ };
+ }
+ return test;
+};
\ No newline at end of file
diff --git a/test262/config.py b/test262/config.py
new file mode 100755
index 0000000000000000000000000000000000000000..27adf36b11d1ededc03f57d2b3464bc590330ff1
--- /dev/null
+++ b/test262/config.py
@@ -0,0 +1,102 @@
+# coding: utf-8
+#!/usr/bin/python3
+
+"""
+Copyright (c) 2021 Huawei Device Co., Ltd.
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Description: Execute 262 test suite configuration file
+"""
+
+
+import os
+
+DATA_DIR = os.path.join("test262", "data")
+ESHOST_DIR = os.path.join("test262", "eshost")
+HARNESS_DIR = os.path.join("test262", "harness")
+
+BASE_OUT_DIR = os.path.join("out", "test262")
+
+CUR_FILE_DIR = os.path.dirname(__file__)
+CODE_ROOT = os.path.abspath(os.path.join(CUR_FILE_DIR, "../../.."))
+ARK_DIR = f"{CODE_ROOT}/out/ohos-arm-release/clang_x64/ark/ark"
+ICUI_DIR = f"{CODE_ROOT}/out/ohos-arm-release/clang_x64/global/i18n_standard"
+LLVM_DIR = f"{CODE_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/lib/"
+
+# " mode_type": {
+# "1": "only default",
+# "2": "only strict mode",
+# "3": "both default and strict mode"
+# }
+DEFAULT_MODE = 2
+
+TEST_ES5_DIR = os.path.join(DATA_DIR, "test_es51")
+TEST_ES2015_DIR = os.path.join(DATA_DIR, "test_es2015")
+
+DEFAULT_ARK_FRONTEND_TOOL = os.path.join(ARK_DIR, "build", "src", "index.js")
+DEFAULT_ARK_TOOL = os.path.join(ARK_DIR, "..", "ark_js_runtime", "ark_js_vm")
+DEFAULT_LIBS_DIR = f"{ARK_DIR}:{ICUI_DIR}:{LLVM_DIR}"
+
+DEFAULT_HOST_TYPE = "panda"
+DEFAULT_HOST_PATH = "python3"
+DEFAULT_THREADS = 8
+DEFAULT_OTHER_ARGS = "--saveCompiledTests"
+TEST262_RUNNER_SCRIPT = os.path.join(HARNESS_DIR, "bin", "run.js")
+DEFAULT_TIMEOUT = 60000
+
+
+ES5_LIST_FILE = os.path.join("test262", "es5_tests.txt")
+ES2015_LIST_FILE = os.path.join("test262", "es2015_tests.txt")
+
+TEST262_GIT_HASH = "9ca13b12728b7e0089c7eb03fa2bd17f8abe297f"
+HARNESS_GIT_HASH = "9c499f028eb24e67781435c0bb442e00343eb39d"
+ESHOST_GIT_HASH = "fa2d4d27d9d6152002bdef36ee2d17e98b886268"
+ESNEXT_GIT_HASH = "281eb10b2844929a7c0ac04527f5b42ce56509fd"
+
+TEST262_GIT_URL = "https://gitee.com/Han00000000/test262.git"
+ESHOST_GIT_URL = "https://gitee.com/Han00000000/eshost.git"
+HARNESS_GIT_URL = "https://gitee.com/Han00000000/test262-harness.git"
+
+SKIP_LIST_FILE = os.path.join("test262", "skip_tests.json")
+ALL_SKIP_TESTS = []
+
+ARK_FRONTEND_LIST = [
+ "ts2panda",
+ "es2panda"
+]
+DEFAULT_ARK_FRONTEND = ARK_FRONTEND_LIST[0]
+
+
+MODULE_FILES_LIST = [
+ "early-dup-export-decl.js",
+ "early-dup-export-dflt-id.js",
+ "early-dup-export-dflt.js",
+ "early-dup-export-id-as.js",
+ "early-dup-export-id.js",
+ "early-dup-lables.js",
+ "early-dup-lex.js",
+ "early-export-global.js",
+ "early-lex-and-var.js",
+ "early-new-target.js",
+ "early-strict-mode.js",
+ "early-super.js",
+ "early-undef-break.js",
+ "early-undef-continue.js",
+ "parse-err-export-dflt-const.js",
+ "parse-err-export-dflt-let.js",
+ "parse-err-export-dflt-var.js",
+ "parse-err-return.js",
+ "parse-err-yield.js",
+ "dup-bound-names.js",
+ "await-module.js"
+]
diff --git a/test262/es2015_tests.txt b/test262/es2015_tests.txt
new file mode 100644
index 0000000000000000000000000000000000000000..01eae6e32b4f1a921d24a66612b8951e51241b12
--- /dev/null
+++ b/test262/es2015_tests.txt
@@ -0,0 +1,4550 @@
+built-ins/Array/S15.4.2.1_A1.1_T2.js
+built-ins/Array/proto.js
+built-ins/Array/proto-from-ctor-realm-zero.js
+built-ins/Array/proto-from-ctor-realm-two.js
+built-ins/Array/S15.4_A1.1_T9.js
+built-ins/Array/length.js
+built-ins/Array/S15.4.5.2_A3_T2.js
+built-ins/Array/S15.4.5.1_A2.1_T1.js
+built-ins/Array/S15.4.2.1_A2.1_T1.js
+built-ins/Array/prop-desc.js
+built-ins/Array/S15.4.5.1_A2.2_T1.js
+built-ins/Array/constructor.js
+built-ins/Array/property-cast-number.js
+built-ins/Array/S15.4_A1.1_T5.js
+built-ins/Array/S15.4.1_A3.1_T1.js
+built-ins/Array/S15.4.1_A1.1_T2.js
+built-ins/Array/S15.4.1_A2.1_T1.js
+built-ins/Array/S15.4.5.1_A2.3_T1.js
+built-ins/Array/15.4.5-1.js
+built-ins/Array/S15.4_A1.1_T8.js
+built-ins/Array/S15.4.1_A1.2_T1.js
+built-ins/Array/S15.4.1_A1.1_T3.js
+built-ins/Array/prototype/findIndex/return-negative-one-if-predicate-returns-false-value.js
+built-ins/Array/prototype/findIndex/predicate-call-parameters.js
+built-ins/Array/prototype/findIndex/predicate-call-this-non-strict.js
+built-ins/Array/prototype/findIndex/length.js
+built-ins/Array/prototype/findIndex/call-with-boolean.js
+built-ins/Array/prototype/findIndex/return-abrupt-from-this.js
+built-ins/Array/prototype/findIndex/prop-desc.js
+built-ins/Array/prototype/findIndex/return-abrupt-from-this-length-as-symbol.js
+built-ins/Array/prototype/findIndex/return-index-predicate-result-is-true.js
+built-ins/Array/prototype/findIndex/predicate-not-called-on-empty-array.js
+built-ins/Array/prototype/findIndex/predicate-is-not-callable-throws.js
+built-ins/Array/prototype/findIndex/return-abrupt-from-property.js
+built-ins/Array/prototype/findIndex/predicate-call-this-strict.js
+built-ins/Array/prototype/findIndex/predicate-called-for-each-array-property.js
+built-ins/Array/prototype/findIndex/name.js
+built-ins/Array/prototype/findIndex/return-abrupt-from-predicate-call.js
+built-ins/Array/prototype/findIndex/return-abrupt-from-this-length.js
+built-ins/Array/prototype/findIndex/not-a-constructor.js
+built-ins/Array/prototype/findIndex/array-altered-during-loop.js
+built-ins/Array/prototype/slice/15.4.4.10-10-c-ii-1.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.4_T4.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.4_T3.js
+built-ins/Array/prototype/slice/length.js
+built-ins/Array/prototype/slice/call-with-boolean.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.5_T2.js
+built-ins/Array/prototype/slice/S15.4.4.10_A2_T3.js
+built-ins/Array/prototype/slice/length-exceeding-integer-limit.js
+built-ins/Array/prototype/slice/S15.4.4.10_A5.7.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.2_T2.js
+built-ins/Array/prototype/slice/prop-desc.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.1_T3.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.3_T4.js
+built-ins/Array/prototype/slice/S15.4.4.10_A2_T4.js
+built-ins/Array/prototype/slice/create-ctor-non-object.js
+built-ins/Array/prototype/slice/S15.4.4.10_A2.1_T1.js
+built-ins/Array/prototype/slice/S15.4.4.10_A2.2_T4.js
+built-ins/Array/prototype/slice/create-species-neg-zero.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.1_T1.js
+built-ins/Array/prototype/slice/create-species.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.3_T3.js
+built-ins/Array/prototype/slice/target-array-with-non-configurable-property.js
+built-ins/Array/prototype/slice/create-non-array-invalid-len.js
+built-ins/Array/prototype/slice/length-exceeding-integer-limit-proxied-array.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.1_T6.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.3_T2.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.1_T4.js
+built-ins/Array/prototype/slice/create-non-array.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.2_T3.js
+built-ins/Array/prototype/slice/S15.4.4.10_A4_T1.js
+built-ins/Array/prototype/slice/S15.4.4.10_A2.1_T4.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.1_T5.js
+built-ins/Array/prototype/slice/S15.4.4.10_A2.1_T5.js
+built-ins/Array/prototype/slice/create-species-abrupt.js
+built-ins/Array/prototype/slice/create-species-non-ctor.js
+built-ins/Array/prototype/slice/S15.4.4.10_A2.2_T2.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.5_T1.js
+built-ins/Array/prototype/slice/S15.4.4.10_A2_T2.js
+built-ins/Array/prototype/slice/S15.4.4.10_A3_T3.js
+built-ins/Array/prototype/slice/target-array-non-extensible.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.4_T1.js
+built-ins/Array/prototype/slice/S15.4.4.10_A3_T2.js
+built-ins/Array/prototype/slice/S15.4.4.10_A2.2_T5.js
+built-ins/Array/prototype/slice/name.js
+built-ins/Array/prototype/slice/create-species-undef.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.1_T2.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.4_T2.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.2_T1.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.3_T1.js
+built-ins/Array/prototype/slice/S15.4.4.10_A2_T1.js
+built-ins/Array/prototype/slice/S15.4.4.10_A2.2_T1.js
+built-ins/Array/prototype/slice/create-revoked-proxy.js
+built-ins/Array/prototype/slice/create-proto-from-ctor-realm-array.js
+built-ins/Array/prototype/slice/S15.4.4.10_A3_T1.js
+built-ins/Array/prototype/slice/S15.4.4.10_A2.2_T3.js
+built-ins/Array/prototype/slice/not-a-constructor.js
+built-ins/Array/prototype/slice/create-proxied-array-invalid-len.js
+built-ins/Array/prototype/slice/create-species-null.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.2_T4.js
+built-ins/Array/prototype/slice/S15.4.4.10_A2_T6.js
+built-ins/Array/prototype/slice/create-proto-from-ctor-realm-non-array.js
+built-ins/Array/prototype/slice/S15.4.4.10_A1.1_T7.js
+built-ins/Array/prototype/slice/S15.4.4.10_A2_T5.js
+built-ins/Array/prototype/slice/S15.4.4.10_A2.1_T2.js
+built-ins/Array/prototype/slice/create-ctor-poisoned.js
+built-ins/Array/prototype/slice/target-array-with-non-writable-property.js
+built-ins/Array/prototype/slice/S15.4.4.10_A2.1_T3.js
+built-ins/Array/prototype/slice/create-species-poisoned.js
+built-ins/Array/prototype/slice/create-proxy.js
+built-ins/Array/prototype/proto.js
+built-ins/Array/prototype/Symbol.iterator.js
+built-ins/Array/prototype/length.js
+built-ins/Array/prototype/push/S15.4.4.7_A1_T2.js
+built-ins/Array/prototype/push/length.js
+built-ins/Array/prototype/push/call-with-boolean.js
+built-ins/Array/prototype/push/S15.4.4.7_A6.7.js
+built-ins/Array/prototype/push/prop-desc.js
+built-ins/Array/prototype/push/S15.4.4.7_A2_T2.js
+built-ins/Array/prototype/push/S15.4.4.7_A5_T1.js
+built-ins/Array/prototype/push/S15.4.4.7_A1_T1.js
+built-ins/Array/prototype/push/length-near-integer-limit.js
+built-ins/Array/prototype/push/S15.4.4.7_A3.js
+built-ins/Array/prototype/push/throws-with-string-receiver.js
+built-ins/Array/prototype/push/S15.4.4.7_A4_T1.js
+built-ins/Array/prototype/push/length-near-integer-limit-set-failure.js
+built-ins/Array/prototype/push/name.js
+built-ins/Array/prototype/push/S15.4.4.7_A2_T3.js
+built-ins/Array/prototype/push/S15.4.4.7_A2_T1.js
+built-ins/Array/prototype/push/not-a-constructor.js
+built-ins/Array/prototype/push/clamps-to-integer-limit.js
+built-ins/Array/prototype/push/S15.4.4.7_A4_T2.js
+built-ins/Array/prototype/push/throws-if-integer-limit-exceeded.js
+built-ins/Array/prototype/push/S15.4.4.7_A4_T3.js
+built-ins/Array/prototype/pop/length.js
+built-ins/Array/prototype/pop/call-with-boolean.js
+built-ins/Array/prototype/pop/prop-desc.js
+built-ins/Array/prototype/pop/S15.4.4.6_A2_T4.js
+built-ins/Array/prototype/pop/S15.4.4.6_A3_T1.js
+built-ins/Array/prototype/pop/S15.4.4.6_A4_T1.js
+built-ins/Array/prototype/pop/S15.4.4.6_A1.1_T1.js
+built-ins/Array/prototype/pop/S15.4.4.6_A5.7.js
+built-ins/Array/prototype/pop/S15.4.4.6_A4_T2.js
+built-ins/Array/prototype/pop/length-near-integer-limit.js
+built-ins/Array/prototype/pop/S15.4.4.6_A1.2_T1.js
+built-ins/Array/prototype/pop/S15.4.4.6_A2_T1.js
+built-ins/Array/prototype/pop/throws-with-string-receiver.js
+built-ins/Array/prototype/pop/S15.4.4.6_A2_T3.js
+built-ins/Array/prototype/pop/S15.4.4.6_A3_T2.js
+built-ins/Array/prototype/pop/name.js
+built-ins/Array/prototype/pop/not-a-constructor.js
+built-ins/Array/prototype/pop/clamps-to-integer-limit.js
+built-ins/Array/prototype/pop/S15.4.4.6_A3_T3.js
+built-ins/Array/prototype/pop/S15.4.4.6_A2_T2.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-3.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-5.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-2.js
+built-ins/Array/prototype/reduce/15.4.4.21-5-6.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-3.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-31.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-6.js
+built-ins/Array/prototype/reduce/15.4.4.21-10-6.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-17.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-29.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-32.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-9.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-20.js
+built-ins/Array/prototype/reduce/15.4.4.21-5-9.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-28.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-4.js
+built-ins/Array/prototype/reduce/15.4.4.21-1-2.js
+built-ins/Array/prototype/reduce/15.4.4.21-1-12.js
+built-ins/Array/prototype/reduce/15.4.4.21-1-14.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-4-s.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-8.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-5.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-13.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-18.js
+built-ins/Array/prototype/reduce/15.4.4.21-7-4.js
+built-ins/Array/prototype/reduce/length.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-13.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-23.js
+built-ins/Array/prototype/reduce/call-with-boolean.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-14.js
+built-ins/Array/prototype/reduce/15.4.4.21-1-6.js
+built-ins/Array/prototype/reduce/15.4.4.21-5-2.js
+built-ins/Array/prototype/reduce/15.4.4.21-5-7.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-16.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-4.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-2.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-15.js
+built-ins/Array/prototype/reduce/15.4.4.21-4-8.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-1.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-26.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-10.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-5.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-6.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-35.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-32.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-30.js
+built-ins/Array/prototype/reduce/15.4.4.21-4-4.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-ii-1.js
+built-ins/Array/prototype/reduce/prop-desc.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-1.js
+built-ins/Array/prototype/reduce/15.4.4.21-10-7.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-7.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-16.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-34.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-7.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-3.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-21.js
+built-ins/Array/prototype/reduce/15.4.4.21-5-13.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-13.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-1.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-31.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-5.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-31.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-7.js
+built-ins/Array/prototype/reduce/15.4.4.21-7-1.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-32.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-3.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-24.js
+built-ins/Array/prototype/reduce/15.4.4.21-1-5.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-19.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-6.js
+built-ins/Array/prototype/reduce/15.4.4.21-10-2.js
+built-ins/Array/prototype/reduce/15.4.4.21-1-3.js
+built-ins/Array/prototype/reduce/15.4.4.21-4-6.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-12.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-2.js
+built-ins/Array/prototype/reduce/15.4.4.21-1-9.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-15.js
+built-ins/Array/prototype/reduce/15.4.4.21-5-11.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-7.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-1.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-15.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-4.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-19.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-6.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-14.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-30.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-ii-2.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-14.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-20.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-3.js
+built-ins/Array/prototype/reduce/15.4.4.21-1-4.js
+built-ins/Array/prototype/reduce/15.4.4.21-4-12.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-8.js
+built-ins/Array/prototype/reduce/15.4.4.21-1-10.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-2.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-c-5.js
+built-ins/Array/prototype/reduce/15.4.4.21-5-5.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-11.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-11.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-18.js
+built-ins/Array/prototype/reduce/15.4.4.21-10-5.js
+built-ins/Array/prototype/reduce/15.4.4.21-4-11.js
+built-ins/Array/prototype/reduce/15.4.4.21-4-15.js
+built-ins/Array/prototype/reduce/15.4.4.21-7-10.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-c-3.js
+built-ins/Array/prototype/reduce/15.4.4.21-7-5.js
+built-ins/Array/prototype/reduce/15.4.4.21-4-7.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-7.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-33.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-33.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-9.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-2.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-10.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-28.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-21.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-10.js
+built-ins/Array/prototype/reduce/15.4.4.21-4-3.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-16.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-23.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-14.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-21.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-4.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-12.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-6.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-11.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-37.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-26.js
+built-ins/Array/prototype/reduce/15.4.4.21-1-15.js
+built-ins/Array/prototype/reduce/15.4.4.21-10-4.js
+built-ins/Array/prototype/reduce/15.4.4.21-10-1.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-4.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-25.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-5.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-7.js
+built-ins/Array/prototype/reduce/15.4.4.21-7-9.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-25.js
+built-ins/Array/prototype/reduce/15.4.4.21-5-8.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-28.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-10.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-22.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-11.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-30.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-22.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-c-7.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-23.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-14.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-28.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-5.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-1.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-10.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-c-2.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-1.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-22.js
+built-ins/Array/prototype/reduce/15.4.4.21-5-12.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-29.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-9.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-27.js
+built-ins/Array/prototype/reduce/15.4.4.21-5-1.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-9.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-22.js
+built-ins/Array/prototype/reduce/15.4.4.21-5-10.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-12.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-13.js
+built-ins/Array/prototype/reduce/15.4.4.21-5-4.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-2.js
+built-ins/Array/prototype/reduce/15.4.4.21-1-11.js
+built-ins/Array/prototype/reduce/15.4.4.21-1-1.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-24.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-20.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-18.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-25.js
+built-ins/Array/prototype/reduce/15.4.4.21-5-3.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-c-6.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-8.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-21.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-4.js
+built-ins/Array/prototype/reduce/name.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-1.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-27.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-8.js
+built-ins/Array/prototype/reduce/15.4.4.21-7-6.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-3.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-25.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-16.js
+built-ins/Array/prototype/reduce/15.4.4.21-4-9.js
+built-ins/Array/prototype/reduce/15.4.4.21-4-2.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-9.js
+built-ins/Array/prototype/reduce/15.4.4.21-10-8.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-6.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-5.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-16.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-18.js
+built-ins/Array/prototype/reduce/15.4.4.21-4-5.js
+built-ins/Array/prototype/reduce/not-a-constructor.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-10.js
+built-ins/Array/prototype/reduce/15.4.4.21-7-8.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-10.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-11.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-24.js
+built-ins/Array/prototype/reduce/15.4.4.21-10-3.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-18.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-19.js
+built-ins/Array/prototype/reduce/15.4.4.21-4-10.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-c-1.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-20.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-19.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-29.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-9.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-4.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-15.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-c-4.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-33.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-18.js
+built-ins/Array/prototype/reduce/15.4.4.21-4-1.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-2.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-19.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-29.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-7.js
+built-ins/Array/prototype/reduce/15.4.4.21-3-17.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-26.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-12.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-3.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-27.js
+built-ins/Array/prototype/reduce/15.4.4.21-7-3.js
+built-ins/Array/prototype/reduce/15.4.4.21-7-2.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-11.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-c-8.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-12.js
+built-ins/Array/prototype/reduce/15.4.4.21-1-13.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-9.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-26.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-17.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-8.js
+built-ins/Array/prototype/reduce/15.4.4.21-7-7.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-21.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-14.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-22.js
+built-ins/Array/prototype/reduce/15.4.4.21-1-7.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-17.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-19.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-25.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-3.js
+built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-13.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-12.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-17.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-1.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-17.js
+built-ins/Array/prototype/reduce/15.4.4.21-1-8.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-8.js
+built-ins/Array/prototype/reduce/15.4.4.21-7-11.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-b-20.js
+built-ins/Array/prototype/reduce/15.4.4.21-2-2.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-1.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-13.js
+built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-27.js
+built-ins/Array/prototype/copyWithin/return-abrupt-from-start-as-symbol.js
+built-ins/Array/prototype/copyWithin/return-abrupt-from-has-start.js
+built-ins/Array/prototype/copyWithin/non-negative-target-start-and-end.js
+built-ins/Array/prototype/copyWithin/return-abrupt-from-delete-target.js
+built-ins/Array/prototype/copyWithin/negative-start.js
+built-ins/Array/prototype/copyWithin/length.js
+built-ins/Array/prototype/copyWithin/call-with-boolean.js
+built-ins/Array/prototype/copyWithin/return-abrupt-from-this.js
+built-ins/Array/prototype/copyWithin/return-abrupt-from-target-as-symbol.js
+built-ins/Array/prototype/copyWithin/non-negative-target-and-start.js
+built-ins/Array/prototype/copyWithin/return-abrupt-from-delete-proxy-target.js
+built-ins/Array/prototype/copyWithin/prop-desc.js
+built-ins/Array/prototype/copyWithin/undefined-end.js
+built-ins/Array/prototype/copyWithin/coerced-values-start.js
+built-ins/Array/prototype/copyWithin/return-abrupt-from-this-length-as-symbol.js
+built-ins/Array/prototype/copyWithin/return-abrupt-from-set-target-value.js
+built-ins/Array/prototype/copyWithin/non-negative-out-of-bounds-target-and-start.js
+built-ins/Array/prototype/copyWithin/coerced-values-start-change-target.js
+built-ins/Array/prototype/copyWithin/negative-out-of-bounds-end.js
+built-ins/Array/prototype/copyWithin/negative-out-of-bounds-target.js
+built-ins/Array/prototype/copyWithin/return-this.js
+built-ins/Array/prototype/copyWithin/return-abrupt-from-get-start-value.js
+built-ins/Array/prototype/copyWithin/length-near-integer-limit.js
+built-ins/Array/prototype/copyWithin/negative-target.js
+built-ins/Array/prototype/copyWithin/negative-out-of-bounds-start.js
+built-ins/Array/prototype/copyWithin/return-abrupt-from-end.js
+built-ins/Array/prototype/copyWithin/non-negative-out-of-bounds-end.js
+built-ins/Array/prototype/copyWithin/name.js
+built-ins/Array/prototype/copyWithin/coerced-values-end.js
+built-ins/Array/prototype/copyWithin/return-abrupt-from-this-length.js
+built-ins/Array/prototype/copyWithin/not-a-constructor.js
+built-ins/Array/prototype/copyWithin/return-abrupt-from-start.js
+built-ins/Array/prototype/copyWithin/return-abrupt-from-target.js
+built-ins/Array/prototype/copyWithin/coerced-values-target.js
+built-ins/Array/prototype/copyWithin/negative-end.js
+built-ins/Array/prototype/copyWithin/return-abrupt-from-end-as-symbol.js
+built-ins/Array/prototype/copyWithin/coerced-values-start-change-start.js
+built-ins/Array/prototype/copyWithin/fill-holes.js
+built-ins/Array/prototype/prop-desc.js
+built-ins/Array/prototype/reverse/length.js
+built-ins/Array/prototype/reverse/call-with-boolean.js
+built-ins/Array/prototype/reverse/S15.4.4.8_A1_T2.js
+built-ins/Array/prototype/reverse/prop-desc.js
+built-ins/Array/prototype/reverse/S15.4.4.8_A2_T1.js
+built-ins/Array/prototype/reverse/S15.4.4.8_A1_T1.js
+built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-object.js
+built-ins/Array/prototype/reverse/S15.4.4.8_A2_T3.js
+built-ins/Array/prototype/reverse/S15.4.4.8_A4_T2.js
+built-ins/Array/prototype/reverse/S15.4.4.8_A4_T1.js
+built-ins/Array/prototype/reverse/S15.4.4.8_A2_T2.js
+built-ins/Array/prototype/reverse/S15.4.4.8_A5.7.js
+built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-proxy.js
+built-ins/Array/prototype/reverse/S15.4.4.8_A3_T3.js
+built-ins/Array/prototype/reverse/name.js
+built-ins/Array/prototype/reverse/array-has-one-entry.js
+built-ins/Array/prototype/reverse/not-a-constructor.js
+built-ins/Array/prototype/reverse/get_if_present_with_delete.js
+built-ins/Array/prototype/entries/iteration-mutable.js
+built-ins/Array/prototype/entries/returns-iterator-from-object.js
+built-ins/Array/prototype/entries/length.js
+built-ins/Array/prototype/entries/return-abrupt-from-this.js
+built-ins/Array/prototype/entries/prop-desc.js
+built-ins/Array/prototype/entries/iteration.js
+built-ins/Array/prototype/entries/returns-iterator.js
+built-ins/Array/prototype/entries/name.js
+built-ins/Array/prototype/entries/not-a-constructor.js
+built-ins/Array/prototype/keys/iteration-mutable.js
+built-ins/Array/prototype/keys/returns-iterator-from-object.js
+built-ins/Array/prototype/keys/length.js
+built-ins/Array/prototype/keys/return-abrupt-from-this.js
+built-ins/Array/prototype/keys/prop-desc.js
+built-ins/Array/prototype/keys/iteration.js
+built-ins/Array/prototype/keys/returns-iterator.js
+built-ins/Array/prototype/keys/name.js
+built-ins/Array/prototype/keys/not-a-constructor.js
+built-ins/Array/prototype/constructor.js
+built-ins/Array/prototype/toLocaleString/length.js
+built-ins/Array/prototype/toLocaleString/S15.4.4.3_A3_T1.js
+built-ins/Array/prototype/toLocaleString/prop-desc.js
+built-ins/Array/prototype/toLocaleString/S15.4.4.3_A4.7.js
+built-ins/Array/prototype/toLocaleString/S15.4.4.3_A1_T1.js
+built-ins/Array/prototype/toLocaleString/name.js
+built-ins/Array/prototype/toLocaleString/not-a-constructor.js
+built-ins/Array/prototype/unshift/length.js
+built-ins/Array/prototype/unshift/call-with-boolean.js
+built-ins/Array/prototype/unshift/S15.4.4.13_A2_T1.js
+built-ins/Array/prototype/unshift/prop-desc.js
+built-ins/Array/prototype/unshift/S15.4.4.13_A1_T2.js
+built-ins/Array/prototype/unshift/S15.4.4.13_A3_T2.js
+built-ins/Array/prototype/unshift/S15.4.4.13_A5.7.js
+built-ins/Array/prototype/unshift/length-near-integer-limit.js
+built-ins/Array/prototype/unshift/throws-with-string-receiver.js
+built-ins/Array/prototype/unshift/S15.4.4.13_A2_T2.js
+built-ins/Array/prototype/unshift/name.js
+built-ins/Array/prototype/unshift/not-a-constructor.js
+built-ins/Array/prototype/unshift/clamps-to-integer-limit.js
+built-ins/Array/prototype/unshift/S15.4.4.13_A4_T1.js
+built-ins/Array/prototype/unshift/S15.4.4.13_A4_T2.js
+built-ins/Array/prototype/unshift/S15.4.4.13_A1_T1.js
+built-ins/Array/prototype/unshift/throws-if-integer-limit-exceeded.js
+built-ins/Array/prototype/unshift/S15.4.4.13_A2_T3.js
+built-ins/Array/prototype/values/iteration-mutable.js
+built-ins/Array/prototype/values/returns-iterator-from-object.js
+built-ins/Array/prototype/values/length.js
+built-ins/Array/prototype/values/prop-desc.js
+built-ins/Array/prototype/values/iteration.js
+built-ins/Array/prototype/values/returns-iterator.js
+built-ins/Array/prototype/values/this-val-non-obj-coercible.js
+built-ins/Array/prototype/values/name.js
+built-ins/Array/prototype/values/not-a-constructor.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-21.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-27.js
+built-ins/Array/prototype/filter/15.4.4.20-5-1.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-5.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-30.js
+built-ins/Array/prototype/filter/15.4.4.20-2-4.js
+built-ins/Array/prototype/filter/15.4.4.20-5-29.js
+built-ins/Array/prototype/filter/15.4.4.20-1-14.js
+built-ins/Array/prototype/filter/15.4.4.20-4-6.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-23.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-10.js
+built-ins/Array/prototype/filter/15.4.4.20-3-21.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-16.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-6.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-4.js
+built-ins/Array/prototype/filter/15.4.4.20-1-13.js
+built-ins/Array/prototype/filter/15.4.4.20-2-3.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-11.js
+built-ins/Array/prototype/filter/15.4.4.20-5-14.js
+built-ins/Array/prototype/filter/15.4.4.20-1-4.js
+built-ins/Array/prototype/filter/15.4.4.20-3-9.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-13.js
+built-ins/Array/prototype/filter/15.4.4.20-4-8.js
+built-ins/Array/prototype/filter/length.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-18.js
+built-ins/Array/prototype/filter/15.4.4.20-5-27.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-18.js
+built-ins/Array/prototype/filter/call-with-boolean.js
+built-ins/Array/prototype/filter/15.4.4.20-5-24.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-31.js
+built-ins/Array/prototype/filter/15.4.4.20-1-12.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-1-6.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-7.js
+built-ins/Array/prototype/filter/15.4.4.20-1-2.js
+built-ins/Array/prototype/filter/15.4.4.20-3-14.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-8.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-18.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-16.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-29.js
+built-ins/Array/prototype/filter/15.4.4.20-5-13.js
+built-ins/Array/prototype/filter/15.4.4.20-2-2.js
+built-ins/Array/prototype/filter/prop-desc.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-6.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-1.js
+built-ins/Array/prototype/filter/15.4.4.20-3-17.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-21.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-12.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-20.js
+built-ins/Array/prototype/filter/15.4.4.20-3-25.js
+built-ins/Array/prototype/filter/15.4.4.20-5-3.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-2.js
+built-ins/Array/prototype/filter/15.4.4.20-2-7.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-8.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-25.js
+built-ins/Array/prototype/filter/create-ctor-non-object.js
+built-ins/Array/prototype/filter/15.4.4.20-5-19.js
+built-ins/Array/prototype/filter/15.4.4.20-9-9.js
+built-ins/Array/prototype/filter/15.4.4.20-9-3.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-15.js
+built-ins/Array/prototype/filter/15.4.4.20-5-28.js
+built-ins/Array/prototype/filter/15.4.4.20-6-5.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-4.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-10.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-7.js
+built-ins/Array/prototype/filter/15.4.4.20-5-15.js
+built-ins/Array/prototype/filter/15.4.4.20-5-10.js
+built-ins/Array/prototype/filter/15.4.4.20-2-13.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-26.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-1.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-4.js
+built-ins/Array/prototype/filter/15.4.4.20-2-9.js
+built-ins/Array/prototype/filter/15.4.4.20-2-19.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-20.js
+built-ins/Array/prototype/filter/15.4.4.20-5-7.js
+built-ins/Array/prototype/filter/15.4.4.20-3-15.js
+built-ins/Array/prototype/filter/15.4.4.20-4-7.js
+built-ins/Array/prototype/filter/15.4.4.20-3-10.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-16.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-4.js
+built-ins/Array/prototype/filter/15.4.4.20-6-6.js
+built-ins/Array/prototype/filter/create-species.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-1-1.js
+built-ins/Array/prototype/filter/15.4.4.20-1-6.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-13.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-9.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-1.js
+built-ins/Array/prototype/filter/15.4.4.20-2-12.js
+built-ins/Array/prototype/filter/target-array-with-non-configurable-property.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-14.js
+built-ins/Array/prototype/filter/15.4.4.20-6-8.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-13.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-5.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-30.js
+built-ins/Array/prototype/filter/15.4.4.20-3-20.js
+built-ins/Array/prototype/filter/create-non-array.js
+built-ins/Array/prototype/filter/15.4.4.20-4-9.js
+built-ins/Array/prototype/filter/15.4.4.20-2-8.js
+built-ins/Array/prototype/filter/15.4.4.20-2-17.js
+built-ins/Array/prototype/filter/15.4.4.20-9-6.js
+built-ins/Array/prototype/filter/15.4.4.20-4-11.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-21.js
+built-ins/Array/prototype/filter/15.4.4.20-4-1.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-5.js
+built-ins/Array/prototype/filter/15.4.4.20-9-5.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-22.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-10.js
+built-ins/Array/prototype/filter/15.4.4.20-1-11.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-1.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-19.js
+built-ins/Array/prototype/filter/15.4.4.20-3-7.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-7.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-8.js
+built-ins/Array/prototype/filter/15.4.4.20-1-8.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-10.js
+built-ins/Array/prototype/filter/15.4.4.20-10-1.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-12.js
+built-ins/Array/prototype/filter/15.4.4.20-5-2.js
+built-ins/Array/prototype/filter/15.4.4.20-2-18.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-1-5.js
+built-ins/Array/prototype/filter/15.4.4.20-4-3.js
+built-ins/Array/prototype/filter/15.4.4.20-2-10.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-14.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-17.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-1-4.js
+built-ins/Array/prototype/filter/15.4.4.20-6-2.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-19.js
+built-ins/Array/prototype/filter/15.4.4.20-4-4.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-9.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-17.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-3.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-2.js
+built-ins/Array/prototype/filter/create-species-abrupt.js
+built-ins/Array/prototype/filter/15.4.4.20-3-4.js
+built-ins/Array/prototype/filter/create-species-non-ctor.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-6.js
+built-ins/Array/prototype/filter/15.4.4.20-5-6.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-22.js
+built-ins/Array/prototype/filter/15.4.4.20-4-10.js
+built-ins/Array/prototype/filter/15.4.4.20-1-10.js
+built-ins/Array/prototype/filter/target-array-non-extensible.js
+built-ins/Array/prototype/filter/15.4.4.20-5-16.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-15.js
+built-ins/Array/prototype/filter/15.4.4.20-3-13.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-23.js
+built-ins/Array/prototype/filter/15.4.4.20-5-12.js
+built-ins/Array/prototype/filter/15.4.4.20-9-2.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-29.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-5.js
+built-ins/Array/prototype/filter/15.4.4.20-3-11.js
+built-ins/Array/prototype/filter/15.4.4.20-5-18.js
+built-ins/Array/prototype/filter/15.4.4.20-6-7.js
+built-ins/Array/prototype/filter/15.4.4.20-2-11.js
+built-ins/Array/prototype/filter/15.4.4.20-5-23.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-11.js
+built-ins/Array/prototype/filter/15.4.4.20-2-6.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-11.js
+built-ins/Array/prototype/filter/15.4.4.20-9-8.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-15.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-11.js
+built-ins/Array/prototype/filter/15.4.4.20-10-2.js
+built-ins/Array/prototype/filter/15.4.4.20-3-19.js
+built-ins/Array/prototype/filter/name.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-26.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-22.js
+built-ins/Array/prototype/filter/create-species-undef.js
+built-ins/Array/prototype/filter/15.4.4.20-10-4.js
+built-ins/Array/prototype/filter/15.4.4.20-3-6.js
+built-ins/Array/prototype/filter/15.4.4.20-2-1.js
+built-ins/Array/prototype/filter/15.4.4.20-4-2.js
+built-ins/Array/prototype/filter/15.4.4.20-3-3.js
+built-ins/Array/prototype/filter/create-revoked-proxy.js
+built-ins/Array/prototype/filter/15.4.4.20-1-15.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-3.js
+built-ins/Array/prototype/filter/create-proto-from-ctor-realm-array.js
+built-ins/Array/prototype/filter/15.4.4.20-10-3.js
+built-ins/Array/prototype/filter/not-a-constructor.js
+built-ins/Array/prototype/filter/15.4.4.20-5-5.js
+built-ins/Array/prototype/filter/create-species-null.js
+built-ins/Array/prototype/filter/15.4.4.20-3-18.js
+built-ins/Array/prototype/filter/15.4.4.20-6-3.js
+built-ins/Array/prototype/filter/15.4.4.20-5-17.js
+built-ins/Array/prototype/filter/15.4.4.20-2-5.js
+built-ins/Array/prototype/filter/15.4.4.20-2-14.js
+built-ins/Array/prototype/filter/15.4.4.20-6-4.js
+built-ins/Array/prototype/filter/15.4.4.20-1-3.js
+built-ins/Array/prototype/filter/create-proto-from-ctor-realm-non-array.js
+built-ins/Array/prototype/filter/15.4.4.20-6-1.js
+built-ins/Array/prototype/filter/15.4.4.20-3-22.js
+built-ins/Array/prototype/filter/15.4.4.20-3-24.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-13.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-12.js
+built-ins/Array/prototype/filter/15.4.4.20-3-23.js
+built-ins/Array/prototype/filter/15.4.4.20-5-30.js
+built-ins/Array/prototype/filter/15.4.4.20-3-2.js
+built-ins/Array/prototype/filter/15.4.4.20-1-9.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-24.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-3.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-2.js
+built-ins/Array/prototype/filter/15.4.4.20-3-12.js
+built-ins/Array/prototype/filter/15.4.4.20-3-5.js
+built-ins/Array/prototype/filter/create-ctor-poisoned.js
+built-ins/Array/prototype/filter/15.4.4.20-5-22.js
+built-ins/Array/prototype/filter/15.4.4.20-1-7.js
+built-ins/Array/prototype/filter/target-array-with-non-writable-property.js
+built-ins/Array/prototype/filter/15.4.4.20-4-12.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-9.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-28.js
+built-ins/Array/prototype/filter/15.4.4.20-1-1.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-16.js
+built-ins/Array/prototype/filter/15.4.4.20-9-4.js
+built-ins/Array/prototype/filter/15.4.4.20-5-1-s.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-7.js
+built-ins/Array/prototype/filter/15.4.4.20-3-16.js
+built-ins/Array/prototype/filter/15.4.4.20-5-21.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-20.js
+built-ins/Array/prototype/filter/15.4.4.20-5-9.js
+built-ins/Array/prototype/filter/15.4.4.20-3-1.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-25.js
+built-ins/Array/prototype/filter/15.4.4.20-1-5.js
+built-ins/Array/prototype/filter/15.4.4.20-4-5.js
+built-ins/Array/prototype/filter/15.4.4.20-4-15.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-12.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-14.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-1-2.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-17.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-28.js
+built-ins/Array/prototype/filter/15.4.4.20-5-11.js
+built-ins/Array/prototype/filter/create-species-poisoned.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-8.js
+built-ins/Array/prototype/filter/create-proxy.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-9.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-2.js
+built-ins/Array/prototype/filter/15.4.4.20-5-4.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-6.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-19.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-1-3.js
+built-ins/Array/prototype/filter/15.4.4.20-9-7.js
+built-ins/Array/prototype/filter/15.4.4.20-9-1.js
+built-ins/Array/prototype/every/15.4.4.16-7-b-10.js
+built-ins/Array/prototype/every/15.4.4.16-3-2.js
+built-ins/Array/prototype/every/15.4.4.16-8-13.js
+built-ins/Array/prototype/every/15.4.4.16-2-19.js
+built-ins/Array/prototype/every/15.4.4.16-7-4.js
+built-ins/Array/prototype/every/15.4.4.16-3-7.js
+built-ins/Array/prototype/every/15.4.4.16-8-12.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-18.js
+built-ins/Array/prototype/every/15.4.4.16-1-9.js
+built-ins/Array/prototype/every/15.4.4.16-5-11.js
+built-ins/Array/prototype/every/15.4.4.16-1-14.js
+built-ins/Array/prototype/every/15.4.4.16-5-22.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-18.js
+built-ins/Array/prototype/every/15.4.4.16-8-10.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-9.js
+built-ins/Array/prototype/every/15.4.4.16-5-7.js
+built-ins/Array/prototype/every/length.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-8.js
+built-ins/Array/prototype/every/15.4.4.16-7-b-6.js
+built-ins/Array/prototype/every/15.4.4.16-3-24.js
+built-ins/Array/prototype/every/call-with-boolean.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-1.js
+built-ins/Array/prototype/every/15.4.4.16-1-6.js
+built-ins/Array/prototype/every/15.4.4.16-5-17.js
+built-ins/Array/prototype/every/15.4.4.16-2-9.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-5.js
+built-ins/Array/prototype/every/15.4.4.16-7-5.js
+built-ins/Array/prototype/every/15.4.4.16-5-16.js
+built-ins/Array/prototype/every/15.4.4.16-2-18.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-12.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-27.js
+built-ins/Array/prototype/every/15.4.4.16-7-b-15.js
+built-ins/Array/prototype/every/15.4.4.16-7-9.js
+built-ins/Array/prototype/every/15.4.4.16-2-2.js
+built-ins/Array/prototype/every/15.4.4.16-4-12.js
+built-ins/Array/prototype/every/15.4.4.16-4-10.js
+built-ins/Array/prototype/every/15.4.4.16-3-19.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-20.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-23.js
+built-ins/Array/prototype/every/prop-desc.js
+built-ins/Array/prototype/every/15.4.4.16-7-8.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-3.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-11.js
+built-ins/Array/prototype/every/15.4.4.16-2-6.js
+built-ins/Array/prototype/every/15.4.4.16-7-b-3.js
+built-ins/Array/prototype/every/15.4.4.16-3-20.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-8.js
+built-ins/Array/prototype/every/15.4.4.16-2-12.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-19.js
+built-ins/Array/prototype/every/15.4.4.16-3-16.js
+built-ins/Array/prototype/every/15.4.4.16-4-1.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-5.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-9.js
+built-ins/Array/prototype/every/15.4.4.16-3-12.js
+built-ins/Array/prototype/every/15.4.4.16-5-19.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-27.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-6.js
+built-ins/Array/prototype/every/15.4.4.16-7-7.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-16.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-26.js
+built-ins/Array/prototype/every/15.4.4.16-7-b-12.js
+built-ins/Array/prototype/every/15.4.4.16-3-17.js
+built-ins/Array/prototype/every/15.4.4.16-8-11.js
+built-ins/Array/prototype/every/15.4.4.16-1-11.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-19.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-4.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-14.js
+built-ins/Array/prototype/every/15.4.4.16-3-8.js
+built-ins/Array/prototype/every/15.4.4.16-1-10.js
+built-ins/Array/prototype/every/15.4.4.16-7-b-5.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-7.js
+built-ins/Array/prototype/every/15.4.4.16-1-4.js
+built-ins/Array/prototype/every/15.4.4.16-8-5.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-12.js
+built-ins/Array/prototype/every/15.4.4.16-4-11.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-25.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-16.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-10.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-31.js
+built-ins/Array/prototype/every/15.4.4.16-7-2.js
+built-ins/Array/prototype/every/15.4.4.16-1-5.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-14.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-21.js
+built-ins/Array/prototype/every/15.4.4.16-3-18.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-9.js
+built-ins/Array/prototype/every/15.4.4.16-2-4.js
+built-ins/Array/prototype/every/15.4.4.16-7-3.js
+built-ins/Array/prototype/every/15.4.4.16-4-6.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-28.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-21.js
+built-ins/Array/prototype/every/15.4.4.16-5-2.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-1.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-22.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-11.js
+built-ins/Array/prototype/every/15.4.4.16-7-6.js
+built-ins/Array/prototype/every/15.4.4.16-5-3.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-4.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-12.js
+built-ins/Array/prototype/every/15.4.4.16-5-15.js
+built-ins/Array/prototype/every/15.4.4.16-2-8.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-17.js
+built-ins/Array/prototype/every/15.4.4.16-8-7.js
+built-ins/Array/prototype/every/15.4.4.16-4-15.js
+built-ins/Array/prototype/every/15.4.4.16-7-b-8.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-1.js
+built-ins/Array/prototype/every/15.4.4.16-5-9.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-11.js
+built-ins/Array/prototype/every/15.4.4.16-1-1.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-7.js
+built-ins/Array/prototype/every/15.4.4.16-7-b-14.js
+built-ins/Array/prototype/every/15.4.4.16-7-b-16.js
+built-ins/Array/prototype/every/15.4.4.16-2-13.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-6.js
+built-ins/Array/prototype/every/15.4.4.16-5-23.js
+built-ins/Array/prototype/every/15.4.4.16-3-13.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-8.js
+built-ins/Array/prototype/every/15.4.4.16-4-8.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-10.js
+built-ins/Array/prototype/every/15.4.4.16-5-4.js
+built-ins/Array/prototype/every/15.4.4.16-3-4.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-22.js
+built-ins/Array/prototype/every/15.4.4.16-5-24.js
+built-ins/Array/prototype/every/15.4.4.16-8-3.js
+built-ins/Array/prototype/every/15.4.4.16-3-3.js
+built-ins/Array/prototype/every/15.4.4.16-7-b-2.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-15.js
+built-ins/Array/prototype/every/15.4.4.16-2-3.js
+built-ins/Array/prototype/every/15.4.4.16-1-2.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-10.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-20.js
+built-ins/Array/prototype/every/15.4.4.16-1-15.js
+built-ins/Array/prototype/every/15.4.4.16-4-5.js
+built-ins/Array/prototype/every/15.4.4.16-5-21.js
+built-ins/Array/prototype/every/15.4.4.16-7-b-13.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-3.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-21.js
+built-ins/Array/prototype/every/15.4.4.16-7-b-1.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-2.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-17.js
+built-ins/Array/prototype/every/15.4.4.16-3-11.js
+built-ins/Array/prototype/every/15.4.4.16-8-4.js
+built-ins/Array/prototype/every/15.4.4.16-3-5.js
+built-ins/Array/prototype/every/15.4.4.16-5-13.js
+built-ins/Array/prototype/every/15.4.4.16-5-14.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-6.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-13.js
+built-ins/Array/prototype/every/15.4.4.16-3-25.js
+built-ins/Array/prototype/every/15.4.4.16-3-22.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-18.js
+built-ins/Array/prototype/every/name.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-25.js
+built-ins/Array/prototype/every/15.4.4.16-8-6.js
+built-ins/Array/prototype/every/15.4.4.16-5-12.js
+built-ins/Array/prototype/every/15.4.4.16-3-21.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-15.js
+built-ins/Array/prototype/every/15.4.4.16-2-1.js
+built-ins/Array/prototype/every/15.4.4.16-3-1.js
+built-ins/Array/prototype/every/15.4.4.16-5-5.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-29.js
+built-ins/Array/prototype/every/15.4.4.16-4-4.js
+built-ins/Array/prototype/every/15.4.4.16-1-7.js
+built-ins/Array/prototype/every/15.4.4.16-2-7.js
+built-ins/Array/prototype/every/15.4.4.16-5-1.js
+built-ins/Array/prototype/every/not-a-constructor.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-4.js
+built-ins/Array/prototype/every/15.4.4.16-1-3.js
+built-ins/Array/prototype/every/15.4.4.16-7-b-7.js
+built-ins/Array/prototype/every/15.4.4.16-1-12.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-20.js
+built-ins/Array/prototype/every/15.4.4.16-1-13.js
+built-ins/Array/prototype/every/15.4.4.16-2-14.js
+built-ins/Array/prototype/every/15.4.4.16-4-7.js
+built-ins/Array/prototype/every/15.4.4.16-5-10.js
+built-ins/Array/prototype/every/15.4.4.16-7-1.js
+built-ins/Array/prototype/every/15.4.4.16-7-b-4.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-5.js
+built-ins/Array/prototype/every/15.4.4.16-3-14.js
+built-ins/Array/prototype/every/15.4.4.16-3-6.js
+built-ins/Array/prototype/every/15.4.4.16-8-1.js
+built-ins/Array/prototype/every/15.4.4.16-3-23.js
+built-ins/Array/prototype/every/15.4.4.16-2-5.js
+built-ins/Array/prototype/every/15.4.4.16-5-6.js
+built-ins/Array/prototype/every/15.4.4.16-8-2.js
+built-ins/Array/prototype/every/15.4.4.16-7-b-11.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-22.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-29.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-7.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-ii-2.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-16.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-24.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-19.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-13.js
+built-ins/Array/prototype/every/15.4.4.16-2-11.js
+built-ins/Array/prototype/every/15.4.4.16-2-10.js
+built-ins/Array/prototype/every/15.4.4.16-4-3.js
+built-ins/Array/prototype/every/15.4.4.16-8-8.js
+built-ins/Array/prototype/every/15.4.4.16-3-10.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-30.js
+built-ins/Array/prototype/every/15.4.4.16-0-1.js
+built-ins/Array/prototype/every/15.4.4.16-5-18.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-23.js
+built-ins/Array/prototype/every/15.4.4.16-3-15.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-3.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-iii-28.js
+built-ins/Array/prototype/every/15.4.4.16-7-b-9.js
+built-ins/Array/prototype/every/15.4.4.16-5-1-s.js
+built-ins/Array/prototype/every/15.4.4.16-4-9.js
+built-ins/Array/prototype/every/15.4.4.16-3-9.js
+built-ins/Array/prototype/every/15.4.4.16-1-8.js
+built-ins/Array/prototype/every/15.4.4.16-2-17.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-17.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-13.js
+built-ins/Array/prototype/every/15.4.4.16-7-c-i-2.js
+built-ins/Array/prototype/every/15.4.4.16-3-29.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-12.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-6-6.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-22.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-7.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-10.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-7-4.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-21.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-10.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-15.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-18.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-19.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-9.js
+built-ins/Array/prototype/lastIndexOf/length.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-2.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-31.js
+built-ins/Array/prototype/lastIndexOf/call-with-boolean.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-7.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-11.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-1.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-7.js
+built-ins/Array/prototype/lastIndexOf/calls-only-has-on-prototype-after-length-zeroed.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-7.js
+built-ins/Array/prototype/lastIndexOf/fromindex-zero-conversion.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-3.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-28.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-13.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-4.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-6.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-21.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-8.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-9.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-12.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-5.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-18.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-17.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-32.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-8.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-19.js
+built-ins/Array/prototype/lastIndexOf/prop-desc.js
+built-ins/Array/prototype/lastIndexOf/length-zero-returns-minus-one.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-5.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-22.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-2.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-12.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-1.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-28.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-24.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-7.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-ii-8.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-20.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-14.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-10.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-2.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-9.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-8.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-ii-1.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-9.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-13.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-1.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-4.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-6.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-9.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-11.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-15.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-13.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-12.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-8.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-iii-2.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-ii-4.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-11.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-ii-5.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-1.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-ii-11.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-17.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-28.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-15.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-15.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-9.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-3.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-27.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-5.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-6-2.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-12.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-6.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-6-1.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-20.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-16.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-7.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-2.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-4.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-20.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-6-3.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-12.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-4.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-8.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-27.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-7.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-11.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-11.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-9-1.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-7-2.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-26.js
+built-ins/Array/prototype/lastIndexOf/length-near-integer-limit.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-13.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-6.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-30.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-23.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-14.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-6-4.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-6-5.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-1.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-1.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-7-1.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-19.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-2.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-5.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-3.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-4.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-10.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-10.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-19.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-ii-6.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-8.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-10.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-9-2.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-9.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-6.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-6.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-10.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-2.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-4.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-3.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-ii-3.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-30.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-ii-7.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-11.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-31.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-17.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-19.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-2.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-5.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-22.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-25.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-18.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-1.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-4.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-5.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-14.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-ii-2.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-6.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-5.js
+built-ins/Array/prototype/lastIndexOf/name.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-16.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-iii-1.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-21.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-16.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-18.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-ii-9.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-3.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-16.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-7.js
+built-ins/Array/prototype/lastIndexOf/not-a-constructor.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-33.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-3.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-9.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-25.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-7-3.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-13.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-14.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-3.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-15.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-18.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-26.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-29.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-1.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-10.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-17.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-23.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-8.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-11.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-4.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-14.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-13.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-3.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-5.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-2.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-6.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-14.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-24.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-25.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-ii-10.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-29.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-11.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-1.js
+built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-17.js
+built-ins/Array/prototype/Symbol.iterator/not-a-constructor.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-15.js
+built-ins/Array/prototype/map/15.4.4.19-8-2.js
+built-ins/Array/prototype/map/15.4.4.19-3-22.js
+built-ins/Array/prototype/map/15.4.4.19-9-1.js
+built-ins/Array/prototype/map/15.4.4.19-2-3.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-1.js
+built-ins/Array/prototype/map/15.4.4.19-8-b-2.js
+built-ins/Array/prototype/map/15.4.4.19-5-24.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-16.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-16.js
+built-ins/Array/prototype/map/15.4.4.19-9-7.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-7.js
+built-ins/Array/prototype/map/15.4.4.19-8-b-3.js
+built-ins/Array/prototype/map/15.4.4.19-5-11.js
+built-ins/Array/prototype/map/15.4.4.19-9-11.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-iii-5.js
+built-ins/Array/prototype/map/15.4.4.19-2-13.js
+built-ins/Array/prototype/map/15.4.4.19-5-16.js
+built-ins/Array/prototype/map/15.4.4.19-5-22.js
+built-ins/Array/prototype/map/15.4.4.19-5-1-s.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-6.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-10.js
+built-ins/Array/prototype/map/15.4.4.19-3-16.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-8.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-26.js
+built-ins/Array/prototype/map/15.4.4.19-3-8.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-8.js
+built-ins/Array/prototype/map/15.4.4.19-8-b-11.js
+built-ins/Array/prototype/map/15.4.4.19-9-8.js
+built-ins/Array/prototype/map/15.4.4.19-3-13.js
+built-ins/Array/prototype/map/create-species-undef-invalid-len.js
+built-ins/Array/prototype/map/15.4.4.19-4-6.js
+built-ins/Array/prototype/map/length.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-12.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-5.js
+built-ins/Array/prototype/map/call-with-boolean.js
+built-ins/Array/prototype/map/15.4.4.19-3-19.js
+built-ins/Array/prototype/map/15.4.4.19-2-19.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-19.js
+built-ins/Array/prototype/map/15.4.4.19-6-2.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-2.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-13.js
+built-ins/Array/prototype/map/15.4.4.19-5-6.js
+built-ins/Array/prototype/map/15.4.4.19-9-12.js
+built-ins/Array/prototype/map/15.4.4.19-3-15.js
+built-ins/Array/prototype/map/15.4.4.19-8-4.js
+built-ins/Array/prototype/map/15.4.4.19-4-15.js
+built-ins/Array/prototype/map/15.4.4.19-2-10.js
+built-ins/Array/prototype/map/15.4.4.19-1-10.js
+built-ins/Array/prototype/map/15.4.4.19-8-6.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-11.js
+built-ins/Array/prototype/map/15.4.4.19-5-12.js
+built-ins/Array/prototype/map/15.4.4.19-9-6.js
+built-ins/Array/prototype/map/prop-desc.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-12.js
+built-ins/Array/prototype/map/15.4.4.19-9-3.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-11.js
+built-ins/Array/prototype/map/15.4.4.19-2-5.js
+built-ins/Array/prototype/map/15.4.4.19-3-24.js
+built-ins/Array/prototype/map/15.4.4.19-1-9.js
+built-ins/Array/prototype/map/15.4.4.19-2-8.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-9.js
+built-ins/Array/prototype/map/15.4.4.19-1-4.js
+built-ins/Array/prototype/map/create-ctor-non-object.js
+built-ins/Array/prototype/map/15.4.4.19-5-3.js
+built-ins/Array/prototype/map/15.4.4.19-8-1.js
+built-ins/Array/prototype/map/15.4.4.19-5-19.js
+built-ins/Array/prototype/map/15.4.4.19-4-5.js
+built-ins/Array/prototype/map/15.4.4.19-9-13.js
+built-ins/Array/prototype/map/15.4.4.19-4-4.js
+built-ins/Array/prototype/map/15.4.4.19-3-1.js
+built-ins/Array/prototype/map/15.4.4.19-8-b-12.js
+built-ins/Array/prototype/map/15.4.4.19-9-4.js
+built-ins/Array/prototype/map/15.4.4.19-4-1.js
+built-ins/Array/prototype/map/15.4.4.19-3-7.js
+built-ins/Array/prototype/map/15.4.4.19-8-b-5.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-6.js
+built-ins/Array/prototype/map/15.4.4.19-8-b-15.js
+built-ins/Array/prototype/map/15.4.4.19-1-7.js
+built-ins/Array/prototype/map/create-species.js
+built-ins/Array/prototype/map/15.4.4.19-3-4.js
+built-ins/Array/prototype/map/15.4.4.19-1-12.js
+built-ins/Array/prototype/map/target-array-with-non-configurable-property.js
+built-ins/Array/prototype/map/15.4.4.19-4-9.js
+built-ins/Array/prototype/map/15.4.4.19-4-3.js
+built-ins/Array/prototype/map/15.4.4.19-8-b-1.js
+built-ins/Array/prototype/map/15.4.4.19-5-10.js
+built-ins/Array/prototype/map/create-non-array-invalid-len.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-23.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-9.js
+built-ins/Array/prototype/map/15.4.4.19-9-9.js
+built-ins/Array/prototype/map/15.4.4.19-3-29.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-28.js
+built-ins/Array/prototype/map/create-non-array.js
+built-ins/Array/prototype/map/15.4.4.19-2-6.js
+built-ins/Array/prototype/map/15.4.4.19-9-2.js
+built-ins/Array/prototype/map/15.4.4.19-3-9.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-iii-2.js
+built-ins/Array/prototype/map/15.4.4.19-2-7.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-2.js
+built-ins/Array/prototype/map/15.4.4.19-3-10.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-4.js
+built-ins/Array/prototype/map/15.4.4.19-3-18.js
+built-ins/Array/prototype/map/15.4.4.19-5-17.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-20.js
+built-ins/Array/prototype/map/15.4.4.19-8-8.js
+built-ins/Array/prototype/map/15.4.4.19-1-14.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-21.js
+built-ins/Array/prototype/map/15.4.4.19-1-3.js
+built-ins/Array/prototype/map/15.4.4.19-2-18.js
+built-ins/Array/prototype/map/15.4.4.19-1-8.js
+built-ins/Array/prototype/map/15.4.4.19-5-15.js
+built-ins/Array/prototype/map/15.4.4.19-4-2.js
+built-ins/Array/prototype/map/15.4.4.19-4-7.js
+built-ins/Array/prototype/map/15.4.4.19-3-14.js
+built-ins/Array/prototype/map/15.4.4.19-1-11.js
+built-ins/Array/prototype/map/15.4.4.19-8-7.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-iii-3.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-3.js
+built-ins/Array/prototype/map/15.4.4.19-1-5.js
+built-ins/Array/prototype/map/15.4.4.19-4-10.js
+built-ins/Array/prototype/map/15.4.4.19-2-12.js
+built-ins/Array/prototype/map/15.4.4.19-2-14.js
+built-ins/Array/prototype/map/15.4.4.19-5-5.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-18.js
+built-ins/Array/prototype/map/15.4.4.19-5-13.js
+built-ins/Array/prototype/map/create-species-abrupt.js
+built-ins/Array/prototype/map/15.4.4.19-8-b-9.js
+built-ins/Array/prototype/map/create-species-non-ctor.js
+built-ins/Array/prototype/map/15.4.4.19-4-11.js
+built-ins/Array/prototype/map/15.4.4.19-3-5.js
+built-ins/Array/prototype/map/15.4.4.19-3-20.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-27.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-31.js
+built-ins/Array/prototype/map/target-array-non-extensible.js
+built-ins/Array/prototype/map/15.4.4.19-3-11.js
+built-ins/Array/prototype/map/15.4.4.19-1-13.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-30.js
+built-ins/Array/prototype/map/15.4.4.19-3-2.js
+built-ins/Array/prototype/map/15.4.4.19-5-18.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-22.js
+built-ins/Array/prototype/map/15.4.4.19-6-1.js
+built-ins/Array/prototype/map/15.4.4.19-3-25.js
+built-ins/Array/prototype/map/15.4.4.19-2-11.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-1.js
+built-ins/Array/prototype/map/15.4.4.19-2-1.js
+built-ins/Array/prototype/map/15.4.4.19-3-12.js
+built-ins/Array/prototype/map/15.4.4.19-8-b-10.js
+built-ins/Array/prototype/map/15.4.4.19-2-9.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-20.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-5.js
+built-ins/Array/prototype/map/15.4.4.19-5-1.js
+built-ins/Array/prototype/map/15.4.4.19-5-23.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-25.js
+built-ins/Array/prototype/map/15.4.4.19-3-17.js
+built-ins/Array/prototype/map/15.4.4.19-8-b-4.js
+built-ins/Array/prototype/map/15.4.4.19-8-5.js
+built-ins/Array/prototype/map/15.4.4.19-5-4.js
+built-ins/Array/prototype/map/name.js
+built-ins/Array/prototype/map/15.4.4.19-8-b-7.js
+built-ins/Array/prototype/map/15.4.4.19-8-b-6.js
+built-ins/Array/prototype/map/create-species-undef.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-iii-1.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-29.js
+built-ins/Array/prototype/map/15.4.4.19-5-7.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-18.js
+built-ins/Array/prototype/map/15.4.4.19-5-2.js
+built-ins/Array/prototype/map/15.4.4.19-9-5.js
+built-ins/Array/prototype/map/create-revoked-proxy.js
+built-ins/Array/prototype/map/create-proto-from-ctor-realm-array.js
+built-ins/Array/prototype/map/15.4.4.19-1-1.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-iii-4.js
+built-ins/Array/prototype/map/15.4.4.19-8-b-16.js
+built-ins/Array/prototype/map/not-a-constructor.js
+built-ins/Array/prototype/map/create-species-null.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-4.js
+built-ins/Array/prototype/map/15.4.4.19-2-4.js
+built-ins/Array/prototype/map/create-proto-from-ctor-realm-non-array.js
+built-ins/Array/prototype/map/15.4.4.19-5-9.js
+built-ins/Array/prototype/map/15.4.4.19-4-12.js
+built-ins/Array/prototype/map/15.4.4.19-3-21.js
+built-ins/Array/prototype/map/15.4.4.19-2-2.js
+built-ins/Array/prototype/map/15.4.4.19-4-8.js
+built-ins/Array/prototype/map/15.4.4.19-1-2.js
+built-ins/Array/prototype/map/15.4.4.19-3-3.js
+built-ins/Array/prototype/map/15.4.4.19-8-3.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-17.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-7.js
+built-ins/Array/prototype/map/create-ctor-poisoned.js
+built-ins/Array/prototype/map/15.4.4.19-9-10.js
+built-ins/Array/prototype/map/target-array-with-non-writable-property.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-13.js
+built-ins/Array/prototype/map/15.4.4.19-8-b-13.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-10.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-21.js
+built-ins/Array/prototype/map/15.4.4.19-3-6.js
+built-ins/Array/prototype/map/15.4.4.19-5-21.js
+built-ins/Array/prototype/map/15.4.4.19-1-15.js
+built-ins/Array/prototype/map/15.4.4.19-3-28.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-17.js
+built-ins/Array/prototype/map/15.4.4.19-1-6.js
+built-ins/Array/prototype/map/15.4.4.19-3-23.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-19.js
+built-ins/Array/prototype/map/15.4.4.19-8-b-8.js
+built-ins/Array/prototype/map/create-species-poisoned.js
+built-ins/Array/prototype/map/15.4.4.19-5-14.js
+built-ins/Array/prototype/map/create-proxy.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-i-14.js
+built-ins/Array/prototype/map/15.4.4.19-8-9.js
+built-ins/Array/prototype/map/15.4.4.19-8-b-14.js
+built-ins/Array/prototype/map/15.4.4.19-8-c-ii-22.js
+built-ins/Array/prototype/map/15.4.4.19-2-17.js
+built-ins/Array/prototype/toString/S15.4.4.2_A4.7.js
+built-ins/Array/prototype/toString/length.js
+built-ins/Array/prototype/toString/call-with-boolean.js
+built-ins/Array/prototype/toString/prop-desc.js
+built-ins/Array/prototype/toString/S15.4.4.2_A1_T2.js
+built-ins/Array/prototype/toString/S15.4.4.2_A1_T4.js
+built-ins/Array/prototype/toString/S15.4.4.2_A3_T1.js
+built-ins/Array/prototype/toString/S15.4.4.2_A1_T1.js
+built-ins/Array/prototype/toString/name.js
+built-ins/Array/prototype/toString/not-a-constructor.js
+built-ins/Array/prototype/toString/S15.4.4.2_A1_T3.js
+built-ins/Array/prototype/methods-called-as-functions.js
+built-ins/Array/prototype/shift/S15.4.4.9_A1.1_T1.js
+built-ins/Array/prototype/shift/length.js
+built-ins/Array/prototype/shift/call-with-boolean.js
+built-ins/Array/prototype/shift/prop-desc.js
+built-ins/Array/prototype/shift/S15.4.4.9_A2_T2.js
+built-ins/Array/prototype/shift/S15.4.4.9_A3_T3.js
+built-ins/Array/prototype/shift/S15.4.4.9_A2_T4.js
+built-ins/Array/prototype/shift/S15.4.4.9_A4_T1.js
+built-ins/Array/prototype/shift/S15.4.4.9_A2_T5.js
+built-ins/Array/prototype/shift/name.js
+built-ins/Array/prototype/shift/not-a-constructor.js
+built-ins/Array/prototype/shift/S15.4.4.9_A2_T3.js
+built-ins/Array/prototype/shift/throws-when-this-value-length-is-writable-false.js
+built-ins/Array/prototype/shift/S15.4.4.9_A2_T1.js
+built-ins/Array/prototype/shift/S15.4.4.9_A1.2_T1.js
+built-ins/Array/prototype/shift/S15.4.4.9_A5.7.js
+built-ins/Array/prototype/shift/S15.4.4.9_A4_T2.js
+built-ins/Array/prototype/exotic-array.js
+built-ins/Array/prototype/some/15.4.4.17-5-10.js
+built-ins/Array/prototype/some/15.4.4.17-3-6.js
+built-ins/Array/prototype/some/15.4.4.17-2-2.js
+built-ins/Array/prototype/some/15.4.4.17-7-4.js
+built-ins/Array/prototype/some/15.4.4.17-4-4.js
+built-ins/Array/prototype/some/15.4.4.17-7-b-3.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-10.js
+built-ins/Array/prototype/some/15.4.4.17-1-15.js
+built-ins/Array/prototype/some/15.4.4.17-5-4.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-18.js
+built-ins/Array/prototype/some/15.4.4.17-1-10.js
+built-ins/Array/prototype/some/15.4.4.17-4-6.js
+built-ins/Array/prototype/some/length.js
+built-ins/Array/prototype/some/15.4.4.17-4-8.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-8.js
+built-ins/Array/prototype/some/15.4.4.17-3-4.js
+built-ins/Array/prototype/some/15.4.4.17-4-15.js
+built-ins/Array/prototype/some/call-with-boolean.js
+built-ins/Array/prototype/some/15.4.4.17-1-8.js
+built-ins/Array/prototype/some/15.4.4.17-2-12.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-31.js
+built-ins/Array/prototype/some/15.4.4.17-7-b-8.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-1.js
+built-ins/Array/prototype/some/15.4.4.17-3-19.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-20.js
+built-ins/Array/prototype/some/15.4.4.17-8-12.js
+built-ins/Array/prototype/some/15.4.4.17-1-3.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-30.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-6.js
+built-ins/Array/prototype/some/15.4.4.17-8-7.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-17.js
+built-ins/Array/prototype/some/15.4.4.17-3-8.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-11.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-16.js
+built-ins/Array/prototype/some/15.4.4.17-3-1.js
+built-ins/Array/prototype/some/15.4.4.17-7-b-9.js
+built-ins/Array/prototype/some/15.4.4.17-3-11.js
+built-ins/Array/prototype/some/15.4.4.17-8-13.js
+built-ins/Array/prototype/some/prop-desc.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-25.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-12.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-6.js
+built-ins/Array/prototype/some/15.4.4.17-5-17.js
+built-ins/Array/prototype/some/15.4.4.17-1-13.js
+built-ins/Array/prototype/some/15.4.4.17-2-8.js
+built-ins/Array/prototype/some/15.4.4.17-1-2.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-19.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-20.js
+built-ins/Array/prototype/some/15.4.4.17-5-16.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-24.js
+built-ins/Array/prototype/some/15.4.4.17-7-b-15.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-13.js
+built-ins/Array/prototype/some/15.4.4.17-1-4.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-21.js
+built-ins/Array/prototype/some/15.4.4.17-7-6.js
+built-ins/Array/prototype/some/15.4.4.17-7-3.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-15.js
+built-ins/Array/prototype/some/15.4.4.17-2-6.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-5.js
+built-ins/Array/prototype/some/15.4.4.17-2-19.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-23.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-5.js
+built-ins/Array/prototype/some/15.4.4.17-3-21.js
+built-ins/Array/prototype/some/15.4.4.17-5-23.js
+built-ins/Array/prototype/some/15.4.4.17-8-6.js
+built-ins/Array/prototype/some/15.4.4.17-1-1.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-4.js
+built-ins/Array/prototype/some/15.4.4.17-3-28.js
+built-ins/Array/prototype/some/15.4.4.17-7-b-1.js
+built-ins/Array/prototype/some/15.4.4.17-7-1.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-17.js
+built-ins/Array/prototype/some/15.4.4.17-3-2.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-11.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-21.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-6.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-19.js
+built-ins/Array/prototype/some/15.4.4.17-1-5.js
+built-ins/Array/prototype/some/15.4.4.17-5-5.js
+built-ins/Array/prototype/some/15.4.4.17-4-7.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-3.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-29.js
+built-ins/Array/prototype/some/15.4.4.17-3-24.js
+built-ins/Array/prototype/some/15.4.4.17-5-7.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-10.js
+built-ins/Array/prototype/some/15.4.4.17-7-b-13.js
+built-ins/Array/prototype/some/15.4.4.17-5-24.js
+built-ins/Array/prototype/some/15.4.4.17-2-13.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-11.js
+built-ins/Array/prototype/some/15.4.4.17-2-3.js
+built-ins/Array/prototype/some/15.4.4.17-3-10.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-2.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-5.js
+built-ins/Array/prototype/some/15.4.4.17-5-18.js
+built-ins/Array/prototype/some/15.4.4.17-5-1.js
+built-ins/Array/prototype/some/15.4.4.17-7-b-16.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-26.js
+built-ins/Array/prototype/some/15.4.4.17-2-5.js
+built-ins/Array/prototype/some/15.4.4.17-7-8.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-7.js
+built-ins/Array/prototype/some/15.4.4.17-5-3.js
+built-ins/Array/prototype/some/15.4.4.17-3-25.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-27.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-28.js
+built-ins/Array/prototype/some/15.4.4.17-4-1.js
+built-ins/Array/prototype/some/15.4.4.17-8-1.js
+built-ins/Array/prototype/some/15.4.4.17-1-14.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-9.js
+built-ins/Array/prototype/some/15.4.4.17-8-4.js
+built-ins/Array/prototype/some/15.4.4.17-4-11.js
+built-ins/Array/prototype/some/15.4.4.17-7-b-2.js
+built-ins/Array/prototype/some/15.4.4.17-3-18.js
+built-ins/Array/prototype/some/15.4.4.17-3-29.js
+built-ins/Array/prototype/some/15.4.4.17-1-9.js
+built-ins/Array/prototype/some/15.4.4.17-7-b-10.js
+built-ins/Array/prototype/some/15.4.4.17-8-8.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-8.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-9.js
+built-ins/Array/prototype/some/15.4.4.17-4-2.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-4.js
+built-ins/Array/prototype/some/15.4.4.17-4-5.js
+built-ins/Array/prototype/some/15.4.4.17-5-11.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-28.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-13.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-26.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-17.js
+built-ins/Array/prototype/some/15.4.4.17-5-13.js
+built-ins/Array/prototype/some/15.4.4.17-7-b-4.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-14.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-3.js
+built-ins/Array/prototype/some/15.4.4.17-1-12.js
+built-ins/Array/prototype/some/15.4.4.17-3-16.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-18.js
+built-ins/Array/prototype/some/15.4.4.17-2-18.js
+built-ins/Array/prototype/some/15.4.4.17-2-11.js
+built-ins/Array/prototype/some/15.4.4.17-8-2.js
+built-ins/Array/prototype/some/15.4.4.17-5-2.js
+built-ins/Array/prototype/some/15.4.4.17-3-15.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-1.js
+built-ins/Array/prototype/some/15.4.4.17-3-17.js
+built-ins/Array/prototype/some/15.4.4.17-3-3.js
+built-ins/Array/prototype/some/15.4.4.17-7-b-11.js
+built-ins/Array/prototype/some/15.4.4.17-1-6.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-13.js
+built-ins/Array/prototype/some/15.4.4.17-5-1-s.js
+built-ins/Array/prototype/some/15.4.4.17-3-9.js
+built-ins/Array/prototype/some/name.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-15.js
+built-ins/Array/prototype/some/15.4.4.17-3-13.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-3.js
+built-ins/Array/prototype/some/15.4.4.17-7-b-7.js
+built-ins/Array/prototype/some/15.4.4.17-8-11.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-9.js
+built-ins/Array/prototype/some/15.4.4.17-5-9.js
+built-ins/Array/prototype/some/15.4.4.17-5-12.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-7.js
+built-ins/Array/prototype/some/15.4.4.17-8-10.js
+built-ins/Array/prototype/some/15.4.4.17-3-20.js
+built-ins/Array/prototype/some/not-a-constructor.js
+built-ins/Array/prototype/some/15.4.4.17-7-b-12.js
+built-ins/Array/prototype/some/15.4.4.17-7-2.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-14.js
+built-ins/Array/prototype/some/15.4.4.17-8-5.js
+built-ins/Array/prototype/some/15.4.4.17-5-6.js
+built-ins/Array/prototype/some/15.4.4.17-2-1.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-2.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-12.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-20.js
+built-ins/Array/prototype/some/15.4.4.17-4-12.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-2.js
+built-ins/Array/prototype/some/15.4.4.17-2-10.js
+built-ins/Array/prototype/some/15.4.4.17-7-b-14.js
+built-ins/Array/prototype/some/15.4.4.17-4-10.js
+built-ins/Array/prototype/some/15.4.4.17-5-14.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-12.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-1.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-8.js
+built-ins/Array/prototype/some/15.4.4.17-5-19.js
+built-ins/Array/prototype/some/15.4.4.17-7-5.js
+built-ins/Array/prototype/some/15.4.4.17-1-11.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-29.js
+built-ins/Array/prototype/some/15.4.4.17-3-5.js
+built-ins/Array/prototype/some/15.4.4.17-2-9.js
+built-ins/Array/prototype/some/15.4.4.17-5-21.js
+built-ins/Array/prototype/some/15.4.4.17-3-12.js
+built-ins/Array/prototype/some/15.4.4.17-2-14.js
+built-ins/Array/prototype/some/15.4.4.17-1-7.js
+built-ins/Array/prototype/some/15.4.4.17-5-22.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-22.js
+built-ins/Array/prototype/some/15.4.4.17-2-7.js
+built-ins/Array/prototype/some/15.4.4.17-3-14.js
+built-ins/Array/prototype/some/15.4.4.17-5-15.js
+built-ins/Array/prototype/some/15.4.4.17-7-b-6.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-23.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-18.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-16.js
+built-ins/Array/prototype/some/15.4.4.17-2-17.js
+built-ins/Array/prototype/some/15.4.4.17-2-4.js
+built-ins/Array/prototype/some/15.4.4.17-4-9.js
+built-ins/Array/prototype/some/15.4.4.17-4-3.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-22.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-7.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-iii-25.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-4.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-19.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-10.js
+built-ins/Array/prototype/some/15.4.4.17-3-7.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-i-22.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-21.js
+built-ins/Array/prototype/some/15.4.4.17-7-c-ii-16.js
+built-ins/Array/prototype/some/15.4.4.17-3-22.js
+built-ins/Array/prototype/some/15.4.4.17-5-25.js
+built-ins/Array/prototype/some/15.4.4.17-8-3.js
+built-ins/Array/prototype/some/15.4.4.17-3-23.js
+built-ins/Array/prototype/some/15.4.4.17-7-9.js
+built-ins/Array/prototype/some/15.4.4.17-7-b-5.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-9.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-6.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-10.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-25.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-6.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-10.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-2.js
+built-ins/Array/prototype/forEach/15.4.4.18-1-5.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-5.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-1.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-19.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-12.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-15.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-14.js
+built-ins/Array/prototype/forEach/15.4.4.18-1-1.js
+built-ins/Array/prototype/forEach/length.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-13.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-7.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-3.js
+built-ins/Array/prototype/forEach/15.4.4.18-1-9.js
+built-ins/Array/prototype/forEach/call-with-boolean.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-7.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-18.js
+built-ins/Array/prototype/forEach/S15.4.4.18_A1.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-b-1.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-10.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-2.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-9.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-19.js
+built-ins/Array/prototype/forEach/15.4.4.18-8-11.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-11.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-b-10.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-9.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-17.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-21.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-12.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-7.js
+built-ins/Array/prototype/forEach/prop-desc.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-11.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-11.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-21.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-13.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-15.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-18.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-4.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-11.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-22.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-9.js
+built-ins/Array/prototype/forEach/15.4.4.18-1-2.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-2.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-4.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-8.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-4.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-9.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-5.js
+built-ins/Array/prototype/forEach/15.4.4.18-1-3.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-7.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-31.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-20.js
+built-ins/Array/prototype/forEach/15.4.4.18-1-13.js
+built-ins/Array/prototype/forEach/15.4.4.18-1-4.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-14.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-b-3.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-18.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-19.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-20.js
+built-ins/Array/prototype/forEach/15.4.4.18-8-7.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-6.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-10.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-12.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-4.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-25.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-8.js
+built-ins/Array/prototype/forEach/15.4.4.18-8-8.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-8.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-3.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-7.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-19.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-23.js
+built-ins/Array/prototype/forEach/15.4.4.18-1-10.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-5.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-3.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-16.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-13.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-b-11.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-b-8.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-2.js
+built-ins/Array/prototype/forEach/S15.4.4.18_A2.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-26.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-23.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-17.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-27.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-5.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-3.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-15.js
+built-ins/Array/prototype/forEach/15.4.4.18-8-9.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-b-15.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-2.js
+built-ins/Array/prototype/forEach/15.4.4.18-8-1.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-11.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-4.js
+built-ins/Array/prototype/forEach/15.4.4.18-8-12.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-7.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-21.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-3.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-13.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-1.js
+built-ins/Array/prototype/forEach/15.4.4.18-1-7.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-22.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-6.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-8.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-24.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-18.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-b-4.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-1-s.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-14.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-5.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-5.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-22.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-11.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-17.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-30.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-19.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-18.js
+built-ins/Array/prototype/forEach/15.4.4.18-8-10.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-b-13.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-24.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-23.js
+built-ins/Array/prototype/forEach/15.4.4.18-1-15.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-2.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-1.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-16.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-6.js
+built-ins/Array/prototype/forEach/name.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-b-6.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-4.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-1.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-b-7.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-b-9.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-10.js
+built-ins/Array/prototype/forEach/15.4.4.18-1-6.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-13.js
+built-ins/Array/prototype/forEach/not-a-constructor.js
+built-ins/Array/prototype/forEach/15.4.4.18-8-2.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-9.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-12.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-16.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-5.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-4.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-1.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-17.js
+built-ins/Array/prototype/forEach/15.4.4.18-8-13.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-7.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-9.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-8.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-25.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-b-16.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-20.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-14.js
+built-ins/Array/prototype/forEach/15.4.4.18-1-14.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-b-12.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-1.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-17.js
+built-ins/Array/prototype/forEach/15.4.4.18-1-8.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-28.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-12.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-1.js
+built-ins/Array/prototype/forEach/15.4.4.18-8-5.js
+built-ins/Array/prototype/forEach/15.4.4.18-8-4.js
+built-ins/Array/prototype/forEach/15.4.4.18-1-12.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-10.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-3.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-12.js
+built-ins/Array/prototype/forEach/15.4.4.18-2-6.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-16.js
+built-ins/Array/prototype/forEach/15.4.4.18-1-11.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-21.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-b-2.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-b-14.js
+built-ins/Array/prototype/forEach/15.4.4.18-8-6.js
+built-ins/Array/prototype/forEach/15.4.4.18-5-15.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-22.js
+built-ins/Array/prototype/forEach/15.4.4.18-8-3.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-2.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-b-5.js
+built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-29.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-5.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-9.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-5.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-12.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-ii-1.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-21.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-4.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-10.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-24.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-7.js
+built-ins/Array/prototype/indexOf/15.4.4.14-4-10.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-29.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-16.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-18.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-10.js
+built-ins/Array/prototype/indexOf/length.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-1.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-14.js
+built-ins/Array/prototype/indexOf/call-with-boolean.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-1.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-22.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-18.js
+built-ins/Array/prototype/indexOf/calls-only-has-on-prototype-after-length-zeroed.js
+built-ins/Array/prototype/indexOf/fromindex-zero-conversion.js
+built-ins/Array/prototype/indexOf/15.4.4.14-1-3.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-ii-4.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-15.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-11.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-9.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-1.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-7.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-6.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-22.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-1.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-8.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-9.js
+built-ins/Array/prototype/indexOf/prop-desc.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-25.js
+built-ins/Array/prototype/indexOf/length-zero-returns-minus-one.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-12.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-iii-2.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-ii-2.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-11.js
+built-ins/Array/prototype/indexOf/15.4.4.14-4-9.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-19.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-19.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-ii-6.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-23.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-10.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-9.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-12.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-3.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-17.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-7.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-11.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-6.js
+built-ins/Array/prototype/indexOf/15.4.4.14-8-1.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-27.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-31.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-16.js
+built-ins/Array/prototype/indexOf/15.4.4.14-7-4.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-1.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-2.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-8.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-3.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-2.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-14.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-10.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-30.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-32.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-23.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-ii-9.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-4.js
+built-ins/Array/prototype/indexOf/15.4.4.14-1-2.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-26.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-ii-5.js
+built-ins/Array/prototype/indexOf/15.4.4.14-4-6.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-5.js
+built-ins/Array/prototype/indexOf/15.4.4.14-8-2.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-28.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-6.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-26.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-6.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-6.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-28.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-22.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-20.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-9.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-15.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-25.js
+built-ins/Array/prototype/indexOf/15.4.4.14-4-5.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-28.js
+built-ins/Array/prototype/indexOf/15.4.4.14-4-2.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-18.js
+built-ins/Array/prototype/indexOf/15.4.4.14-1-8.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-10.js
+built-ins/Array/prototype/indexOf/15.4.4.14-1-12.js
+built-ins/Array/prototype/indexOf/15.4.4.14-1-14.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-17.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-30.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-ii-3.js
+built-ins/Array/prototype/indexOf/length-near-integer-limit.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-8.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-12.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-ii-11.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-29.js
+built-ins/Array/prototype/indexOf/15.4.4.14-1-4.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-19.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-2.js
+built-ins/Array/prototype/indexOf/15.4.4.14-1-6.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-18.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-13.js
+built-ins/Array/prototype/indexOf/15.4.4.14-1-10.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-15.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-2.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-12.js
+built-ins/Array/prototype/indexOf/15.4.4.14-1-9.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-8.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-13.js
+built-ins/Array/prototype/indexOf/15.4.4.14-1-1.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-13.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-13.js
+built-ins/Array/prototype/indexOf/15.4.4.14-4-4.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-17.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-20.js
+built-ins/Array/prototype/indexOf/15.4.4.14-1-5.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-3.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-3.js
+built-ins/Array/prototype/indexOf/15.4.4.14-4-8.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-17.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-24.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-16.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-8.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-16.js
+built-ins/Array/prototype/indexOf/15.4.4.14-4-1.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-15.js
+built-ins/Array/prototype/indexOf/15.4.4.14-7-5.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-4.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-7.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-11.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-11.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-8.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-1.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-33.js
+built-ins/Array/prototype/indexOf/name.js
+built-ins/Array/prototype/indexOf/15.4.4.14-7-2.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-1.js
+built-ins/Array/prototype/indexOf/15.4.4.14-10-2.js
+built-ins/Array/prototype/indexOf/15.4.4.14-8-3.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-11.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-4.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-6.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-29.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-3.js
+built-ins/Array/prototype/indexOf/15.4.4.14-4-3.js
+built-ins/Array/prototype/indexOf/15.4.4.14-8-4.js
+built-ins/Array/prototype/indexOf/15.4.4.14-1-7.js
+built-ins/Array/prototype/indexOf/not-a-constructor.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-5.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-14.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-5.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-3.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-17.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-ii-7.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-7.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-9.js
+built-ins/Array/prototype/indexOf/15.4.4.14-10-1.js
+built-ins/Array/prototype/indexOf/15.4.4.14-7-1.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-21.js
+built-ins/Array/prototype/indexOf/15.4.4.14-1-11.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-4.js
+built-ins/Array/prototype/indexOf/15.4.4.14-4-11.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-19.js
+built-ins/Array/prototype/indexOf/15.4.4.14-7-3.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-iii-1.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-ii-8.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-19.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-13.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-10.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-5.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-14.js
+built-ins/Array/prototype/indexOf/15.4.4.14-1-15.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-2.js
+built-ins/Array/prototype/indexOf/15.4.4.14-3-18.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-25.js
+built-ins/Array/prototype/indexOf/15.4.4.14-2-14.js
+built-ins/Array/prototype/indexOf/15.4.4.14-6-1.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-ii-10.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-a-7.js
+built-ins/Array/prototype/indexOf/15.4.4.14-4-7.js
+built-ins/Array/prototype/indexOf/15.4.4.14-1-13.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-21.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-2.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-4.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-20.js
+built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-31.js
+built-ins/Array/prototype/indexOf/15.4.4.14-5-27.js
+built-ins/Array/prototype/sort/length.js
+built-ins/Array/prototype/sort/S15.4.4.11_A1.4_T2.js
+built-ins/Array/prototype/sort/S15.4.4.11_A2.1_T3.js
+built-ins/Array/prototype/sort/S15.4.4.11_A6_T2.js
+built-ins/Array/prototype/sort/prop-desc.js
+built-ins/Array/prototype/sort/S15.4.4.11_A1.4_T1.js
+built-ins/Array/prototype/sort/bug_596_2.js
+built-ins/Array/prototype/sort/S15.4.4.11_A1.3_T1.js
+built-ins/Array/prototype/sort/bug_596_1.js
+built-ins/Array/prototype/sort/comparefn-nonfunction-call-throws.js
+built-ins/Array/prototype/sort/S15.4.4.11_A7.7.js
+built-ins/Array/prototype/sort/S15.4.4.11_A1.2_T2.js
+built-ins/Array/prototype/sort/S15.4.4.11_A3_T2.js
+built-ins/Array/prototype/sort/S15.4.4.11_A5_T1.js
+built-ins/Array/prototype/sort/stability-513-elements.js
+built-ins/Array/prototype/sort/S15.4.4.11_A2.1_T2.js
+built-ins/Array/prototype/sort/stability-5-elements.js
+built-ins/Array/prototype/sort/S15.4.4.11_A1.5_T1.js
+built-ins/Array/prototype/sort/S15.4.4.11_A4_T3.js
+built-ins/Array/prototype/sort/stability-2048-elements.js
+built-ins/Array/prototype/sort/S15.4.4.11_A2.2_T2.js
+built-ins/Array/prototype/sort/S15.4.4.11_A2.2_T1.js
+built-ins/Array/prototype/sort/S15.4.4.11_A1.1_T1.js
+built-ins/Array/prototype/sort/S15.4.4.11_A1.2_T1.js
+built-ins/Array/prototype/sort/S15.4.4.11_A2.1_T1.js
+built-ins/Array/prototype/sort/name.js
+built-ins/Array/prototype/sort/not-a-constructor.js
+built-ins/Array/prototype/sort/S15.4.4.11_A2.2_T3.js
+built-ins/Array/prototype/sort/S15.4.4.11_A8.js
+built-ins/Array/prototype/sort/stability-11-elements.js
+built-ins/Array/prototype/sort/S15.4.4.11_A3_T1.js
+built-ins/Array/prototype/Symbol.unscopables/prop-desc.js
+built-ins/Array/prototype/Symbol.unscopables/value.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.2_T4.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.2_T1.js
+built-ins/Array/prototype/splice/create-species-undef-invalid-len.js
+built-ins/Array/prototype/splice/S15.4.4.12_A2.2_T2.js
+built-ins/Array/prototype/splice/length.js
+built-ins/Array/prototype/splice/S15.4.4.12_A2.2_T4.js
+built-ins/Array/prototype/splice/call-with-boolean.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.1_T1.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.5_T1.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.1_T3.js
+built-ins/Array/prototype/splice/prop-desc.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.3_T2.js
+built-ins/Array/prototype/splice/create-ctor-non-object.js
+built-ins/Array/prototype/splice/S15.4.4.12_A2.1_T1.js
+built-ins/Array/prototype/splice/S15.4.4.12_A2.2_T3.js
+built-ins/Array/prototype/splice/S15.4.4.12_A4_T2.js
+built-ins/Array/prototype/splice/S15.4.4.12_A2_T4.js
+built-ins/Array/prototype/splice/S15.4.4.12_A6.1_T2.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.4_T1.js
+built-ins/Array/prototype/splice/create-species-neg-zero.js
+built-ins/Array/prototype/splice/create-species.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.3_T1.js
+built-ins/Array/prototype/splice/clamps-length-to-integer-limit.js
+built-ins/Array/prototype/splice/target-array-with-non-configurable-property.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.1_T5.js
+built-ins/Array/prototype/splice/create-non-array-invalid-len.js
+built-ins/Array/prototype/splice/called_with_one_argument.js
+built-ins/Array/prototype/splice/create-non-array.js
+built-ins/Array/prototype/splice/S15.4.4.12_A2.2_T5.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.4_T3.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.4_T5.js
+built-ins/Array/prototype/splice/property-traps-order-with-species.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.1_T4.js
+built-ins/Array/prototype/splice/length-exceeding-integer-limit-shrink-array.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.1_T6.js
+built-ins/Array/prototype/splice/S15.4.4.12_A6.1_T3.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.2_T5.js
+built-ins/Array/prototype/splice/15.4.4.12-9-c-ii-1.js
+built-ins/Array/prototype/splice/create-species-abrupt.js
+built-ins/Array/prototype/splice/create-species-non-ctor.js
+built-ins/Array/prototype/splice/target-array-non-extensible.js
+built-ins/Array/prototype/splice/length-and-deleteCount-exceeding-integer-limit.js
+built-ins/Array/prototype/splice/S15.4.4.12_A6.1_T1.js
+built-ins/Array/prototype/splice/S15.4.4.12_A3_T1.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.4_T4.js
+built-ins/Array/prototype/splice/S15.4.4.12_A2_T1.js
+built-ins/Array/prototype/splice/S15.4.4.12_A4_T3.js
+built-ins/Array/prototype/splice/S15.4.4.12_A5.7.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.1_T2.js
+built-ins/Array/prototype/splice/S15.4.4.12_A3_T3.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.2_T3.js
+built-ins/Array/prototype/splice/name.js
+built-ins/Array/prototype/splice/create-species-undef.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.4_T2.js
+built-ins/Array/prototype/splice/create-revoked-proxy.js
+built-ins/Array/prototype/splice/S15.4.4.12_A2_T2.js
+built-ins/Array/prototype/splice/create-proto-from-ctor-realm-array.js
+built-ins/Array/prototype/splice/S15.4.4.12_A2.1_T3.js
+built-ins/Array/prototype/splice/not-a-constructor.js
+built-ins/Array/prototype/splice/create-species-null.js
+built-ins/Array/prototype/splice/set_length_no_args.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.3_T4.js
+built-ins/Array/prototype/splice/15.4.4.12-9-a-1.js
+built-ins/Array/prototype/splice/create-proto-from-ctor-realm-non-array.js
+built-ins/Array/prototype/splice/S15.4.4.12_A2_T3.js
+built-ins/Array/prototype/splice/create-ctor-poisoned.js
+built-ins/Array/prototype/splice/target-array-with-non-writable-property.js
+built-ins/Array/prototype/splice/create-species-length-exceeding-integer-limit.js
+built-ins/Array/prototype/splice/throws-if-integer-limit-exceeded.js
+built-ins/Array/prototype/splice/S15.4.4.12_A2.1_T4.js
+built-ins/Array/prototype/splice/S15.4.4.12_A2.2_T1.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.3_T3.js
+built-ins/Array/prototype/splice/S15.4.4.12_A2.1_T2.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.3_T5.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.4_T6.js
+built-ins/Array/prototype/splice/create-species-poisoned.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.2_T2.js
+built-ins/Array/prototype/splice/create-proxy.js
+built-ins/Array/prototype/splice/length-near-integer-limit-grow-array.js
+built-ins/Array/prototype/splice/S15.4.4.12_A4_T1.js
+built-ins/Array/prototype/splice/S15.4.4.12_A1.5_T2.js
+built-ins/Array/prototype/splice/S15.4.4.12_A2.1_T5.js
+built-ins/Array/prototype/fill/return-abrupt-from-start-as-symbol.js
+built-ins/Array/prototype/fill/fill-values-relative-start.js
+built-ins/Array/prototype/fill/fill-values.js
+built-ins/Array/prototype/fill/length.js
+built-ins/Array/prototype/fill/call-with-boolean.js
+built-ins/Array/prototype/fill/return-abrupt-from-this.js
+built-ins/Array/prototype/fill/fill-values-custom-start-and-end.js
+built-ins/Array/prototype/fill/prop-desc.js
+built-ins/Array/prototype/fill/return-abrupt-from-this-length-as-symbol.js
+built-ins/Array/prototype/fill/coerced-indexes.js
+built-ins/Array/prototype/fill/return-abrupt-from-setting-property-value.js
+built-ins/Array/prototype/fill/return-this.js
+built-ins/Array/prototype/fill/length-near-integer-limit.js
+built-ins/Array/prototype/fill/return-abrupt-from-end.js
+built-ins/Array/prototype/fill/name.js
+built-ins/Array/prototype/fill/return-abrupt-from-this-length.js
+built-ins/Array/prototype/fill/not-a-constructor.js
+built-ins/Array/prototype/fill/return-abrupt-from-start.js
+built-ins/Array/prototype/fill/return-abrupt-from-end-as-symbol.js
+built-ins/Array/prototype/fill/fill-values-relative-end.js
+built-ins/Array/prototype/find/predicate-call-parameters.js
+built-ins/Array/prototype/find/predicate-call-this-non-strict.js
+built-ins/Array/prototype/find/length.js
+built-ins/Array/prototype/find/call-with-boolean.js
+built-ins/Array/prototype/find/return-abrupt-from-this.js
+built-ins/Array/prototype/find/prop-desc.js
+built-ins/Array/prototype/find/return-abrupt-from-this-length-as-symbol.js
+built-ins/Array/prototype/find/predicate-not-called-on-empty-array.js
+built-ins/Array/prototype/find/predicate-is-not-callable-throws.js
+built-ins/Array/prototype/find/return-abrupt-from-property.js
+built-ins/Array/prototype/find/predicate-call-this-strict.js
+built-ins/Array/prototype/find/predicate-called-for-each-array-property.js
+built-ins/Array/prototype/find/return-undefined-if-predicate-returns-false-value.js
+built-ins/Array/prototype/find/name.js
+built-ins/Array/prototype/find/return-abrupt-from-predicate-call.js
+built-ins/Array/prototype/find/return-abrupt-from-this-length.js
+built-ins/Array/prototype/find/not-a-constructor.js
+built-ins/Array/prototype/find/array-altered-during-loop.js
+built-ins/Array/prototype/find/return-found-value-predicate-result-is-true.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-5.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-29.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-c-4.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-18.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-22.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-8.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-2.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-7-5.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-22.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-4.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-15.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-18.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-4.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-12.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-5.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-10-1.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-1-15.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-c-7.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-26.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-14.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-1-4.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-22.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-28.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-5-3.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-1.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-7-2.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-23.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-6.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-4-15.js
+built-ins/Array/prototype/reduceRight/length.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-18.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-9.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-4.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-5.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-33.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-27.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-15.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-21.js
+built-ins/Array/prototype/reduceRight/call-with-boolean.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-19.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-19.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-25.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-4.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-3.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-1.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-16.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-29.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-3.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-19.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-22.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-16.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-7.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-30.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-25.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-31.js
+built-ins/Array/prototype/reduceRight/prop-desc.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-1.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-23.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-25.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-20.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-7-7.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-1-9.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-20.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-19.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-1-5.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-33.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-10-6.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-1.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-5-4.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-4-6.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-2.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-c-8.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-33.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-3.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-10.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-3.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-4-11.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-31.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-5-5.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-10-4.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-9.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-4-4.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-8.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-4-7.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-7-10.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-5-10.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-16.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-14.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-5-1.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-7-9.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-16.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-5-13.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-27.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-12.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-5.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-5.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-11.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-12.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-17.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-10.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-1.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-5-11.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-7-4.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-20.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-5-7.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-13.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-19.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-28.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-4-9.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-4-5.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-7-8.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-24.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-21.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-1.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-27.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-6.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-1.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-13.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-22.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-16.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-30.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-5.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-8.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-c-6.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-1-8.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-1-3.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-14.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-7-11.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-7.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-29.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-3.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-5-2.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-5.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-13.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-9.js
+built-ins/Array/prototype/reduceRight/length-near-integer-limit.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-21.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-10.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-20.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-c-3.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-9.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-c-1.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-11.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-1-14.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-10.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-11.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-21.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-ii-2.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-26.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-1-10.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-13.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-10.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-5-8.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-32.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-17.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-1-2.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-11.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-7.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-12.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-10-7.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-2.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-14.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-15.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-1-11.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-1-7.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-35.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-1-6.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-4.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-7.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-27.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-10-3.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-25.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-1-13.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-25.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-17.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-5-12.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-11.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-20.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-34.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-14.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-4-8.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-17.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-10-5.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-37.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-18.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-ii-1.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-32.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-17.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-23.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-1.js
+built-ins/Array/prototype/reduceRight/name.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-26.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-12.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-14.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-9.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-4-s.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-10-2.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-2.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-6.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-24.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-4.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-5-9.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-7.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-10-8.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-17.js
+built-ins/Array/prototype/reduceRight/not-a-constructor.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-1-12.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-4-2.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-6.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-6.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-28.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-31.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-13.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-1.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-8.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-3.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-2.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-7-3.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-30.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-32.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-2.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-5-6.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-4-1.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-4.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-9.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-4-10.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-13.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-8.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-3.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-11.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-c-5.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-2.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-9.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-7-1.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-19.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-7.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-26.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-7.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-b-6.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-12.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-c-2.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-3-15.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-29.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-4-3.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-24.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-3.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-21.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-10.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-18.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-18.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-8.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-1-1.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-7-6.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-2-2.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-4-12.js
+built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-28.js
+built-ins/Array/prototype/join/S15.4.4.5_A1.3_T1.js
+built-ins/Array/prototype/join/length.js
+built-ins/Array/prototype/join/call-with-boolean.js
+built-ins/Array/prototype/join/S15.4.4.5_A2_T1.js
+built-ins/Array/prototype/join/prop-desc.js
+built-ins/Array/prototype/join/S15.4.4.5_A3.2_T2.js
+built-ins/Array/prototype/join/S15.4.4.5_A2_T4.js
+built-ins/Array/prototype/join/S15.4.4.5_A5_T1.js
+built-ins/Array/prototype/join/S15.4.4.5_A4_T3.js
+built-ins/Array/prototype/join/S15.4.4.5_A6.7.js
+built-ins/Array/prototype/join/S15.4.4.5_A3.2_T1.js
+built-ins/Array/prototype/join/S15.4.4.5_A6.6.js
+built-ins/Array/prototype/join/S15.4.4.5_A1.1_T1.js
+built-ins/Array/prototype/join/S15.4.4.5_A1.2_T2.js
+built-ins/Array/prototype/join/name.js
+built-ins/Array/prototype/join/S15.4.4.5_A1.2_T1.js
+built-ins/Array/prototype/join/S15.4.4.5_A2_T2.js
+built-ins/Array/prototype/join/not-a-constructor.js
+built-ins/Array/prototype/join/S15.4.4.5_A3.1_T1.js
+built-ins/Array/prototype/join/S15.4.4.5_A3.1_T2.js
+built-ins/Array/prototype/join/S15.4.4.5_A2_T3.js
+built-ins/Array/prototype/concat/Array.prototype.concat_sloppy-arguments.js
+built-ins/Array/prototype/concat/Array.prototype.concat_non-array.js
+built-ins/Array/prototype/concat/Array.prototype.concat_spreadable-sparse-object.js
+built-ins/Array/prototype/concat/create-species-with-non-configurable-property.js
+built-ins/Array/prototype/concat/Array.prototype.concat_spreadable-function.js
+built-ins/Array/prototype/concat/Array.prototype.concat_sloppy-arguments-throws.js
+built-ins/Array/prototype/concat/Array.prototype.concat_array-like-negative-length.js
+built-ins/Array/prototype/concat/Array.prototype.concat_spreadable-boolean-wrapper.js
+built-ins/Array/prototype/concat/length.js
+built-ins/Array/prototype/concat/call-with-boolean.js
+built-ins/Array/prototype/concat/Array.prototype.concat_spreadable-reg-exp.js
+built-ins/Array/prototype/concat/prop-desc.js
+built-ins/Array/prototype/concat/Array.prototype.concat_array-like.js
+built-ins/Array/prototype/concat/15.4.4.4-5-c-i-1.js
+built-ins/Array/prototype/concat/create-species-with-non-writable-property.js
+built-ins/Array/prototype/concat/create-ctor-non-object.js
+built-ins/Array/prototype/concat/S15.4.4.4_A1_T1.js
+built-ins/Array/prototype/concat/Array.prototype.concat_array-like-primitive-non-number-length.js
+built-ins/Array/prototype/concat/S15.4.4.4_A1_T4.js
+built-ins/Array/prototype/concat/create-species.js
+built-ins/Array/prototype/concat/arg-length-near-integer-limit.js
+built-ins/Array/prototype/concat/create-non-array.js
+built-ins/Array/prototype/concat/is-concat-spreadable-val-truthy.js
+built-ins/Array/prototype/concat/is-concat-spreadable-proxy-revoked.js
+built-ins/Array/prototype/concat/S15.4.4.4_A1_T2.js
+built-ins/Array/prototype/concat/15.4.4.4-5-b-iii-3-b-1.js
+built-ins/Array/prototype/concat/arg-length-exceeding-integer-limit.js
+built-ins/Array/prototype/concat/Array.prototype.concat_holey-sloppy-arguments.js
+built-ins/Array/prototype/concat/Array.prototype.concat_strict-arguments.js
+built-ins/Array/prototype/concat/Array.prototype.concat_array-like-length-value-of-throws.js
+built-ins/Array/prototype/concat/Array.prototype.concat_sloppy-arguments-with-dupes.js
+built-ins/Array/prototype/concat/Array.prototype.concat_spreadable-string-wrapper.js
+built-ins/Array/prototype/concat/create-species-abrupt.js
+built-ins/Array/prototype/concat/create-species-non-ctor.js
+built-ins/Array/prototype/concat/is-concat-spreadable-get-order.js
+built-ins/Array/prototype/concat/is-concat-spreadable-proxy.js
+built-ins/Array/prototype/concat/S15.4.4.4_A1_T3.js
+built-ins/Array/prototype/concat/Array.prototype.concat_length-throws.js
+built-ins/Array/prototype/concat/S15.4.4.4_A3_T3.js
+built-ins/Array/prototype/concat/S15.4.4.4_A3_T1.js
+built-ins/Array/prototype/concat/Array.prototype.concat_spreadable-getter-throws.js
+built-ins/Array/prototype/concat/name.js
+built-ins/Array/prototype/concat/S15.4.4.4_A3_T2.js
+built-ins/Array/prototype/concat/create-species-undef.js
+built-ins/Array/prototype/concat/Array.prototype.concat_array-like-string-length.js
+built-ins/Array/prototype/concat/create-revoked-proxy.js
+built-ins/Array/prototype/concat/create-proto-from-ctor-realm-array.js
+built-ins/Array/prototype/concat/not-a-constructor.js
+built-ins/Array/prototype/concat/create-species-null.js
+built-ins/Array/prototype/concat/Array.prototype.concat_array-like-length-to-string-throws.js
+built-ins/Array/prototype/concat/is-concat-spreadable-val-undefined.js
+built-ins/Array/prototype/concat/create-proto-from-ctor-realm-non-array.js
+built-ins/Array/prototype/concat/create-species-non-extensible.js
+built-ins/Array/prototype/concat/is-concat-spreadable-get-err.js
+built-ins/Array/prototype/concat/Array.prototype.concat_no-prototype.js
+built-ins/Array/prototype/concat/Array.prototype.concat_large-typed-array.js
+built-ins/Array/prototype/concat/create-ctor-poisoned.js
+built-ins/Array/prototype/concat/S15.4.4.4_A2_T1.js
+built-ins/Array/prototype/concat/S15.4.4.4_A2_T2.js
+built-ins/Array/prototype/concat/create-species-with-non-writable-property-spreadable.js
+built-ins/Array/prototype/concat/is-concat-spreadable-is-array-proxy-revoked.js
+built-ins/Array/prototype/concat/Array.prototype.concat_spreadable-number-wrapper.js
+built-ins/Array/prototype/concat/Array.prototype.concat_array-like-to-length-throws.js
+built-ins/Array/prototype/concat/create-species-poisoned.js
+built-ins/Array/prototype/concat/create-species-non-extensible-spreadable.js
+built-ins/Array/prototype/concat/is-concat-spreadable-val-falsey.js
+built-ins/Array/prototype/concat/create-proxy.js
+built-ins/Array/prototype/concat/Array.prototype.concat_small-typed-array.js
+built-ins/Array/prototype/concat/create-species-with-non-configurable-property-spreadable.js
+built-ins/Array/proto-from-ctor-realm-one.js
+built-ins/Array/of/does-not-use-set-for-indices.js
+built-ins/Array/of/return-abrupt-from-setting-length.js
+built-ins/Array/of/length.js
+built-ins/Array/of/return-abrupt-from-data-property.js
+built-ins/Array/of/return-a-custom-instance.js
+built-ins/Array/of/return-abrupt-from-contructor.js
+built-ins/Array/of/return-a-new-array-object.js
+built-ins/Array/of/return-abrupt-from-data-property-using-proxy.js
+built-ins/Array/of/of.js
+built-ins/Array/of/sets-length.js
+built-ins/Array/of/name.js
+built-ins/Array/of/not-a-constructor.js
+built-ins/Array/of/proto-from-ctor-realm.js
+built-ins/Array/15.4.5.1-5-1.js
+built-ins/Array/is-a-constructor.js
+built-ins/Array/S15.4.5.2_A3_T1.js
+built-ins/Array/Symbol.species/symbol-species.js
+built-ins/Array/Symbol.species/return-value.js
+built-ins/Array/S15.4.5.2_A1_T2.js
+built-ins/Array/S15.4.3_A1.1_T3.js
+built-ins/Array/from/iter-map-fn-args.js
+built-ins/Array/from/iter-set-elem-prop-err.js
+built-ins/Array/from/Array.from-descriptor.js
+built-ins/Array/from/calling-from-valid-1-onlyStrict.js
+built-ins/Array/from/from-string.js
+built-ins/Array/from/iter-map-fn-this-non-strict.js
+built-ins/Array/from/iter-cstm-ctor-err.js
+built-ins/Array/from/iter-get-iter-err.js
+built-ins/Array/from/items-is-arraybuffer.js
+built-ins/Array/from/iter-set-elem-prop.js
+built-ins/Array/from/Array.from-name.js
+built-ins/Array/from/Array.from_forwards-length-for-array-likes.js
+built-ins/Array/from/iter-map-fn-this-strict.js
+built-ins/Array/from/iter-cstm-ctor.js
+built-ins/Array/from/elements-deleted-after.js
+built-ins/Array/from/mapfn-is-not-callable-typeerror.js
+built-ins/Array/from/iter-set-length.js
+built-ins/Array/from/iter-map-fn-return.js
+built-ins/Array/from/items-is-null-throws.js
+built-ins/Array/from/iter-set-length-err.js
+built-ins/Array/from/iter-set-elem-prop-non-writable.js
+built-ins/Array/from/iter-get-iter-val-err.js
+built-ins/Array/from/get-iter-method-err.js
+built-ins/Array/from/calling-from-valid-2.js
+built-ins/Array/from/source-object-length-set-elem-prop-non-writable.js
+built-ins/Array/from/iter-adv-err.js
+built-ins/Array/from/not-a-constructor.js
+built-ins/Array/from/Array.from_arity.js
+built-ins/Array/from/mapfn-is-symbol-throws.js
+built-ins/Array/from/from-array.js
+built-ins/Array/from/calling-from-valid-1-noStrict.js
+built-ins/Array/from/elements-updated-after.js
+built-ins/Array/from/elements-added-after.js
+built-ins/Array/from/iter-map-fn-this-arg.js
+built-ins/Array/from/source-object-length-set-elem-prop-err.js
+built-ins/Array/from/iter-map-fn-err.js
+built-ins/Array/property-cast-nan-infinity.js
+built-ins/Array/S15.4.1_A1.3_T1.js
+built-ins/Array/S15.4.2.1_A1.1_T3.js
+built-ins/Array/isArray/15.4.3.2-0-4.js
+built-ins/Array/isArray/15.4.3.2-2-2.js
+built-ins/Array/isArray/15.4.3.2-2-1.js
+built-ins/Array/isArray/15.4.3.2-1-7.js
+built-ins/Array/isArray/15.4.3.2-1-13.js
+built-ins/Array/isArray/15.4.3.2-1-10.js
+built-ins/Array/isArray/15.4.3.2-1-15.js
+built-ins/Array/isArray/15.4.3.2-0-2.js
+built-ins/Array/isArray/15.4.3.2-1-4.js
+built-ins/Array/isArray/15.4.3.2-1-5.js
+built-ins/Array/isArray/15.4.3.2-0-1.js
+built-ins/Array/isArray/15.4.3.2-1-12.js
+built-ins/Array/isArray/descriptor.js
+built-ins/Array/isArray/15.4.3.2-2-3.js
+built-ins/Array/isArray/15.4.3.2-0-7.js
+built-ins/Array/isArray/15.4.3.2-1-3.js
+built-ins/Array/isArray/15.4.3.2-0-3.js
+built-ins/Array/isArray/15.4.3.2-1-1.js
+built-ins/Array/isArray/not-a-constructor.js
+built-ins/Array/isArray/15.4.3.2-1-9.js
+built-ins/Array/isArray/15.4.3.2-1-8.js
+built-ins/Array/isArray/15.4.3.2-0-5.js
+built-ins/Array/isArray/15.4.3.2-1-11.js
+built-ins/Array/isArray/15.4.3.2-0-6.js
+built-ins/Array/isArray/15.4.3.2-1-2.js
+built-ins/Array/isArray/15.4.3.2-1-6.js
+built-ins/Array/S15.4.2.1_A1.2_T1.js
+built-ins/Array/name.js
+built-ins/Array/S15.4.1_A1.1_T1.js
+built-ins/Array/S15.4_A1.1_T7.js
+built-ins/Array/S15.4.5.2_A3_T3.js
+built-ins/Array/S15.4.3_A1.1_T1.js
+built-ins/Array/property-cast-boolean-primitive.js
+built-ins/Array/S15.4.2.1_A1.1_T1.js
+built-ins/Array/S15.4.5.2_A1_T1.js
+built-ins/Array/S15.4.1_A2.2_T1.js
+built-ins/Array/S15.4.5.2_A2_T1.js
+built-ins/Array/S15.4.2.1_A2.2_T1.js
+built-ins/Array/S15.4.5.1_A1.2_T2.js
+built-ins/Array/S15.4.2.1_A1.3_T1.js
+built-ins/Array/S15.4_A1.1_T6.js
+built-ins/Array/S15.4.3_A1.1_T2.js
+built-ins/Array/S15.4_A1.1_T4.js
+built-ins/Array/15.4.5.1-5-2.js
+built-ins/Array/S15.4_A1.1_T10.js
+built-ins/Array/length/S15.4.5.2_A3_T4.js
+built-ins/Array/length/S15.4.5.1_A1.1_T1.js
+built-ins/Array/length/S15.4.2.2_A2.3_T1.js
+built-ins/Array/length/S15.4.2.2_A2.3_T4.js
+built-ins/Array/length/S15.4.2.2_A2.3_T5.js
+built-ins/Array/length/define-own-prop-length-overflow-order.js
+built-ins/Array/length/15.4.5.1-3.d-1.js
+built-ins/Array/length/S15.4.4_A1.3_T1.js
+built-ins/Array/length/S15.4.2.2_A2.2_T1.js
+built-ins/Array/length/define-own-prop-length-no-value-order.js
+built-ins/Array/length/S15.4.2.2_A1.2_T1.js
+built-ins/Array/length/S15.4.5.1_A1.3_T1.js
+built-ins/Array/length/15.4.5.1-3.d-2.js
+built-ins/Array/length/S15.4.5.1_A1.2_T3.js
+built-ins/Array/length/S15.4.5.1_A1.3_T2.js
+built-ins/Array/length/S15.4.2.2_A2.2_T3.js
+built-ins/Array/length/S15.4.2.2_A2.2_T2.js
+built-ins/Array/length/define-own-prop-length-coercion-order-set.js
+built-ins/Array/length/S15.4.2.2_A2.3_T2.js
+built-ins/Array/length/S15.4.2.2_A1.1_T2.js
+built-ins/Array/length/15.4.5.1-3.d-3.js
+built-ins/Array/length/S15.4.2.2_A2.3_T3.js
+built-ins/Array/length/S15.4.2.2_A2.1_T1.js
+built-ins/Array/length/S15.4.2.2_A1.1_T3.js
+built-ins/Array/length/S15.4.5.1_A1.1_T2.js
+built-ins/Array/length/S15.4.2.2_A1.1_T1.js
+built-ins/Array/length/define-own-prop-length-coercion-order.js
+built-ins/Array/length/S15.4.5.1_A1.2_T1.js
+built-ins/ArrayBuffer/isView/no-arg.js
+built-ins/ArrayBuffer/isView/length.js
+built-ins/ArrayBuffer/isView/arg-is-arraybuffer.js
+built-ins/ArrayBuffer/isView/prop-desc.js
+built-ins/ArrayBuffer/isView/invoked-as-a-fn.js
+built-ins/ArrayBuffer/isView/arg-is-dataview-buffer.js
+built-ins/ArrayBuffer/isView/arg-is-dataview.js
+built-ins/ArrayBuffer/isView/arg-has-no-viewedarraybuffer.js
+built-ins/ArrayBuffer/isView/arg-is-typedarray.js
+built-ins/ArrayBuffer/isView/arg-is-dataview-constructor.js
+built-ins/ArrayBuffer/isView/name.js
+built-ins/ArrayBuffer/isView/arg-is-typedarray-subclass-instance.js
+built-ins/ArrayBuffer/isView/arg-is-typedarray-constructor.js
+built-ins/ArrayBuffer/isView/not-a-constructor.js
+built-ins/ArrayBuffer/isView/arg-is-dataview-subclass-instance.js
+built-ins/ArrayBuffer/isView/arg-is-typedarray-buffer.js
+built-ins/ArrayBuffer/isView/arg-is-not-object.js
+built-ins/ArrayBuffer/toindex-length.js
+built-ins/ArrayBuffer/undefined-newtarget-throws.js
+built-ins/ArrayBuffer/length.js
+built-ins/ArrayBuffer/prop-desc.js
+built-ins/ArrayBuffer/length-is-absent.js
+built-ins/ArrayBuffer/init-zero.js
+built-ins/ArrayBuffer/return-abrupt-from-length-symbol.js
+built-ins/ArrayBuffer/prototype/slice/context-is-not-arraybuffer-object.js
+built-ins/ArrayBuffer/prototype/slice/tointeger-conversion-end.js
+built-ins/ArrayBuffer/prototype/slice/context-is-not-object.js
+built-ins/ArrayBuffer/prototype/slice/negative-start.js
+built-ins/ArrayBuffer/prototype/slice/length.js
+built-ins/ArrayBuffer/prototype/slice/species-returns-same-arraybuffer.js
+built-ins/ArrayBuffer/prototype/slice/species-is-not-object.js
+built-ins/ArrayBuffer/prototype/slice/tointeger-conversion-start.js
+built-ins/ArrayBuffer/prototype/slice/species-constructor-is-undefined.js
+built-ins/ArrayBuffer/prototype/slice/end-default-if-absent.js
+built-ins/ArrayBuffer/prototype/slice/species-is-not-constructor.js
+built-ins/ArrayBuffer/prototype/slice/species-constructor-is-not-object.js
+built-ins/ArrayBuffer/prototype/slice/species-returns-larger-arraybuffer.js
+built-ins/ArrayBuffer/prototype/slice/species-returns-not-arraybuffer.js
+built-ins/ArrayBuffer/prototype/slice/start-exceeds-end.js
+built-ins/ArrayBuffer/prototype/slice/start-default-if-absent.js
+built-ins/ArrayBuffer/prototype/slice/species.js
+built-ins/ArrayBuffer/prototype/slice/species-is-null.js
+built-ins/ArrayBuffer/prototype/slice/descriptor.js
+built-ins/ArrayBuffer/prototype/slice/start-default-if-undefined.js
+built-ins/ArrayBuffer/prototype/slice/end-default-if-undefined.js
+built-ins/ArrayBuffer/prototype/slice/species-returns-smaller-arraybuffer.js
+built-ins/ArrayBuffer/prototype/slice/name.js
+built-ins/ArrayBuffer/prototype/slice/extensible.js
+built-ins/ArrayBuffer/prototype/slice/this-is-sharedarraybuffer.js
+built-ins/ArrayBuffer/prototype/slice/number-conversion.js
+built-ins/ArrayBuffer/prototype/slice/not-a-constructor.js
+built-ins/ArrayBuffer/prototype/slice/start-exceeds-length.js
+built-ins/ArrayBuffer/prototype/slice/species-is-undefined.js
+built-ins/ArrayBuffer/prototype/slice/nonconstructor.js
+built-ins/ArrayBuffer/prototype/slice/end-exceeds-length.js
+built-ins/ArrayBuffer/prototype/slice/negative-end.js
+built-ins/ArrayBuffer/prototype/constructor.js
+built-ins/ArrayBuffer/prototype/Symbol.toStringTag.js
+built-ins/ArrayBuffer/prototype/byteLength/invoked-as-accessor.js
+built-ins/ArrayBuffer/prototype/byteLength/length.js
+built-ins/ArrayBuffer/prototype/byteLength/detached-buffer.js
+built-ins/ArrayBuffer/prototype/byteLength/return-bytelength.js
+built-ins/ArrayBuffer/prototype/byteLength/prop-desc.js
+built-ins/ArrayBuffer/prototype/byteLength/invoked-as-func.js
+built-ins/ArrayBuffer/prototype/byteLength/name.js
+built-ins/ArrayBuffer/prototype/byteLength/this-is-sharedarraybuffer.js
+built-ins/ArrayBuffer/prototype/byteLength/this-has-no-typedarrayname-internal.js
+built-ins/ArrayBuffer/prototype/byteLength/this-is-not-object.js
+built-ins/ArrayBuffer/return-abrupt-from-length.js
+built-ins/ArrayBuffer/is-a-constructor.js
+built-ins/ArrayBuffer/zero-length.js
+built-ins/ArrayBuffer/negative-length-throws.js
+built-ins/ArrayBuffer/Symbol.species/length.js
+built-ins/ArrayBuffer/Symbol.species/symbol-species-name.js
+built-ins/ArrayBuffer/Symbol.species/symbol-species.js
+built-ins/ArrayBuffer/Symbol.species/return-value.js
+built-ins/ArrayBuffer/length-is-too-large-throws.js
+built-ins/ArrayBuffer/data-allocation-after-object-creation.js
+built-ins/ArrayBuffer/name.js
+built-ins/ArrayBuffer/allocation-limit.js
+built-ins/ArrayBuffer/newtarget-prototype-is-not-object.js
+built-ins/ArrayBuffer/proto-from-ctor-realm.js
+built-ins/ArrayBuffer/prototype-from-newtarget.js
+built-ins/DataView/buffer-does-not-have-arraybuffer-data-throws.js
+built-ins/DataView/return-abrupt-tonumber-byteoffset-sab.js
+built-ins/DataView/proto.js
+built-ins/DataView/custom-proto-access-throws-sab.js
+built-ins/DataView/excessive-byteoffset-throws-sab.js
+built-ins/DataView/custom-proto-if-object-is-used-sab.js
+built-ins/DataView/length.js
+built-ins/DataView/return-abrupt-tonumber-bytelength-symbol.js
+built-ins/DataView/return-abrupt-tonumber-bytelength-sab.js
+built-ins/DataView/custom-proto-if-not-object-fallbacks-to-default-prototype-sab.js
+built-ins/DataView/detached-buffer.js
+built-ins/DataView/byteoffset-is-negative-throws-sab.js
+built-ins/DataView/negative-byteoffset-throws.js
+built-ins/DataView/return-abrupt-tonumber-byteoffset-symbol.js
+built-ins/DataView/constructor.js
+built-ins/DataView/negative-bytelength-throws.js
+built-ins/DataView/return-abrupt-tonumber-byteoffset-symbol-sab.js
+built-ins/DataView/toindex-byteoffset.js
+built-ins/DataView/defined-byteoffset-undefined-bytelength-sab.js
+built-ins/DataView/return-abrupt-tonumber-bytelength-symbol-sab.js
+built-ins/DataView/return-instance.js
+built-ins/DataView/custom-proto-if-object-is-used.js
+built-ins/DataView/prototype.js
+built-ins/DataView/defined-byteoffset-undefined-bytelength.js
+built-ins/DataView/custom-proto-access-detaches-buffer.js
+built-ins/DataView/newtarget-undefined-throws.js
+built-ins/DataView/toindex-byteoffset-sab.js
+built-ins/DataView/defined-byteoffset.js
+built-ins/DataView/toindex-bytelength-sab.js
+built-ins/DataView/prototype/getInt16/return-value-clean-arraybuffer.js
+built-ins/DataView/prototype/getInt16/return-values.js
+built-ins/DataView/prototype/getInt16/length.js
+built-ins/DataView/prototype/getInt16/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/getInt16/detached-buffer.js
+built-ins/DataView/prototype/getInt16/negative-byteoffset-throws.js
+built-ins/DataView/prototype/getInt16/detached-buffer-after-toindex-byteoffset.js
+built-ins/DataView/prototype/getInt16/toindex-byteoffset.js
+built-ins/DataView/prototype/getInt16/index-is-out-of-range.js
+built-ins/DataView/prototype/getInt16/return-abrupt-from-tonumber-byteoffset-symbol.js
+built-ins/DataView/prototype/getInt16/return-abrupt-from-tonumber-byteoffset.js
+built-ins/DataView/prototype/getInt16/detached-buffer-before-outofrange-byteoffset.js
+built-ins/DataView/prototype/getInt16/name.js
+built-ins/DataView/prototype/getInt16/not-a-constructor.js
+built-ins/DataView/prototype/getInt16/to-boolean-littleendian.js
+built-ins/DataView/prototype/getInt16/return-values-custom-offset.js
+built-ins/DataView/prototype/getInt16/this-is-not-object.js
+built-ins/DataView/prototype/byteOffset/invoked-as-accessor.js
+built-ins/DataView/prototype/byteOffset/length.js
+built-ins/DataView/prototype/byteOffset/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/byteOffset/detached-buffer.js
+built-ins/DataView/prototype/byteOffset/prop-desc.js
+built-ins/DataView/prototype/byteOffset/return-byteoffset.js
+built-ins/DataView/prototype/byteOffset/invoked-as-func.js
+built-ins/DataView/prototype/byteOffset/this-has-no-dataview-internal-sab.js
+built-ins/DataView/prototype/byteOffset/name.js
+built-ins/DataView/prototype/byteOffset/return-byteoffset-sab.js
+built-ins/DataView/prototype/byteOffset/this-is-not-object.js
+built-ins/DataView/prototype/getFloat32/return-value-clean-arraybuffer.js
+built-ins/DataView/prototype/getFloat32/return-values.js
+built-ins/DataView/prototype/getFloat32/length.js
+built-ins/DataView/prototype/getFloat32/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/getFloat32/detached-buffer.js
+built-ins/DataView/prototype/getFloat32/negative-byteoffset-throws.js
+built-ins/DataView/prototype/getFloat32/detached-buffer-after-toindex-byteoffset.js
+built-ins/DataView/prototype/getFloat32/toindex-byteoffset.js
+built-ins/DataView/prototype/getFloat32/index-is-out-of-range.js
+built-ins/DataView/prototype/getFloat32/return-abrupt-from-tonumber-byteoffset-symbol.js
+built-ins/DataView/prototype/getFloat32/return-abrupt-from-tonumber-byteoffset.js
+built-ins/DataView/prototype/getFloat32/return-infinity.js
+built-ins/DataView/prototype/getFloat32/detached-buffer-before-outofrange-byteoffset.js
+built-ins/DataView/prototype/getFloat32/name.js
+built-ins/DataView/prototype/getFloat32/not-a-constructor.js
+built-ins/DataView/prototype/getFloat32/to-boolean-littleendian.js
+built-ins/DataView/prototype/getFloat32/return-values-custom-offset.js
+built-ins/DataView/prototype/getFloat32/minus-zero.js
+built-ins/DataView/prototype/getFloat32/return-nan.js
+built-ins/DataView/prototype/getFloat32/this-is-not-object.js
+built-ins/DataView/prototype/setFloat32/length.js
+built-ins/DataView/prototype/setFloat32/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/setFloat32/detached-buffer.js
+built-ins/DataView/prototype/setFloat32/negative-byteoffset-throws.js
+built-ins/DataView/prototype/setFloat32/detached-buffer-after-toindex-byteoffset.js
+built-ins/DataView/prototype/setFloat32/return-abrupt-from-tonumber-value.js
+built-ins/DataView/prototype/setFloat32/toindex-byteoffset.js
+built-ins/DataView/prototype/setFloat32/index-is-out-of-range.js
+built-ins/DataView/prototype/setFloat32/return-abrupt-from-tonumber-byteoffset-symbol.js
+built-ins/DataView/prototype/setFloat32/return-abrupt-from-tonumber-byteoffset.js
+built-ins/DataView/prototype/setFloat32/range-check-after-value-conversion.js
+built-ins/DataView/prototype/setFloat32/return-abrupt-from-tonumber-value-symbol.js
+built-ins/DataView/prototype/setFloat32/index-check-before-value-conversion.js
+built-ins/DataView/prototype/setFloat32/set-values-return-undefined.js
+built-ins/DataView/prototype/setFloat32/no-value-arg.js
+built-ins/DataView/prototype/setFloat32/detached-buffer-before-outofrange-byteoffset.js
+built-ins/DataView/prototype/setFloat32/name.js
+built-ins/DataView/prototype/setFloat32/not-a-constructor.js
+built-ins/DataView/prototype/setFloat32/to-boolean-littleendian.js
+built-ins/DataView/prototype/setFloat32/detached-buffer-after-number-value.js
+built-ins/DataView/prototype/setFloat32/set-values-little-endian-order.js
+built-ins/DataView/prototype/setFloat32/this-is-not-object.js
+built-ins/DataView/prototype/setInt8/length.js
+built-ins/DataView/prototype/setInt8/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/setInt8/detached-buffer.js
+built-ins/DataView/prototype/setInt8/negative-byteoffset-throws.js
+built-ins/DataView/prototype/setInt8/detached-buffer-after-toindex-byteoffset.js
+built-ins/DataView/prototype/setInt8/return-abrupt-from-tonumber-value.js
+built-ins/DataView/prototype/setInt8/toindex-byteoffset.js
+built-ins/DataView/prototype/setInt8/index-is-out-of-range.js
+built-ins/DataView/prototype/setInt8/return-abrupt-from-tonumber-byteoffset-symbol.js
+built-ins/DataView/prototype/setInt8/return-abrupt-from-tonumber-byteoffset.js
+built-ins/DataView/prototype/setInt8/range-check-after-value-conversion.js
+built-ins/DataView/prototype/setInt8/return-abrupt-from-tonumber-value-symbol.js
+built-ins/DataView/prototype/setInt8/index-check-before-value-conversion.js
+built-ins/DataView/prototype/setInt8/set-values-return-undefined.js
+built-ins/DataView/prototype/setInt8/no-value-arg.js
+built-ins/DataView/prototype/setInt8/detached-buffer-before-outofrange-byteoffset.js
+built-ins/DataView/prototype/setInt8/name.js
+built-ins/DataView/prototype/setInt8/not-a-constructor.js
+built-ins/DataView/prototype/setInt8/detached-buffer-after-number-value.js
+built-ins/DataView/prototype/setInt8/this-is-not-object.js
+built-ins/DataView/prototype/getUint32/return-value-clean-arraybuffer.js
+built-ins/DataView/prototype/getUint32/return-values.js
+built-ins/DataView/prototype/getUint32/length.js
+built-ins/DataView/prototype/getUint32/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/getUint32/detached-buffer.js
+built-ins/DataView/prototype/getUint32/negative-byteoffset-throws.js
+built-ins/DataView/prototype/getUint32/detached-buffer-after-toindex-byteoffset.js
+built-ins/DataView/prototype/getUint32/toindex-byteoffset.js
+built-ins/DataView/prototype/getUint32/index-is-out-of-range.js
+built-ins/DataView/prototype/getUint32/return-abrupt-from-tonumber-byteoffset-symbol.js
+built-ins/DataView/prototype/getUint32/return-abrupt-from-tonumber-byteoffset.js
+built-ins/DataView/prototype/getUint32/detached-buffer-before-outofrange-byteoffset.js
+built-ins/DataView/prototype/getUint32/name.js
+built-ins/DataView/prototype/getUint32/not-a-constructor.js
+built-ins/DataView/prototype/getUint32/to-boolean-littleendian.js
+built-ins/DataView/prototype/getUint32/return-values-custom-offset.js
+built-ins/DataView/prototype/getUint32/this-is-not-object.js
+built-ins/DataView/prototype/setUint8/length.js
+built-ins/DataView/prototype/setUint8/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/setUint8/detached-buffer.js
+built-ins/DataView/prototype/setUint8/negative-byteoffset-throws.js
+built-ins/DataView/prototype/setUint8/detached-buffer-after-toindex-byteoffset.js
+built-ins/DataView/prototype/setUint8/return-abrupt-from-tonumber-value.js
+built-ins/DataView/prototype/setUint8/toindex-byteoffset.js
+built-ins/DataView/prototype/setUint8/index-is-out-of-range.js
+built-ins/DataView/prototype/setUint8/return-abrupt-from-tonumber-byteoffset-symbol.js
+built-ins/DataView/prototype/setUint8/return-abrupt-from-tonumber-byteoffset.js
+built-ins/DataView/prototype/setUint8/range-check-after-value-conversion.js
+built-ins/DataView/prototype/setUint8/return-abrupt-from-tonumber-value-symbol.js
+built-ins/DataView/prototype/setUint8/index-check-before-value-conversion.js
+built-ins/DataView/prototype/setUint8/set-values-return-undefined.js
+built-ins/DataView/prototype/setUint8/no-value-arg.js
+built-ins/DataView/prototype/setUint8/detached-buffer-before-outofrange-byteoffset.js
+built-ins/DataView/prototype/setUint8/name.js
+built-ins/DataView/prototype/setUint8/not-a-constructor.js
+built-ins/DataView/prototype/setUint8/detached-buffer-after-number-value.js
+built-ins/DataView/prototype/setUint8/this-is-not-object.js
+built-ins/DataView/prototype/getFloat64/return-value-clean-arraybuffer.js
+built-ins/DataView/prototype/getFloat64/return-values.js
+built-ins/DataView/prototype/getFloat64/length.js
+built-ins/DataView/prototype/getFloat64/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/getFloat64/detached-buffer.js
+built-ins/DataView/prototype/getFloat64/negative-byteoffset-throws.js
+built-ins/DataView/prototype/getFloat64/detached-buffer-after-toindex-byteoffset.js
+built-ins/DataView/prototype/getFloat64/toindex-byteoffset.js
+built-ins/DataView/prototype/getFloat64/index-is-out-of-range.js
+built-ins/DataView/prototype/getFloat64/return-abrupt-from-tonumber-byteoffset-symbol.js
+built-ins/DataView/prototype/getFloat64/return-abrupt-from-tonumber-byteoffset.js
+built-ins/DataView/prototype/getFloat64/return-infinity.js
+built-ins/DataView/prototype/getFloat64/detached-buffer-before-outofrange-byteoffset.js
+built-ins/DataView/prototype/getFloat64/name.js
+built-ins/DataView/prototype/getFloat64/not-a-constructor.js
+built-ins/DataView/prototype/getFloat64/to-boolean-littleendian.js
+built-ins/DataView/prototype/getFloat64/return-values-custom-offset.js
+built-ins/DataView/prototype/getFloat64/minus-zero.js
+built-ins/DataView/prototype/getFloat64/return-nan.js
+built-ins/DataView/prototype/getFloat64/this-is-not-object.js
+built-ins/DataView/prototype/getUint16/return-value-clean-arraybuffer.js
+built-ins/DataView/prototype/getUint16/return-values.js
+built-ins/DataView/prototype/getUint16/length.js
+built-ins/DataView/prototype/getUint16/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/getUint16/detached-buffer.js
+built-ins/DataView/prototype/getUint16/negative-byteoffset-throws.js
+built-ins/DataView/prototype/getUint16/detached-buffer-after-toindex-byteoffset.js
+built-ins/DataView/prototype/getUint16/toindex-byteoffset.js
+built-ins/DataView/prototype/getUint16/index-is-out-of-range.js
+built-ins/DataView/prototype/getUint16/return-abrupt-from-tonumber-byteoffset-symbol.js
+built-ins/DataView/prototype/getUint16/return-abrupt-from-tonumber-byteoffset.js
+built-ins/DataView/prototype/getUint16/detached-buffer-before-outofrange-byteoffset.js
+built-ins/DataView/prototype/getUint16/name.js
+built-ins/DataView/prototype/getUint16/not-a-constructor.js
+built-ins/DataView/prototype/getUint16/to-boolean-littleendian.js
+built-ins/DataView/prototype/getUint16/return-values-custom-offset.js
+built-ins/DataView/prototype/getUint16/this-is-not-object.js
+built-ins/DataView/prototype/getInt32/return-value-clean-arraybuffer.js
+built-ins/DataView/prototype/getInt32/return-values.js
+built-ins/DataView/prototype/getInt32/length.js
+built-ins/DataView/prototype/getInt32/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/getInt32/return-abrupt-from-tonumber-byteoffset-sab.js
+built-ins/DataView/prototype/getInt32/detached-buffer.js
+built-ins/DataView/prototype/getInt32/negative-byteoffset-throws.js
+built-ins/DataView/prototype/getInt32/detached-buffer-after-toindex-byteoffset.js
+built-ins/DataView/prototype/getInt32/return-value-clean-arraybuffer-sab.js
+built-ins/DataView/prototype/getInt32/return-abrupt-from-tonumber-byteoffset-symbol-sab.js
+built-ins/DataView/prototype/getInt32/to-boolean-littleendian-sab.js
+built-ins/DataView/prototype/getInt32/toindex-byteoffset.js
+built-ins/DataView/prototype/getInt32/return-values-custom-offset-sab.js
+built-ins/DataView/prototype/getInt32/index-is-out-of-range.js
+built-ins/DataView/prototype/getInt32/return-abrupt-from-tonumber-byteoffset-symbol.js
+built-ins/DataView/prototype/getInt32/return-abrupt-from-tonumber-byteoffset.js
+built-ins/DataView/prototype/getInt32/toindex-byteoffset-sab.js
+built-ins/DataView/prototype/getInt32/return-values-sab.js
+built-ins/DataView/prototype/getInt32/negative-byteoffset-throws-sab.js
+built-ins/DataView/prototype/getInt32/this-has-no-dataview-internal-sab.js
+built-ins/DataView/prototype/getInt32/detached-buffer-before-outofrange-byteoffset.js
+built-ins/DataView/prototype/getInt32/name.js
+built-ins/DataView/prototype/getInt32/not-a-constructor.js
+built-ins/DataView/prototype/getInt32/to-boolean-littleendian.js
+built-ins/DataView/prototype/getInt32/index-is-out-of-range-sab.js
+built-ins/DataView/prototype/getInt32/return-values-custom-offset.js
+built-ins/DataView/prototype/getInt32/this-is-not-object.js
+built-ins/DataView/prototype/Symbol.toStringTag.js
+built-ins/DataView/prototype/getInt8/return-value-clean-arraybuffer.js
+built-ins/DataView/prototype/getInt8/return-values.js
+built-ins/DataView/prototype/getInt8/length.js
+built-ins/DataView/prototype/getInt8/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/getInt8/detached-buffer.js
+built-ins/DataView/prototype/getInt8/negative-byteoffset-throws.js
+built-ins/DataView/prototype/getInt8/detached-buffer-after-toindex-byteoffset.js
+built-ins/DataView/prototype/getInt8/toindex-byteoffset.js
+built-ins/DataView/prototype/getInt8/index-is-out-of-range.js
+built-ins/DataView/prototype/getInt8/return-abrupt-from-tonumber-byteoffset-symbol.js
+built-ins/DataView/prototype/getInt8/return-abrupt-from-tonumber-byteoffset.js
+built-ins/DataView/prototype/getInt8/detached-buffer-before-outofrange-byteoffset.js
+built-ins/DataView/prototype/getInt8/name.js
+built-ins/DataView/prototype/getInt8/not-a-constructor.js
+built-ins/DataView/prototype/getInt8/return-values-custom-offset.js
+built-ins/DataView/prototype/getInt8/this-is-not-object.js
+built-ins/DataView/prototype/byteLength/invoked-as-accessor.js
+built-ins/DataView/prototype/byteLength/length.js
+built-ins/DataView/prototype/byteLength/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/byteLength/detached-buffer.js
+built-ins/DataView/prototype/byteLength/return-bytelength.js
+built-ins/DataView/prototype/byteLength/prop-desc.js
+built-ins/DataView/prototype/byteLength/invoked-as-func.js
+built-ins/DataView/prototype/byteLength/this-has-no-dataview-internal-sab.js
+built-ins/DataView/prototype/byteLength/name.js
+built-ins/DataView/prototype/byteLength/instance-has-detached-buffer.js
+built-ins/DataView/prototype/byteLength/return-bytelength-sab.js
+built-ins/DataView/prototype/byteLength/this-is-not-object.js
+built-ins/DataView/prototype/setInt32/length.js
+built-ins/DataView/prototype/setInt32/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/setInt32/detached-buffer.js
+built-ins/DataView/prototype/setInt32/negative-byteoffset-throws.js
+built-ins/DataView/prototype/setInt32/detached-buffer-after-toindex-byteoffset.js
+built-ins/DataView/prototype/setInt32/return-abrupt-from-tonumber-value.js
+built-ins/DataView/prototype/setInt32/toindex-byteoffset.js
+built-ins/DataView/prototype/setInt32/index-is-out-of-range.js
+built-ins/DataView/prototype/setInt32/return-abrupt-from-tonumber-byteoffset-symbol.js
+built-ins/DataView/prototype/setInt32/return-abrupt-from-tonumber-byteoffset.js
+built-ins/DataView/prototype/setInt32/range-check-after-value-conversion.js
+built-ins/DataView/prototype/setInt32/return-abrupt-from-tonumber-value-symbol.js
+built-ins/DataView/prototype/setInt32/index-check-before-value-conversion.js
+built-ins/DataView/prototype/setInt32/set-values-return-undefined.js
+built-ins/DataView/prototype/setInt32/no-value-arg.js
+built-ins/DataView/prototype/setInt32/detached-buffer-before-outofrange-byteoffset.js
+built-ins/DataView/prototype/setInt32/name.js
+built-ins/DataView/prototype/setInt32/not-a-constructor.js
+built-ins/DataView/prototype/setInt32/to-boolean-littleendian.js
+built-ins/DataView/prototype/setInt32/detached-buffer-after-number-value.js
+built-ins/DataView/prototype/setInt32/set-values-little-endian-order.js
+built-ins/DataView/prototype/setInt32/this-is-not-object.js
+built-ins/DataView/prototype/setInt16/length.js
+built-ins/DataView/prototype/setInt16/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/setInt16/detached-buffer.js
+built-ins/DataView/prototype/setInt16/negative-byteoffset-throws.js
+built-ins/DataView/prototype/setInt16/detached-buffer-after-toindex-byteoffset.js
+built-ins/DataView/prototype/setInt16/return-abrupt-from-tonumber-value.js
+built-ins/DataView/prototype/setInt16/toindex-byteoffset.js
+built-ins/DataView/prototype/setInt16/index-is-out-of-range.js
+built-ins/DataView/prototype/setInt16/return-abrupt-from-tonumber-byteoffset-symbol.js
+built-ins/DataView/prototype/setInt16/return-abrupt-from-tonumber-byteoffset.js
+built-ins/DataView/prototype/setInt16/range-check-after-value-conversion.js
+built-ins/DataView/prototype/setInt16/return-abrupt-from-tonumber-value-symbol.js
+built-ins/DataView/prototype/setInt16/index-check-before-value-conversion.js
+built-ins/DataView/prototype/setInt16/set-values-return-undefined.js
+built-ins/DataView/prototype/setInt16/no-value-arg.js
+built-ins/DataView/prototype/setInt16/detached-buffer-before-outofrange-byteoffset.js
+built-ins/DataView/prototype/setInt16/name.js
+built-ins/DataView/prototype/setInt16/not-a-constructor.js
+built-ins/DataView/prototype/setInt16/to-boolean-littleendian.js
+built-ins/DataView/prototype/setInt16/detached-buffer-after-number-value.js
+built-ins/DataView/prototype/setInt16/set-values-little-endian-order.js
+built-ins/DataView/prototype/setInt16/this-is-not-object.js
+built-ins/DataView/prototype/setUint16/length.js
+built-ins/DataView/prototype/setUint16/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/setUint16/detached-buffer.js
+built-ins/DataView/prototype/setUint16/negative-byteoffset-throws.js
+built-ins/DataView/prototype/setUint16/detached-buffer-after-toindex-byteoffset.js
+built-ins/DataView/prototype/setUint16/return-abrupt-from-tonumber-value.js
+built-ins/DataView/prototype/setUint16/toindex-byteoffset.js
+built-ins/DataView/prototype/setUint16/index-is-out-of-range.js
+built-ins/DataView/prototype/setUint16/return-abrupt-from-tonumber-byteoffset-symbol.js
+built-ins/DataView/prototype/setUint16/return-abrupt-from-tonumber-byteoffset.js
+built-ins/DataView/prototype/setUint16/range-check-after-value-conversion.js
+built-ins/DataView/prototype/setUint16/return-abrupt-from-tonumber-value-symbol.js
+built-ins/DataView/prototype/setUint16/index-check-before-value-conversion.js
+built-ins/DataView/prototype/setUint16/set-values-return-undefined.js
+built-ins/DataView/prototype/setUint16/no-value-arg.js
+built-ins/DataView/prototype/setUint16/detached-buffer-before-outofrange-byteoffset.js
+built-ins/DataView/prototype/setUint16/name.js
+built-ins/DataView/prototype/setUint16/not-a-constructor.js
+built-ins/DataView/prototype/setUint16/to-boolean-littleendian.js
+built-ins/DataView/prototype/setUint16/detached-buffer-after-number-value.js
+built-ins/DataView/prototype/setUint16/set-values-little-endian-order.js
+built-ins/DataView/prototype/setUint16/this-is-not-object.js
+built-ins/DataView/prototype/setUint32/length.js
+built-ins/DataView/prototype/setUint32/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/setUint32/detached-buffer.js
+built-ins/DataView/prototype/setUint32/negative-byteoffset-throws.js
+built-ins/DataView/prototype/setUint32/detached-buffer-after-toindex-byteoffset.js
+built-ins/DataView/prototype/setUint32/return-abrupt-from-tonumber-value.js
+built-ins/DataView/prototype/setUint32/toindex-byteoffset.js
+built-ins/DataView/prototype/setUint32/index-is-out-of-range.js
+built-ins/DataView/prototype/setUint32/return-abrupt-from-tonumber-byteoffset-symbol.js
+built-ins/DataView/prototype/setUint32/return-abrupt-from-tonumber-byteoffset.js
+built-ins/DataView/prototype/setUint32/range-check-after-value-conversion.js
+built-ins/DataView/prototype/setUint32/return-abrupt-from-tonumber-value-symbol.js
+built-ins/DataView/prototype/setUint32/index-check-before-value-conversion.js
+built-ins/DataView/prototype/setUint32/set-values-return-undefined.js
+built-ins/DataView/prototype/setUint32/no-value-arg.js
+built-ins/DataView/prototype/setUint32/detached-buffer-before-outofrange-byteoffset.js
+built-ins/DataView/prototype/setUint32/name.js
+built-ins/DataView/prototype/setUint32/not-a-constructor.js
+built-ins/DataView/prototype/setUint32/to-boolean-littleendian.js
+built-ins/DataView/prototype/setUint32/detached-buffer-after-number-value.js
+built-ins/DataView/prototype/setUint32/set-values-little-endian-order.js
+built-ins/DataView/prototype/setUint32/this-is-not-object.js
+built-ins/DataView/prototype/getUint8/return-value-clean-arraybuffer.js
+built-ins/DataView/prototype/getUint8/return-values.js
+built-ins/DataView/prototype/getUint8/length.js
+built-ins/DataView/prototype/getUint8/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/getUint8/detached-buffer.js
+built-ins/DataView/prototype/getUint8/negative-byteoffset-throws.js
+built-ins/DataView/prototype/getUint8/detached-buffer-after-toindex-byteoffset.js
+built-ins/DataView/prototype/getUint8/toindex-byteoffset.js
+built-ins/DataView/prototype/getUint8/index-is-out-of-range.js
+built-ins/DataView/prototype/getUint8/return-abrupt-from-tonumber-byteoffset-symbol.js
+built-ins/DataView/prototype/getUint8/return-abrupt-from-tonumber-byteoffset.js
+built-ins/DataView/prototype/getUint8/detached-buffer-before-outofrange-byteoffset.js
+built-ins/DataView/prototype/getUint8/name.js
+built-ins/DataView/prototype/getUint8/not-a-constructor.js
+built-ins/DataView/prototype/getUint8/return-values-custom-offset.js
+built-ins/DataView/prototype/getUint8/this-is-not-object.js
+built-ins/DataView/prototype/setFloat64/length.js
+built-ins/DataView/prototype/setFloat64/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/setFloat64/detached-buffer.js
+built-ins/DataView/prototype/setFloat64/negative-byteoffset-throws.js
+built-ins/DataView/prototype/setFloat64/detached-buffer-after-toindex-byteoffset.js
+built-ins/DataView/prototype/setFloat64/return-abrupt-from-tonumber-value.js
+built-ins/DataView/prototype/setFloat64/toindex-byteoffset.js
+built-ins/DataView/prototype/setFloat64/index-is-out-of-range.js
+built-ins/DataView/prototype/setFloat64/return-abrupt-from-tonumber-byteoffset-symbol.js
+built-ins/DataView/prototype/setFloat64/return-abrupt-from-tonumber-byteoffset.js
+built-ins/DataView/prototype/setFloat64/range-check-after-value-conversion.js
+built-ins/DataView/prototype/setFloat64/return-abrupt-from-tonumber-value-symbol.js
+built-ins/DataView/prototype/setFloat64/index-check-before-value-conversion.js
+built-ins/DataView/prototype/setFloat64/set-values-return-undefined.js
+built-ins/DataView/prototype/setFloat64/no-value-arg.js
+built-ins/DataView/prototype/setFloat64/detached-buffer-before-outofrange-byteoffset.js
+built-ins/DataView/prototype/setFloat64/name.js
+built-ins/DataView/prototype/setFloat64/not-a-constructor.js
+built-ins/DataView/prototype/setFloat64/to-boolean-littleendian.js
+built-ins/DataView/prototype/setFloat64/detached-buffer-after-number-value.js
+built-ins/DataView/prototype/setFloat64/set-values-little-endian-order.js
+built-ins/DataView/prototype/setFloat64/this-is-not-object.js
+built-ins/DataView/prototype/buffer/invoked-as-accessor.js
+built-ins/DataView/prototype/buffer/length.js
+built-ins/DataView/prototype/buffer/this-has-no-dataview-internal.js
+built-ins/DataView/prototype/buffer/detached-buffer.js
+built-ins/DataView/prototype/buffer/prop-desc.js
+built-ins/DataView/prototype/buffer/return-buffer-sab.js
+built-ins/DataView/prototype/buffer/invoked-as-func.js
+built-ins/DataView/prototype/buffer/this-has-no-dataview-internal-sab.js
+built-ins/DataView/prototype/buffer/name.js
+built-ins/DataView/prototype/buffer/return-buffer.js
+built-ins/DataView/prototype/buffer/this-is-not-object.js
+built-ins/DataView/excessive-bytelength-throws.js
+built-ins/DataView/extensibility.js
+built-ins/DataView/instance-extensibility.js
+built-ins/DataView/is-a-constructor.js
+built-ins/DataView/excessive-bytelength-throws-sab.js
+built-ins/DataView/return-instance-sab.js
+built-ins/DataView/negative-byteoffset-throws-sab.js
+built-ins/DataView/custom-proto-access-throws.js
+built-ins/DataView/toindex-bytelength.js
+built-ins/DataView/return-abrupt-tonumber-bytelength.js
+built-ins/DataView/defined-bytelength-and-byteoffset-sab.js
+built-ins/DataView/newtarget-undefined-throws-sab.js
+built-ins/DataView/name.js
+built-ins/DataView/buffer-reference-sab.js
+built-ins/DataView/return-abrupt-tonumber-byteoffset.js
+built-ins/DataView/custom-proto-if-not-object-fallbacks-to-default-prototype.js
+built-ins/DataView/negative-bytelength-throws-sab.js
+built-ins/DataView/buffer-does-not-have-arraybuffer-data-throws-sab.js
+built-ins/DataView/byteoffset-is-negative-throws.js
+built-ins/DataView/buffer-reference.js
+built-ins/DataView/proto-from-ctor-realm.js
+built-ins/DataView/proto-from-ctor-realm-sab.js
+built-ins/DataView/defined-byteoffset-sab.js
+built-ins/DataView/excessive-byteoffset-throws.js
+built-ins/DataView/buffer-not-object-throws.js
+built-ins/DataView/instance-extensibility-sab.js
+built-ins/DataView/dataview.js
+built-ins/DataView/defined-bytelength-and-byteoffset.js
+built-ins/TypedArray/length.js
+built-ins/TypedArray/prototype.js
+built-ins/TypedArray/invoked.js
+built-ins/TypedArray/prototype/findIndex/predicate-may-detach-buffer.js
+built-ins/TypedArray/prototype/findIndex/return-negative-one-if-predicate-returns-false-value.js
+built-ins/TypedArray/prototype/findIndex/predicate-call-parameters.js
+built-ins/TypedArray/prototype/findIndex/predicate-call-this-non-strict.js
+built-ins/TypedArray/prototype/findIndex/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/findIndex/length.js
+built-ins/TypedArray/prototype/findIndex/predicate-call-changes-value.js
+built-ins/TypedArray/prototype/findIndex/detached-buffer.js
+built-ins/TypedArray/prototype/findIndex/prop-desc.js
+built-ins/TypedArray/prototype/findIndex/return-index-predicate-result-is-true.js
+built-ins/TypedArray/prototype/findIndex/get-length-ignores-length-prop.js
+built-ins/TypedArray/prototype/findIndex/invoked-as-func.js
+built-ins/TypedArray/prototype/findIndex/predicate-not-called-on-empty-array.js
+built-ins/TypedArray/prototype/findIndex/predicate-is-not-callable-throws.js
+built-ins/TypedArray/prototype/findIndex/predicate-call-this-strict.js
+built-ins/TypedArray/prototype/findIndex/name.js
+built-ins/TypedArray/prototype/findIndex/invoked-as-method.js
+built-ins/TypedArray/prototype/findIndex/return-abrupt-from-predicate-call.js
+built-ins/TypedArray/prototype/findIndex/not-a-constructor.js
+built-ins/TypedArray/prototype/findIndex/this-is-not-object.js
+built-ins/TypedArray/prototype/at/index-argument-tointeger.js
+built-ins/TypedArray/prototype/at/length.js
+built-ins/TypedArray/prototype/at/return-abrupt-from-this.js
+built-ins/TypedArray/prototype/at/prop-desc.js
+built-ins/TypedArray/prototype/at/returns-undefined-for-out-of-range-index.js
+built-ins/TypedArray/prototype/at/index-non-numeric-argument-tointeger.js
+built-ins/TypedArray/prototype/at/returns-undefined-for-holes-in-sparse-arrays.js
+built-ins/TypedArray/prototype/at/returns-item-relative-index.js
+built-ins/TypedArray/prototype/at/name.js
+built-ins/TypedArray/prototype/at/index-non-numeric-argument-tointeger-invalid.js
+built-ins/TypedArray/prototype/at/returns-item.js
+built-ins/TypedArray/prototype/slice/speciesctor-get-species-returns-throws.js
+built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-length.js
+built-ins/TypedArray/prototype/slice/return-abrupt-from-start-symbol.js
+built-ins/TypedArray/prototype/slice/detached-buffer-zero-count-custom-ctor-same-targettype.js
+built-ins/TypedArray/prototype/slice/infinity.js
+built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor.js
+built-ins/TypedArray/prototype/slice/set-values-from-different-ctor-type.js
+built-ins/TypedArray/prototype/slice/detached-buffer-get-ctor.js
+built-ins/TypedArray/prototype/slice/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/slice/length.js
+built-ins/TypedArray/prototype/slice/detached-buffer.js
+built-ins/TypedArray/prototype/slice/return-abrupt-from-end-symbol.js
+built-ins/TypedArray/prototype/slice/prop-desc.js
+built-ins/TypedArray/prototype/slice/tointeger-end.js
+built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-length-throws.js
+built-ins/TypedArray/prototype/slice/tointeger-start.js
+built-ins/TypedArray/prototype/slice/speciesctor-get-species.js
+built-ins/TypedArray/prototype/slice/detached-buffer-custom-ctor-other-targettype.js
+built-ins/TypedArray/prototype/slice/speciesctor-get-species-abrupt.js
+built-ins/TypedArray/prototype/slice/arraylength-internal.js
+built-ins/TypedArray/prototype/slice/detached-buffer-speciesctor-get-species-custom-ctor-throws.js
+built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-invocation.js
+built-ins/TypedArray/prototype/slice/invoked-as-func.js
+built-ins/TypedArray/prototype/slice/detached-buffer-custom-ctor-same-targettype.js
+built-ins/TypedArray/prototype/slice/result-does-not-copy-ordinary-properties.js
+built-ins/TypedArray/prototype/slice/speciesctor-get-ctor-returns-throws.js
+built-ins/TypedArray/prototype/slice/results-with-same-length.js
+built-ins/TypedArray/prototype/slice/bit-precision.js
+built-ins/TypedArray/prototype/slice/return-abrupt-from-end.js
+built-ins/TypedArray/prototype/slice/detached-buffer-zero-count-custom-ctor-other-targettype.js
+built-ins/TypedArray/prototype/slice/name.js
+built-ins/TypedArray/prototype/slice/invoked-as-method.js
+built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-throws.js
+built-ins/TypedArray/prototype/slice/results-with-empty-length.js
+built-ins/TypedArray/prototype/slice/speciesctor-get-species-use-default-ctor.js
+built-ins/TypedArray/prototype/slice/not-a-constructor.js
+built-ins/TypedArray/prototype/slice/return-abrupt-from-start.js
+built-ins/TypedArray/prototype/slice/speciesctor-get-ctor-inherited.js
+built-ins/TypedArray/prototype/slice/results-with-different-length.js
+built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-returns-another-instance.js
+built-ins/TypedArray/prototype/slice/speciesctor-get-ctor.js
+built-ins/TypedArray/prototype/slice/speciesctor-get-ctor-abrupt.js
+built-ins/TypedArray/prototype/slice/minus-zero.js
+built-ins/TypedArray/prototype/slice/this-is-not-object.js
+built-ins/TypedArray/prototype/Symbol.iterator.js
+built-ins/TypedArray/prototype/subarray/speciesctor-get-species-returns-throws.js
+built-ins/TypedArray/prototype/subarray/infinity.js
+built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor.js
+built-ins/TypedArray/prototype/subarray/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/subarray/length.js
+built-ins/TypedArray/prototype/subarray/detached-buffer.js
+built-ins/TypedArray/prototype/subarray/return-abrupt-from-end-symbol.js
+built-ins/TypedArray/prototype/subarray/prop-desc.js
+built-ins/TypedArray/prototype/subarray/tointeger-end.js
+built-ins/TypedArray/prototype/subarray/speciesctor-get-species.js
+built-ins/TypedArray/prototype/subarray/return-abrupt-from-begin.js
+built-ins/TypedArray/prototype/subarray/speciesctor-get-species-abrupt.js
+built-ins/TypedArray/prototype/subarray/tointeger-begin.js
+built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor-invocation.js
+built-ins/TypedArray/prototype/subarray/invoked-as-func.js
+built-ins/TypedArray/prototype/subarray/result-does-not-copy-ordinary-properties.js
+built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-returns-throws.js
+built-ins/TypedArray/prototype/subarray/results-with-same-length.js
+built-ins/TypedArray/prototype/subarray/return-abrupt-from-end.js
+built-ins/TypedArray/prototype/subarray/result-is-new-instance-with-shared-buffer.js
+built-ins/TypedArray/prototype/subarray/name.js
+built-ins/TypedArray/prototype/subarray/invoked-as-method.js
+built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor-throws.js
+built-ins/TypedArray/prototype/subarray/result-is-new-instance-from-same-ctor.js
+built-ins/TypedArray/prototype/subarray/results-with-empty-length.js
+built-ins/TypedArray/prototype/subarray/speciesctor-get-species-use-default-ctor.js
+built-ins/TypedArray/prototype/subarray/not-a-constructor.js
+built-ins/TypedArray/prototype/subarray/return-abrupt-from-begin-symbol.js
+built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-inherited.js
+built-ins/TypedArray/prototype/subarray/results-with-different-length.js
+built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor-returns-another-instance.js
+built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor.js
+built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-abrupt.js
+built-ins/TypedArray/prototype/subarray/minus-zero.js
+built-ins/TypedArray/prototype/subarray/this-is-not-object.js
+built-ins/TypedArray/prototype/reduce/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/reduce/length.js
+built-ins/TypedArray/prototype/reduce/get-length-uses-internal-arraylength.js
+built-ins/TypedArray/prototype/reduce/callbackfn-not-called-on-empty.js
+built-ins/TypedArray/prototype/reduce/detached-buffer.js
+built-ins/TypedArray/prototype/reduce/prop-desc.js
+built-ins/TypedArray/prototype/reduce/result-is-last-callbackfn-return.js
+built-ins/TypedArray/prototype/reduce/callbackfn-detachbuffer.js
+built-ins/TypedArray/prototype/reduce/result-of-any-type.js
+built-ins/TypedArray/prototype/reduce/callbackfn-returns-abrupt.js
+built-ins/TypedArray/prototype/reduce/callbackfn-arguments-custom-accumulator.js
+built-ins/TypedArray/prototype/reduce/invoked-as-func.js
+built-ins/TypedArray/prototype/reduce/empty-instance-return-initialvalue.js
+built-ins/TypedArray/prototype/reduce/callbackfn-arguments-default-accumulator.js
+built-ins/TypedArray/prototype/reduce/values-are-not-cached.js
+built-ins/TypedArray/prototype/reduce/callbackfn-is-not-callable-throws.js
+built-ins/TypedArray/prototype/reduce/name.js
+built-ins/TypedArray/prototype/reduce/callbackfn-this.js
+built-ins/TypedArray/prototype/reduce/invoked-as-method.js
+built-ins/TypedArray/prototype/reduce/not-a-constructor.js
+built-ins/TypedArray/prototype/reduce/callbackfn-return-does-not-change-instance.js
+built-ins/TypedArray/prototype/reduce/callbackfn-no-iteration-over-non-integer-properties.js
+built-ins/TypedArray/prototype/reduce/empty-instance-with-no-initialvalue-throws.js
+built-ins/TypedArray/prototype/reduce/return-first-value-without-callbackfn.js
+built-ins/TypedArray/prototype/reduce/callbackfn-set-value-during-iteration.js
+built-ins/TypedArray/prototype/reduce/this-is-not-object.js
+built-ins/TypedArray/prototype/copyWithin/non-negative-target-start-and-end.js
+built-ins/TypedArray/prototype/copyWithin/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/copyWithin/negative-start.js
+built-ins/TypedArray/prototype/copyWithin/length.js
+built-ins/TypedArray/prototype/copyWithin/return-abrupt-from-start-is-symbol.js
+built-ins/TypedArray/prototype/copyWithin/detached-buffer.js
+built-ins/TypedArray/prototype/copyWithin/non-negative-target-and-start.js
+built-ins/TypedArray/prototype/copyWithin/prop-desc.js
+built-ins/TypedArray/prototype/copyWithin/undefined-end.js
+built-ins/TypedArray/prototype/copyWithin/coerced-values-start.js
+built-ins/TypedArray/prototype/copyWithin/non-negative-out-of-bounds-target-and-start.js
+built-ins/TypedArray/prototype/copyWithin/get-length-ignores-length-prop.js
+built-ins/TypedArray/prototype/copyWithin/negative-out-of-bounds-end.js
+built-ins/TypedArray/prototype/copyWithin/negative-out-of-bounds-target.js
+built-ins/TypedArray/prototype/copyWithin/return-this.js
+built-ins/TypedArray/prototype/copyWithin/invoked-as-func.js
+built-ins/TypedArray/prototype/copyWithin/coerced-values-start-detached.js
+built-ins/TypedArray/prototype/copyWithin/return-abrupt-from-target-is-symbol.js
+built-ins/TypedArray/prototype/copyWithin/negative-target.js
+built-ins/TypedArray/prototype/copyWithin/negative-out-of-bounds-start.js
+built-ins/TypedArray/prototype/copyWithin/bit-precision.js
+built-ins/TypedArray/prototype/copyWithin/return-abrupt-from-end.js
+built-ins/TypedArray/prototype/copyWithin/coerced-values-end-detached.js
+built-ins/TypedArray/prototype/copyWithin/non-negative-out-of-bounds-end.js
+built-ins/TypedArray/prototype/copyWithin/return-abrupt-from-end-is-symbol.js
+built-ins/TypedArray/prototype/copyWithin/name.js
+built-ins/TypedArray/prototype/copyWithin/coerced-values-end-detached-prototype.js
+built-ins/TypedArray/prototype/copyWithin/invoked-as-method.js
+built-ins/TypedArray/prototype/copyWithin/coerced-values-end.js
+built-ins/TypedArray/prototype/copyWithin/not-a-constructor.js
+built-ins/TypedArray/prototype/copyWithin/return-abrupt-from-start.js
+built-ins/TypedArray/prototype/copyWithin/return-abrupt-from-target.js
+built-ins/TypedArray/prototype/copyWithin/coerced-values-target.js
+built-ins/TypedArray/prototype/copyWithin/negative-end.js
+built-ins/TypedArray/prototype/copyWithin/this-is-not-object.js
+built-ins/TypedArray/prototype/reverse/reverts.js
+built-ins/TypedArray/prototype/reverse/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/reverse/length.js
+built-ins/TypedArray/prototype/reverse/get-length-uses-internal-arraylength.js
+built-ins/TypedArray/prototype/reverse/detached-buffer.js
+built-ins/TypedArray/prototype/reverse/prop-desc.js
+built-ins/TypedArray/prototype/reverse/preserves-non-numeric-properties.js
+built-ins/TypedArray/prototype/reverse/invoked-as-func.js
+built-ins/TypedArray/prototype/reverse/returns-original-object.js
+built-ins/TypedArray/prototype/reverse/name.js
+built-ins/TypedArray/prototype/reverse/invoked-as-method.js
+built-ins/TypedArray/prototype/reverse/not-a-constructor.js
+built-ins/TypedArray/prototype/reverse/this-is-not-object.js
+built-ins/TypedArray/prototype/entries/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/entries/length.js
+built-ins/TypedArray/prototype/entries/detached-buffer.js
+built-ins/TypedArray/prototype/entries/prop-desc.js
+built-ins/TypedArray/prototype/entries/return-itor.js
+built-ins/TypedArray/prototype/entries/invoked-as-func.js
+built-ins/TypedArray/prototype/entries/name.js
+built-ins/TypedArray/prototype/entries/iter-prototype.js
+built-ins/TypedArray/prototype/entries/invoked-as-method.js
+built-ins/TypedArray/prototype/entries/not-a-constructor.js
+built-ins/TypedArray/prototype/entries/this-is-not-object.js
+built-ins/TypedArray/prototype/keys/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/keys/length.js
+built-ins/TypedArray/prototype/keys/detached-buffer.js
+built-ins/TypedArray/prototype/keys/prop-desc.js
+built-ins/TypedArray/prototype/keys/return-itor.js
+built-ins/TypedArray/prototype/keys/invoked-as-func.js
+built-ins/TypedArray/prototype/keys/name.js
+built-ins/TypedArray/prototype/keys/iter-prototype.js
+built-ins/TypedArray/prototype/keys/invoked-as-method.js
+built-ins/TypedArray/prototype/keys/not-a-constructor.js
+built-ins/TypedArray/prototype/keys/this-is-not-object.js
+built-ins/TypedArray/prototype/constructor.js
+built-ins/TypedArray/prototype/byteOffset/invoked-as-accessor.js
+built-ins/TypedArray/prototype/byteOffset/length.js
+built-ins/TypedArray/prototype/byteOffset/detached-buffer.js
+built-ins/TypedArray/prototype/byteOffset/prop-desc.js
+built-ins/TypedArray/prototype/byteOffset/return-byteoffset.js
+built-ins/TypedArray/prototype/byteOffset/invoked-as-func.js
+built-ins/TypedArray/prototype/byteOffset/name.js
+built-ins/TypedArray/prototype/byteOffset/this-has-no-typedarrayname-internal.js
+built-ins/TypedArray/prototype/byteOffset/this-is-not-object.js
+built-ins/TypedArray/prototype/toLocaleString/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/toLocaleString/length.js
+built-ins/TypedArray/prototype/toLocaleString/get-length-uses-internal-arraylength.js
+built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-tostring.js
+built-ins/TypedArray/prototype/toLocaleString/detached-buffer.js
+built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-tostring.js
+built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-valueof.js
+built-ins/TypedArray/prototype/toLocaleString/prop-desc.js
+built-ins/TypedArray/prototype/toLocaleString/calls-tolocalestring-from-each-value.js
+built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-tolocalestring.js
+built-ins/TypedArray/prototype/toLocaleString/calls-valueof-from-each-value.js
+built-ins/TypedArray/prototype/toLocaleString/invoked-as-func.js
+built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-valueof.js
+built-ins/TypedArray/prototype/toLocaleString/name.js
+built-ins/TypedArray/prototype/toLocaleString/invoked-as-method.js
+built-ins/TypedArray/prototype/toLocaleString/not-a-constructor.js
+built-ins/TypedArray/prototype/toLocaleString/calls-tostring-from-each-value.js
+built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-tolocalestring.js
+built-ins/TypedArray/prototype/toLocaleString/return-result.js
+built-ins/TypedArray/prototype/toLocaleString/empty-instance-returns-empty-string.js
+built-ins/TypedArray/prototype/toLocaleString/this-is-not-object.js
+built-ins/TypedArray/prototype/values/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/values/length.js
+built-ins/TypedArray/prototype/values/detached-buffer.js
+built-ins/TypedArray/prototype/values/prop-desc.js
+built-ins/TypedArray/prototype/values/return-itor.js
+built-ins/TypedArray/prototype/values/invoked-as-func.js
+built-ins/TypedArray/prototype/values/name.js
+built-ins/TypedArray/prototype/values/iter-prototype.js
+built-ins/TypedArray/prototype/values/invoked-as-method.js
+built-ins/TypedArray/prototype/values/not-a-constructor.js
+built-ins/TypedArray/prototype/values/this-is-not-object.js
+built-ins/TypedArray/prototype/filter/speciesctor-get-species-returns-throws.js
+built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor-length.js
+built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor.js
+built-ins/TypedArray/prototype/filter/result-does-not-share-buffer.js
+built-ins/TypedArray/prototype/filter/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/filter/callbackfn-arguments-without-thisarg.js
+built-ins/TypedArray/prototype/filter/length.js
+built-ins/TypedArray/prototype/filter/result-empty-callbackfn-returns-false.js
+built-ins/TypedArray/prototype/filter/callbackfn-not-called-on-empty.js
+built-ins/TypedArray/prototype/filter/detached-buffer.js
+built-ins/TypedArray/prototype/filter/prop-desc.js
+built-ins/TypedArray/prototype/filter/callbackfn-called-before-ctor.js
+built-ins/TypedArray/prototype/filter/callbackfn-detachbuffer.js
+built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor-length-throws.js
+built-ins/TypedArray/prototype/filter/callbackfn-called-before-species.js
+built-ins/TypedArray/prototype/filter/speciesctor-get-species.js
+built-ins/TypedArray/prototype/filter/callbackfn-returns-abrupt.js
+built-ins/TypedArray/prototype/filter/values-are-set.js
+built-ins/TypedArray/prototype/filter/speciesctor-get-species-abrupt.js
+built-ins/TypedArray/prototype/filter/arraylength-internal.js
+built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor-invocation.js
+built-ins/TypedArray/prototype/filter/invoked-as-func.js
+built-ins/TypedArray/prototype/filter/speciesctor-get-ctor-returns-throws.js
+built-ins/TypedArray/prototype/filter/result-full-callbackfn-returns-true.js
+built-ins/TypedArray/prototype/filter/values-are-not-cached.js
+built-ins/TypedArray/prototype/filter/name.js
+built-ins/TypedArray/prototype/filter/callbackfn-this.js
+built-ins/TypedArray/prototype/filter/invoked-as-method.js
+built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor-throws.js
+built-ins/TypedArray/prototype/filter/callbackfn-arguments-with-thisarg.js
+built-ins/TypedArray/prototype/filter/speciesctor-get-species-use-default-ctor.js
+built-ins/TypedArray/prototype/filter/not-a-constructor.js
+built-ins/TypedArray/prototype/filter/callbackfn-return-does-not-change-instance.js
+built-ins/TypedArray/prototype/filter/callbackfn-not-callable-throws.js
+built-ins/TypedArray/prototype/filter/callbackfn-no-iteration-over-non-integer.js
+built-ins/TypedArray/prototype/filter/speciesctor-get-ctor-inherited.js
+built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor-returns-another-instance.js
+built-ins/TypedArray/prototype/filter/speciesctor-get-ctor.js
+built-ins/TypedArray/prototype/filter/speciesctor-get-ctor-abrupt.js
+built-ins/TypedArray/prototype/filter/callbackfn-set-value-during-iteration.js
+built-ins/TypedArray/prototype/filter/this-is-not-object.js
+built-ins/TypedArray/prototype/every/callbackfn-no-interaction-over-non-integer.js
+built-ins/TypedArray/prototype/every/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/every/callbackfn-arguments-without-thisarg.js
+built-ins/TypedArray/prototype/every/length.js
+built-ins/TypedArray/prototype/every/get-length-uses-internal-arraylength.js
+built-ins/TypedArray/prototype/every/callbackfn-not-called-on-empty.js
+built-ins/TypedArray/prototype/every/detached-buffer.js
+built-ins/TypedArray/prototype/every/prop-desc.js
+built-ins/TypedArray/prototype/every/callbackfn-detachbuffer.js
+built-ins/TypedArray/prototype/every/callbackfn-returns-abrupt.js
+built-ins/TypedArray/prototype/every/invoked-as-func.js
+built-ins/TypedArray/prototype/every/returns-false-if-any-cb-returns-false.js
+built-ins/TypedArray/prototype/every/values-are-not-cached.js
+built-ins/TypedArray/prototype/every/name.js
+built-ins/TypedArray/prototype/every/callbackfn-this.js
+built-ins/TypedArray/prototype/every/invoked-as-method.js
+built-ins/TypedArray/prototype/every/callbackfn-arguments-with-thisarg.js
+built-ins/TypedArray/prototype/every/not-a-constructor.js
+built-ins/TypedArray/prototype/every/callbackfn-return-does-not-change-instance.js
+built-ins/TypedArray/prototype/every/callbackfn-not-callable-throws.js
+built-ins/TypedArray/prototype/every/returns-true-if-every-cb-returns-true.js
+built-ins/TypedArray/prototype/every/callbackfn-set-value-during-interaction.js
+built-ins/TypedArray/prototype/every/this-is-not-object.js
+built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js
+built-ins/TypedArray/prototype/lastIndexOf/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/lastIndexOf/no-arg.js
+built-ins/TypedArray/prototype/lastIndexOf/length.js
+built-ins/TypedArray/prototype/lastIndexOf/get-length-uses-internal-arraylength.js
+built-ins/TypedArray/prototype/lastIndexOf/detached-buffer.js
+built-ins/TypedArray/prototype/lastIndexOf/prop-desc.js
+built-ins/TypedArray/prototype/lastIndexOf/length-zero-returns-minus-one.js
+built-ins/TypedArray/prototype/lastIndexOf/tointeger-fromindex.js
+built-ins/TypedArray/prototype/lastIndexOf/fromIndex-minus-zero.js
+built-ins/TypedArray/prototype/lastIndexOf/fromIndex-infinity.js
+built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js
+built-ins/TypedArray/prototype/lastIndexOf/invoked-as-func.js
+built-ins/TypedArray/prototype/lastIndexOf/return-abrupt-tointeger-fromindex-symbol.js
+built-ins/TypedArray/prototype/lastIndexOf/search-found-returns-index.js
+built-ins/TypedArray/prototype/lastIndexOf/name.js
+built-ins/TypedArray/prototype/lastIndexOf/invoked-as-method.js
+built-ins/TypedArray/prototype/lastIndexOf/search-not-found-returns-minus-one.js
+built-ins/TypedArray/prototype/lastIndexOf/not-a-constructor.js
+built-ins/TypedArray/prototype/lastIndexOf/strict-comparison.js
+built-ins/TypedArray/prototype/lastIndexOf/return-abrupt-tointeger-fromindex.js
+built-ins/TypedArray/prototype/lastIndexOf/this-is-not-object.js
+built-ins/TypedArray/prototype/Symbol.iterator/not-a-constructor.js
+built-ins/TypedArray/prototype/map/speciesctor-get-species-returns-throws.js
+built-ins/TypedArray/prototype/map/speciesctor-get-species-custom-ctor-length.js
+built-ins/TypedArray/prototype/map/speciesctor-get-species-custom-ctor.js
+built-ins/TypedArray/prototype/map/callbackfn-is-not-callable.js
+built-ins/TypedArray/prototype/map/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/map/callbackfn-arguments-without-thisarg.js
+built-ins/TypedArray/prototype/map/length.js
+built-ins/TypedArray/prototype/map/callbackfn-not-called-on-empty.js
+built-ins/TypedArray/prototype/map/detached-buffer.js
+built-ins/TypedArray/prototype/map/return-new-typedarray-conversion-operation.js
+built-ins/TypedArray/prototype/map/prop-desc.js
+built-ins/TypedArray/prototype/map/callbackfn-detachbuffer.js
+built-ins/TypedArray/prototype/map/speciesctor-get-species-custom-ctor-length-throws.js
+built-ins/TypedArray/prototype/map/speciesctor-get-species.js
+built-ins/TypedArray/prototype/map/callbackfn-returns-abrupt.js
+built-ins/TypedArray/prototype/map/callbackfn-return-does-not-copy-non-integer-properties.js
+built-ins/TypedArray/prototype/map/return-new-typedarray-conversion-operation-consistent-nan.js
+built-ins/TypedArray/prototype/map/speciesctor-get-species-abrupt.js
+built-ins/TypedArray/prototype/map/arraylength-internal.js
+built-ins/TypedArray/prototype/map/speciesctor-get-species-custom-ctor-invocation.js
+built-ins/TypedArray/prototype/map/invoked-as-func.js
+built-ins/TypedArray/prototype/map/speciesctor-get-ctor-returns-throws.js
+built-ins/TypedArray/prototype/map/values-are-not-cached.js
+built-ins/TypedArray/prototype/map/name.js
+built-ins/TypedArray/prototype/map/callbackfn-this.js
+built-ins/TypedArray/prototype/map/invoked-as-method.js
+built-ins/TypedArray/prototype/map/speciesctor-get-species-custom-ctor-throws.js
+built-ins/TypedArray/prototype/map/callbackfn-arguments-with-thisarg.js
+built-ins/TypedArray/prototype/map/speciesctor-get-species-use-default-ctor.js
+built-ins/TypedArray/prototype/map/not-a-constructor.js
+built-ins/TypedArray/prototype/map/callbackfn-return-does-not-change-instance.js
+built-ins/TypedArray/prototype/map/callbackfn-return-affects-returned-object.js
+built-ins/TypedArray/prototype/map/callbackfn-no-interaction-over-non-integer-properties.js
+built-ins/TypedArray/prototype/map/speciesctor-get-ctor-inherited.js
+built-ins/TypedArray/prototype/map/speciesctor-get-species-custom-ctor-returns-another-instance.js
+built-ins/TypedArray/prototype/map/return-new-typedarray-from-positive-length.js
+built-ins/TypedArray/prototype/map/return-new-typedarray-from-empty-length.js
+built-ins/TypedArray/prototype/map/speciesctor-get-ctor.js
+built-ins/TypedArray/prototype/map/speciesctor-get-ctor-abrupt.js
+built-ins/TypedArray/prototype/map/callbackfn-set-value-during-interaction.js
+built-ins/TypedArray/prototype/map/this-is-not-object.js
+built-ins/TypedArray/prototype/toString/detached-buffer.js
+built-ins/TypedArray/prototype/toString/not-a-constructor.js
+built-ins/TypedArray/prototype/some/callbackfn-no-interaction-over-non-integer.js
+built-ins/TypedArray/prototype/some/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/some/callbackfn-arguments-without-thisarg.js
+built-ins/TypedArray/prototype/some/length.js
+built-ins/TypedArray/prototype/some/get-length-uses-internal-arraylength.js
+built-ins/TypedArray/prototype/some/callbackfn-not-called-on-empty.js
+built-ins/TypedArray/prototype/some/detached-buffer.js
+built-ins/TypedArray/prototype/some/prop-desc.js
+built-ins/TypedArray/prototype/some/callbackfn-detachbuffer.js
+built-ins/TypedArray/prototype/some/callbackfn-returns-abrupt.js
+built-ins/TypedArray/prototype/some/invoked-as-func.js
+built-ins/TypedArray/prototype/some/returns-false-if-every-cb-returns-false.js
+built-ins/TypedArray/prototype/some/values-are-not-cached.js
+built-ins/TypedArray/prototype/some/name.js
+built-ins/TypedArray/prototype/some/callbackfn-this.js
+built-ins/TypedArray/prototype/some/invoked-as-method.js
+built-ins/TypedArray/prototype/some/returns-true-if-any-cb-returns-true.js
+built-ins/TypedArray/prototype/some/callbackfn-arguments-with-thisarg.js
+built-ins/TypedArray/prototype/some/not-a-constructor.js
+built-ins/TypedArray/prototype/some/callbackfn-return-does-not-change-instance.js
+built-ins/TypedArray/prototype/some/callbackfn-not-callable-throws.js
+built-ins/TypedArray/prototype/some/callbackfn-set-value-during-interaction.js
+built-ins/TypedArray/prototype/some/this-is-not-object.js
+built-ins/TypedArray/prototype/forEach/callbackfn-no-interaction-over-non-integer.js
+built-ins/TypedArray/prototype/forEach/callbackfn-is-not-callable.js
+built-ins/TypedArray/prototype/forEach/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/forEach/callbackfn-arguments-without-thisarg.js
+built-ins/TypedArray/prototype/forEach/length.js
+built-ins/TypedArray/prototype/forEach/callbackfn-not-called-on-empty.js
+built-ins/TypedArray/prototype/forEach/returns-undefined.js
+built-ins/TypedArray/prototype/forEach/detached-buffer.js
+built-ins/TypedArray/prototype/forEach/prop-desc.js
+built-ins/TypedArray/prototype/forEach/callbackfn-detachbuffer.js
+built-ins/TypedArray/prototype/forEach/callbackfn-returns-abrupt.js
+built-ins/TypedArray/prototype/forEach/arraylength-internal.js
+built-ins/TypedArray/prototype/forEach/invoked-as-func.js
+built-ins/TypedArray/prototype/forEach/values-are-not-cached.js
+built-ins/TypedArray/prototype/forEach/name.js
+built-ins/TypedArray/prototype/forEach/callbackfn-this.js
+built-ins/TypedArray/prototype/forEach/invoked-as-method.js
+built-ins/TypedArray/prototype/forEach/callbackfn-arguments-with-thisarg.js
+built-ins/TypedArray/prototype/forEach/not-a-constructor.js
+built-ins/TypedArray/prototype/forEach/callbackfn-return-does-not-change-instance.js
+built-ins/TypedArray/prototype/forEach/callbackfn-set-value-during-interaction.js
+built-ins/TypedArray/prototype/forEach/this-is-not-object.js
+built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js
+built-ins/TypedArray/prototype/indexOf/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/indexOf/no-arg.js
+built-ins/TypedArray/prototype/indexOf/length.js
+built-ins/TypedArray/prototype/indexOf/get-length-uses-internal-arraylength.js
+built-ins/TypedArray/prototype/indexOf/detached-buffer.js
+built-ins/TypedArray/prototype/indexOf/prop-desc.js
+built-ins/TypedArray/prototype/indexOf/length-zero-returns-minus-one.js
+built-ins/TypedArray/prototype/indexOf/tointeger-fromindex.js
+built-ins/TypedArray/prototype/indexOf/fromIndex-minus-zero.js
+built-ins/TypedArray/prototype/indexOf/fromIndex-infinity.js
+built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js
+built-ins/TypedArray/prototype/indexOf/invoked-as-func.js
+built-ins/TypedArray/prototype/indexOf/return-abrupt-tointeger-fromindex-symbol.js
+built-ins/TypedArray/prototype/indexOf/search-found-returns-index.js
+built-ins/TypedArray/prototype/indexOf/name.js
+built-ins/TypedArray/prototype/indexOf/invoked-as-method.js
+built-ins/TypedArray/prototype/indexOf/search-not-found-returns-minus-one.js
+built-ins/TypedArray/prototype/indexOf/not-a-constructor.js
+built-ins/TypedArray/prototype/indexOf/fromIndex-equal-or-greater-length-returns-minus-one.js
+built-ins/TypedArray/prototype/indexOf/strict-comparison.js
+built-ins/TypedArray/prototype/indexOf/return-abrupt-tointeger-fromindex.js
+built-ins/TypedArray/prototype/indexOf/this-is-not-object.js
+built-ins/TypedArray/prototype/Symbol.toStringTag/invoked-as-accessor.js
+built-ins/TypedArray/prototype/Symbol.toStringTag/length.js
+built-ins/TypedArray/prototype/Symbol.toStringTag/detached-buffer.js
+built-ins/TypedArray/prototype/Symbol.toStringTag/prop-desc.js
+built-ins/TypedArray/prototype/Symbol.toStringTag/return-typedarrayname.js
+built-ins/TypedArray/prototype/Symbol.toStringTag/invoked-as-func.js
+built-ins/TypedArray/prototype/Symbol.toStringTag/name.js
+built-ins/TypedArray/prototype/Symbol.toStringTag/this-has-no-typedarrayname-internal.js
+built-ins/TypedArray/prototype/Symbol.toStringTag/this-is-not-object.js
+built-ins/TypedArray/prototype/sort/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/sort/length.js
+built-ins/TypedArray/prototype/sort/detached-buffer.js
+built-ins/TypedArray/prototype/sort/comparefn-is-undefined.js
+built-ins/TypedArray/prototype/sort/comparefn-calls.js
+built-ins/TypedArray/prototype/sort/prop-desc.js
+built-ins/TypedArray/prototype/sort/stability.js
+built-ins/TypedArray/prototype/sort/arraylength-internal.js
+built-ins/TypedArray/prototype/sort/comparefn-nonfunction-call-throws.js
+built-ins/TypedArray/prototype/sort/sorted-values.js
+built-ins/TypedArray/prototype/sort/invoked-as-func.js
+built-ins/TypedArray/prototype/sort/return-same-instance.js
+built-ins/TypedArray/prototype/sort/detached-buffer-comparefn-coerce.js
+built-ins/TypedArray/prototype/sort/comparefn-call-throws.js
+built-ins/TypedArray/prototype/sort/sorted-values-nan.js
+built-ins/TypedArray/prototype/sort/name.js
+built-ins/TypedArray/prototype/sort/invoked-as-method.js
+built-ins/TypedArray/prototype/sort/not-a-constructor.js
+built-ins/TypedArray/prototype/sort/sort-tonumber.js
+built-ins/TypedArray/prototype/sort/detached-buffer-comparefn.js
+built-ins/TypedArray/prototype/sort/this-is-not-object.js
+built-ins/TypedArray/prototype/sort/sortcompare-with-no-tostring.js
+built-ins/TypedArray/prototype/set/typedarray-arg-target-byteoffset-internal.js
+built-ins/TypedArray/prototype/set/typedarray-arg-targetbuffer-detached-during-tointeger-offset-throws.js
+built-ins/TypedArray/prototype/set/array-arg-target-arraylength-internal.js
+built-ins/TypedArray/prototype/set/array-arg-set-values.js
+built-ins/TypedArray/prototype/set/typedarray-arg-offset-tointeger.js
+built-ins/TypedArray/prototype/set/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type.js
+built-ins/TypedArray/prototype/set/length.js
+built-ins/TypedArray/prototype/set/array-arg-src-tonumber-value-conversions.js
+built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type-conversions.js
+built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-same-type.js
+built-ins/TypedArray/prototype/set/typedarray-arg-return-abrupt-from-tointeger-offset-symbol.js
+built-ins/TypedArray/prototype/set/typedarray-arg-return-abrupt-from-tointeger-offset.js
+built-ins/TypedArray/prototype/set/prop-desc.js
+built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-tointeger-offset-throws.js
+built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-same-type.js
+built-ins/TypedArray/prototype/set/typedarray-arg-target-arraylength-internal.js
+built-ins/TypedArray/prototype/set/src-typedarray-big-throws.js
+built-ins/TypedArray/prototype/set/array-arg-src-values-are-not-cached.js
+built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-tointeger-offset.js
+built-ins/TypedArray/prototype/set/typedarray-arg-src-arraylength-internal.js
+built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-tonumber-value-symbol.js
+built-ins/TypedArray/prototype/set/array-arg-negative-integer-offset-throws.js
+built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-get-src-value-throws.js
+built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type-sab.js
+built-ins/TypedArray/prototype/set/array-arg-set-values-in-order.js
+built-ins/TypedArray/prototype/set/typedarray-arg-srcbuffer-detached-during-tointeger-offset-throws.js
+built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js
+built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-get-length.js
+built-ins/TypedArray/prototype/set/invoked-as-func.js
+built-ins/TypedArray/prototype/set/array-arg-offset-tointeger.js
+built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type-conversions-sab.js
+built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-tointeger-offset-symbol.js
+built-ins/TypedArray/prototype/set/bit-precision.js
+built-ins/TypedArray/prototype/set/typedarray-arg-src-byteoffset-internal.js
+built-ins/TypedArray/prototype/set/array-arg-src-tonumber-value-type-conversions.js
+built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-same-type-sab.js
+built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-tonumber-value.js
+built-ins/TypedArray/prototype/set/typedarray-arg-negative-integer-offset-throws.js
+built-ins/TypedArray/prototype/set/typedarray-arg-src-range-greather-than-target-throws-rangeerror.js
+built-ins/TypedArray/prototype/set/name.js
+built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-throws.js
+built-ins/TypedArray/prototype/set/invoked-as-method.js
+built-ins/TypedArray/prototype/set/not-a-constructor.js
+built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-get-value.js
+built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-same-type-sab.js
+built-ins/TypedArray/prototype/set/array-arg-primitive-toobject.js
+built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-toobject-offset.js
+built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-length.js
+built-ins/TypedArray/prototype/set/this-is-not-object.js
+built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-length-symbol.js
+built-ins/TypedArray/prototype/byteLength/invoked-as-accessor.js
+built-ins/TypedArray/prototype/byteLength/length.js
+built-ins/TypedArray/prototype/byteLength/detached-buffer.js
+built-ins/TypedArray/prototype/byteLength/return-bytelength.js
+built-ins/TypedArray/prototype/byteLength/prop-desc.js
+built-ins/TypedArray/prototype/byteLength/invoked-as-func.js
+built-ins/TypedArray/prototype/byteLength/name.js
+built-ins/TypedArray/prototype/byteLength/this-has-no-typedarrayname-internal.js
+built-ins/TypedArray/prototype/byteLength/this-is-not-object.js
+built-ins/TypedArray/prototype/fill/return-abrupt-from-start-as-symbol.js
+built-ins/TypedArray/prototype/fill/fill-values-relative-start.js
+built-ins/TypedArray/prototype/fill/fill-values.js
+built-ins/TypedArray/prototype/fill/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/fill/length.js
+built-ins/TypedArray/prototype/fill/fill-values-custom-start-and-end.js
+built-ins/TypedArray/prototype/fill/detached-buffer.js
+built-ins/TypedArray/prototype/fill/return-abrupt-from-set-value.js
+built-ins/TypedArray/prototype/fill/prop-desc.js
+built-ins/TypedArray/prototype/fill/coerced-start-detach.js
+built-ins/TypedArray/prototype/fill/coerced-indexes.js
+built-ins/TypedArray/prototype/fill/get-length-ignores-length-prop.js
+built-ins/TypedArray/prototype/fill/coerced-end-detach.js
+built-ins/TypedArray/prototype/fill/fill-values-symbol-throws.js
+built-ins/TypedArray/prototype/fill/return-this.js
+built-ins/TypedArray/prototype/fill/invoked-as-func.js
+built-ins/TypedArray/prototype/fill/fill-values-conversion-operations.js
+built-ins/TypedArray/prototype/fill/return-abrupt-from-end.js
+built-ins/TypedArray/prototype/fill/fill-values-non-numeric.js
+built-ins/TypedArray/prototype/fill/name.js
+built-ins/TypedArray/prototype/fill/invoked-as-method.js
+built-ins/TypedArray/prototype/fill/not-a-constructor.js
+built-ins/TypedArray/prototype/fill/return-abrupt-from-start.js
+built-ins/TypedArray/prototype/fill/fill-values-conversion-operations-consistent-nan.js
+built-ins/TypedArray/prototype/fill/fill-values-conversion-once.js
+built-ins/TypedArray/prototype/fill/return-abrupt-from-end-as-symbol.js
+built-ins/TypedArray/prototype/fill/fill-values-relative-end.js
+built-ins/TypedArray/prototype/fill/coerced-value-detach.js
+built-ins/TypedArray/prototype/fill/this-is-not-object.js
+built-ins/TypedArray/prototype/find/predicate-may-detach-buffer.js
+built-ins/TypedArray/prototype/find/predicate-call-parameters.js
+built-ins/TypedArray/prototype/find/predicate-call-this-non-strict.js
+built-ins/TypedArray/prototype/find/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/find/length.js
+built-ins/TypedArray/prototype/find/predicate-call-changes-value.js
+built-ins/TypedArray/prototype/find/detached-buffer.js
+built-ins/TypedArray/prototype/find/prop-desc.js
+built-ins/TypedArray/prototype/find/get-length-ignores-length-prop.js
+built-ins/TypedArray/prototype/find/invoked-as-func.js
+built-ins/TypedArray/prototype/find/predicate-not-called-on-empty-array.js
+built-ins/TypedArray/prototype/find/predicate-is-not-callable-throws.js
+built-ins/TypedArray/prototype/find/predicate-call-this-strict.js
+built-ins/TypedArray/prototype/find/return-undefined-if-predicate-returns-false-value.js
+built-ins/TypedArray/prototype/find/name.js
+built-ins/TypedArray/prototype/find/invoked-as-method.js
+built-ins/TypedArray/prototype/find/return-abrupt-from-predicate-call.js
+built-ins/TypedArray/prototype/find/not-a-constructor.js
+built-ins/TypedArray/prototype/find/return-found-value-predicate-result-is-true.js
+built-ins/TypedArray/prototype/find/this-is-not-object.js
+built-ins/TypedArray/prototype/includes/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/includes/length.js
+built-ins/TypedArray/prototype/includes/get-length-uses-internal-arraylength.js
+built-ins/TypedArray/prototype/includes/search-not-found-returns-false.js
+built-ins/TypedArray/prototype/includes/fromIndex-equal-or-greater-length-returns-false.js
+built-ins/TypedArray/prototype/includes/detached-buffer.js
+built-ins/TypedArray/prototype/includes/prop-desc.js
+built-ins/TypedArray/prototype/includes/tointeger-fromindex.js
+built-ins/TypedArray/prototype/includes/fromIndex-minus-zero.js
+built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-true-for-undefined.js
+built-ins/TypedArray/prototype/includes/samevaluezero.js
+built-ins/TypedArray/prototype/includes/fromIndex-infinity.js
+built-ins/TypedArray/prototype/includes/invoked-as-func.js
+built-ins/TypedArray/prototype/includes/length-zero-returns-false.js
+built-ins/TypedArray/prototype/includes/return-abrupt-tointeger-fromindex-symbol.js
+built-ins/TypedArray/prototype/includes/name.js
+built-ins/TypedArray/prototype/includes/invoked-as-method.js
+built-ins/TypedArray/prototype/includes/not-a-constructor.js
+built-ins/TypedArray/prototype/includes/searchelement-not-integer.js
+built-ins/TypedArray/prototype/includes/search-found-returns-true.js
+built-ins/TypedArray/prototype/includes/return-abrupt-tointeger-fromindex.js
+built-ins/TypedArray/prototype/includes/this-is-not-object.js
+built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-false-for-zero.js
+built-ins/TypedArray/prototype/reduceRight/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/reduceRight/length.js
+built-ins/TypedArray/prototype/reduceRight/get-length-uses-internal-arraylength.js
+built-ins/TypedArray/prototype/reduceRight/callbackfn-not-called-on-empty.js
+built-ins/TypedArray/prototype/reduceRight/detached-buffer.js
+built-ins/TypedArray/prototype/reduceRight/prop-desc.js
+built-ins/TypedArray/prototype/reduceRight/result-is-last-callbackfn-return.js
+built-ins/TypedArray/prototype/reduceRight/callbackfn-detachbuffer.js
+built-ins/TypedArray/prototype/reduceRight/result-of-any-type.js
+built-ins/TypedArray/prototype/reduceRight/callbackfn-returns-abrupt.js
+built-ins/TypedArray/prototype/reduceRight/callbackfn-arguments-custom-accumulator.js
+built-ins/TypedArray/prototype/reduceRight/invoked-as-func.js
+built-ins/TypedArray/prototype/reduceRight/empty-instance-return-initialvalue.js
+built-ins/TypedArray/prototype/reduceRight/callbackfn-arguments-default-accumulator.js
+built-ins/TypedArray/prototype/reduceRight/values-are-not-cached.js
+built-ins/TypedArray/prototype/reduceRight/callbackfn-is-not-callable-throws.js
+built-ins/TypedArray/prototype/reduceRight/name.js
+built-ins/TypedArray/prototype/reduceRight/callbackfn-this.js
+built-ins/TypedArray/prototype/reduceRight/invoked-as-method.js
+built-ins/TypedArray/prototype/reduceRight/not-a-constructor.js
+built-ins/TypedArray/prototype/reduceRight/callbackfn-return-does-not-change-instance.js
+built-ins/TypedArray/prototype/reduceRight/callbackfn-no-iteration-over-non-integer-properties.js
+built-ins/TypedArray/prototype/reduceRight/empty-instance-with-no-initialvalue-throws.js
+built-ins/TypedArray/prototype/reduceRight/return-first-value-without-callbackfn.js
+built-ins/TypedArray/prototype/reduceRight/callbackfn-set-value-during-iteration.js
+built-ins/TypedArray/prototype/reduceRight/this-is-not-object.js
+built-ins/TypedArray/prototype/toString.js
+built-ins/TypedArray/prototype/join/return-abrupt-from-separator-symbol.js
+built-ins/TypedArray/prototype/join/this-is-not-typedarray-instance.js
+built-ins/TypedArray/prototype/join/length.js
+built-ins/TypedArray/prototype/join/get-length-uses-internal-arraylength.js
+built-ins/TypedArray/prototype/join/detached-buffer.js
+built-ins/TypedArray/prototype/join/prop-desc.js
+built-ins/TypedArray/prototype/join/return-abrupt-from-separator.js
+built-ins/TypedArray/prototype/join/result-from-tostring-on-each-simple-value.js
+built-ins/TypedArray/prototype/join/empty-instance-empty-string.js
+built-ins/TypedArray/prototype/join/invoked-as-func.js
+built-ins/TypedArray/prototype/join/custom-separator-result-from-tostring-on-each-simple-value.js
+built-ins/TypedArray/prototype/join/result-from-tostring-on-each-value.js
+built-ins/TypedArray/prototype/join/detached-buffer-during-fromIndex-returns-single-comma.js
+built-ins/TypedArray/prototype/join/custom-separator-result-from-tostring-on-each-value.js
+built-ins/TypedArray/prototype/join/name.js
+built-ins/TypedArray/prototype/join/invoked-as-method.js
+built-ins/TypedArray/prototype/join/not-a-constructor.js
+built-ins/TypedArray/prototype/join/this-is-not-object.js
+built-ins/TypedArray/prototype/length/invoked-as-accessor.js
+built-ins/TypedArray/prototype/length/length.js
+built-ins/TypedArray/prototype/length/detached-buffer.js
+built-ins/TypedArray/prototype/length/prop-desc.js
+built-ins/TypedArray/prototype/length/invoked-as-func.js
+built-ins/TypedArray/prototype/length/name.js
+built-ins/TypedArray/prototype/length/return-length.js
+built-ins/TypedArray/prototype/length/this-has-no-typedarrayname-internal.js
+built-ins/TypedArray/prototype/length/this-is-not-object.js
+built-ins/TypedArray/prototype/buffer/invoked-as-accessor.js
+built-ins/TypedArray/prototype/buffer/length.js
+built-ins/TypedArray/prototype/buffer/detached-buffer.js
+built-ins/TypedArray/prototype/buffer/prop-desc.js
+built-ins/TypedArray/prototype/buffer/invoked-as-func.js
+built-ins/TypedArray/prototype/buffer/name.js
+built-ins/TypedArray/prototype/buffer/this-inherits-typedarray.js
+built-ins/TypedArray/prototype/buffer/return-buffer.js
+built-ins/TypedArray/prototype/buffer/this-has-no-typedarrayname-internal.js
+built-ins/TypedArray/prototype/buffer/this-is-not-object.js
+built-ins/TypedArray/of/length.js
+built-ins/TypedArray/of/this-is-not-constructor.js
+built-ins/TypedArray/of/invoked-as-method.js
+built-ins/TypedArray/of/not-a-constructor.js
+built-ins/TypedArray/from/iter-invoke-error.js
+built-ins/TypedArray/from/length.js
+built-ins/TypedArray/from/iter-access-error.js
+built-ins/TypedArray/from/arylk-to-length-error.js
+built-ins/TypedArray/from/invoked-as-func.js
+built-ins/TypedArray/from/iter-next-error.js
+built-ins/TypedArray/from/this-is-not-constructor.js
+built-ins/TypedArray/from/iter-next-value-error.js
+built-ins/TypedArray/from/invoked-as-method.js
+built-ins/TypedArray/from/not-a-constructor.js
+built-ins/TypedArray/from/arylk-get-length-error.js
+built-ins/TypedArray/from/mapfn-is-not-callable.js
+built-ins/TypedArray/name.js
+built-ins/TypedArrayConstructors/Float64Array/proto.js
+built-ins/TypedArrayConstructors/Float64Array/length.js
+built-ins/TypedArrayConstructors/Float64Array/constructor.js
+built-ins/TypedArrayConstructors/Float64Array/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Float64Array/prototype.js
+built-ins/TypedArrayConstructors/Float64Array/prototype/proto.js
+built-ins/TypedArrayConstructors/Float64Array/prototype/constructor.js
+built-ins/TypedArrayConstructors/Float64Array/prototype/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Float64Array/prototype/not-typedarray-object.js
+built-ins/TypedArrayConstructors/Float64Array/is-a-constructor.js
+built-ins/TypedArrayConstructors/Float64Array/name.js
+built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-property.js
+built-ins/TypedArrayConstructors/ctors/object-arg/length-throws.js
+built-ins/TypedArrayConstructors/ctors/object-arg/undefined-newtarget-throws.js
+built-ins/TypedArrayConstructors/ctors/object-arg/iterator-throws.js
+built-ins/TypedArrayConstructors/ctors/object-arg/new-instance-extensibility.js
+built-ins/TypedArrayConstructors/ctors/object-arg/iterating-throws.js
+built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-to-primitive.js
+built-ins/TypedArrayConstructors/ctors/object-arg/use-default-proto-if-custom-proto-is-not-object.js
+built-ins/TypedArrayConstructors/ctors/object-arg/conversion-operation.js
+built-ins/TypedArrayConstructors/ctors/object-arg/as-generator-iterable-returns.js
+built-ins/TypedArrayConstructors/ctors/object-arg/returns.js
+built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-tostring.js
+built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-symbol-property.js
+built-ins/TypedArrayConstructors/ctors/object-arg/custom-proto-access-throws.js
+built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-to-primitive-typeerror.js
+built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-valueof-typeerror.js
+built-ins/TypedArrayConstructors/ctors/object-arg/throws-from-property.js
+built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-valueof.js
+built-ins/TypedArrayConstructors/ctors/object-arg/proto-from-ctor-realm.js
+built-ins/TypedArrayConstructors/ctors/object-arg/conversion-operation-consistent-nan.js
+built-ins/TypedArrayConstructors/ctors/object-arg/iterator-not-callable-throws.js
+built-ins/TypedArrayConstructors/ctors/object-arg/length-is-symbol-throws.js
+built-ins/TypedArrayConstructors/ctors/object-arg/as-array-returns.js
+built-ins/TypedArrayConstructors/ctors/object-arg/iterator-is-null-as-array-like.js
+built-ins/TypedArrayConstructors/ctors/object-arg/length-excessive-throws.js
+built-ins/TypedArrayConstructors/ctors/object-arg/use-custom-proto-if-object.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-species-prototype-throws.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/undefined-newtarget-throws.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-value-not-obj-throws.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-species-custom-proto-from-ctor-realm.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-species-null.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/new-instance-extensibility.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/src-typedarray-big-throws.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/use-default-proto-if-custom-proto-is-not-object.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/detached-when-species-retrieved-different-type.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-species-prototype-throws.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-custom-species-proto-from-ctor-realm.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-species-custom.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-species-null.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-species-undefined.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-returns-new-cloned-typedarray.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-species-not-ctor-throws.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-custom-species.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/custom-proto-access-throws.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/returns-new-instance.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-access-throws.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-species-undefined.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-species-throws.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-access-throws.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/proto-from-ctor-realm.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-species-not-ctor.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-species-access-throws.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/detached-when-species-retrieved-same-type.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-returns-new-typedarray.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/use-custom-proto-if-object.js
+built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-not-object-throws.js
+built-ins/TypedArrayConstructors/ctors/length-arg/toindex-length.js
+built-ins/TypedArrayConstructors/ctors/length-arg/undefined-newtarget-throws.js
+built-ins/TypedArrayConstructors/ctors/length-arg/is-symbol-throws.js
+built-ins/TypedArrayConstructors/ctors/length-arg/new-instance-extensibility.js
+built-ins/TypedArrayConstructors/ctors/length-arg/init-zeros.js
+built-ins/TypedArrayConstructors/ctors/length-arg/use-default-proto-if-custom-proto-is-not-object.js
+built-ins/TypedArrayConstructors/ctors/length-arg/is-negative-integer-throws-rangeerror.js
+built-ins/TypedArrayConstructors/ctors/length-arg/returns-object.js
+built-ins/TypedArrayConstructors/ctors/length-arg/custom-proto-access-throws.js
+built-ins/TypedArrayConstructors/ctors/length-arg/proto-from-ctor-realm.js
+built-ins/TypedArrayConstructors/ctors/length-arg/is-infinity-throws-rangeerror.js
+built-ins/TypedArrayConstructors/ctors/length-arg/use-custom-proto-if-object.js
+built-ins/TypedArrayConstructors/ctors/no-args/undefined-newtarget-throws.js
+built-ins/TypedArrayConstructors/ctors/no-args/new-instance-extensibility.js
+built-ins/TypedArrayConstructors/ctors/no-args/use-default-proto-if-custom-proto-is-not-object.js
+built-ins/TypedArrayConstructors/ctors/no-args/returns-object.js
+built-ins/TypedArrayConstructors/ctors/no-args/custom-proto-access-throws.js
+built-ins/TypedArrayConstructors/ctors/no-args/proto-from-ctor-realm.js
+built-ins/TypedArrayConstructors/ctors/no-args/use-custom-proto-if-object.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-to-number-detachbuffer.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/custom-proto-access-throws-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/excessive-length-throws-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/is-referenced-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-is-negative-throws-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/invoked-with-undefined-newtarget-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/defined-length-and-offset-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/detachedbuffer.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/excessive-length-throws.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/new-instance-extensibility-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-throws-from-modulo-element-size-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/excessive-offset-throws-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/new-instance-extensibility.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/defined-length-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/invoked-with-undefined-newtarget.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/excessive-offset-throws.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/defined-offset-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/toindex-byteoffset.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/use-default-proto-if-custom-proto-is-not-object.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/defined-length-and-offset.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/bufferbyteoffset-throws-from-modulo-element-size-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/defined-negative-length-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/toindex-byteoffset-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-is-negative-zero-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/length-to-number-detachbuffer.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/toindex-bytelength-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/bufferbyteoffset-throws-from-modulo-element-size.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-is-symbol-throws-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/custom-proto-access-throws.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/length-is-symbol-throws-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/toindex-bytelength.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-is-negative-zero.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-to-number-throws.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/defined-length.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-to-number-throws-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/defined-negative-length.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/returns-new-instance-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/returns-new-instance.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/use-default-proto-if-custom-proto-is-not-object-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-is-negative-throws.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/proto-from-ctor-realm.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/length-access-throws.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/proto-from-ctor-realm-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/length-is-symbol-throws.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-is-symbol-throws.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/typedarray-backed-by-sharedarraybuffer.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/length-access-throws-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-throws-from-modulo-element-size.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/use-custom-proto-if-object-sab.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/use-custom-proto-if-object.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/defined-offset.js
+built-ins/TypedArrayConstructors/ctors/buffer-arg/is-referenced.js
+built-ins/TypedArrayConstructors/internals/Get/indexed-value-sab.js
+built-ins/TypedArrayConstructors/internals/Get/key-is-not-integer.js
+built-ins/TypedArrayConstructors/internals/Get/key-is-out-of-bounds.js
+built-ins/TypedArrayConstructors/internals/Get/detached-buffer.js
+built-ins/TypedArrayConstructors/internals/Get/key-is-not-minus-zero.js
+built-ins/TypedArrayConstructors/internals/Get/infinity-detached-buffer.js
+built-ins/TypedArrayConstructors/internals/Get/detached-buffer-key-is-symbol.js
+built-ins/TypedArrayConstructors/internals/Get/indexed-value.js
+built-ins/TypedArrayConstructors/internals/Get/key-is-not-canonical-index.js
+built-ins/TypedArrayConstructors/internals/Get/detached-buffer-realm.js
+built-ins/TypedArrayConstructors/internals/Get/key-is-not-numeric-index-get-throws.js
+built-ins/TypedArrayConstructors/internals/Get/key-is-symbol.js
+built-ins/TypedArrayConstructors/internals/Get/key-is-not-numeric-index.js
+built-ins/TypedArrayConstructors/internals/Get/detached-buffer-key-is-not-numeric-index.js
+built-ins/TypedArrayConstructors/internals/Set/key-is-not-integer.js
+built-ins/TypedArrayConstructors/internals/Set/key-is-out-of-bounds.js
+built-ins/TypedArrayConstructors/internals/Set/detached-buffer.js
+built-ins/TypedArrayConstructors/internals/Set/detached-buffer-key-is-symbol.js
+built-ins/TypedArrayConstructors/internals/Set/key-is-not-numeric-index-set-throws.js
+built-ins/TypedArrayConstructors/internals/Set/conversion-operation.js
+built-ins/TypedArrayConstructors/internals/Set/indexed-value.js
+built-ins/TypedArrayConstructors/internals/Set/key-is-not-canonical-index.js
+built-ins/TypedArrayConstructors/internals/Set/tonumber-value-throws.js
+built-ins/TypedArrayConstructors/internals/Set/key-is-minus-zero.js
+built-ins/TypedArrayConstructors/internals/Set/detached-buffer-realm.js
+built-ins/TypedArrayConstructors/internals/Set/tonumber-value-detached-buffer.js
+built-ins/TypedArrayConstructors/internals/Set/key-is-symbol.js
+built-ins/TypedArrayConstructors/internals/Set/conversion-operation-consistent-nan.js
+built-ins/TypedArrayConstructors/internals/Set/key-is-not-numeric-index.js
+built-ins/TypedArrayConstructors/internals/Set/detached-buffer-key-is-not-numeric-index.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-not-integer.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-accessor-desc.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/non-extensible-new-key.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-greater-than-last-index.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/conversion-operation.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/desc-value-throws.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/set-value.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-not-canonical-index.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-not-enumerable.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-minus-zero.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-configurable.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-realm.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-lower-than-zero.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/this-is-not-extensible.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-not-writable.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/tonumber-value-detached-buffer.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-symbol.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/conversion-operation-consistent-nan.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-not-numeric-index.js
+built-ins/TypedArrayConstructors/internals/DefineOwnProperty/non-extensible-redefine-key.js
+built-ins/TypedArrayConstructors/internals/Delete/key-is-not-integer.js
+built-ins/TypedArrayConstructors/internals/Delete/key-is-not-minus-zero-non-strict.js
+built-ins/TypedArrayConstructors/internals/Delete/key-is-not-canonical-index-strict.js
+built-ins/TypedArrayConstructors/internals/Delete/detached-buffer.js
+built-ins/TypedArrayConstructors/internals/Delete/indexed-value-sab-strict.js
+built-ins/TypedArrayConstructors/internals/Delete/infinity-detached-buffer.js
+built-ins/TypedArrayConstructors/internals/Delete/detached-buffer-key-is-symbol.js
+built-ins/TypedArrayConstructors/internals/Delete/key-is-not-numeric-index-strict.js
+built-ins/TypedArrayConstructors/internals/Delete/key-is-out-of-bounds-non-strict.js
+built-ins/TypedArrayConstructors/internals/Delete/key-is-not-canonical-index-non-strict.js
+built-ins/TypedArrayConstructors/internals/Delete/key-is-not-numeric-index-non-strict.js
+built-ins/TypedArrayConstructors/internals/Delete/indexed-value-ab-non-strict.js
+built-ins/TypedArrayConstructors/internals/Delete/detached-buffer-realm.js
+built-ins/TypedArrayConstructors/internals/Delete/key-is-not-numeric-index-get-throws.js
+built-ins/TypedArrayConstructors/internals/Delete/indexed-value-ab-strict.js
+built-ins/TypedArrayConstructors/internals/Delete/key-is-symbol.js
+built-ins/TypedArrayConstructors/internals/Delete/key-is-not-minus-zero-strict.js
+built-ins/TypedArrayConstructors/internals/Delete/indexed-value-sab-non-strict.js
+built-ins/TypedArrayConstructors/internals/Delete/key-is-out-of-bounds-strict.js
+built-ins/TypedArrayConstructors/internals/Delete/detached-buffer-key-is-not-numeric-index.js
+built-ins/TypedArrayConstructors/internals/OwnPropertyKeys/integer-indexes-and-string-keys.js
+built-ins/TypedArrayConstructors/internals/OwnPropertyKeys/integer-indexes.js
+built-ins/TypedArrayConstructors/internals/OwnPropertyKeys/integer-indexes-and-string-and-symbol-keys-.js
+built-ins/TypedArrayConstructors/internals/OwnPropertyKeys/not-enumerable-keys.js
+built-ins/TypedArrayConstructors/internals/GetOwnProperty/key-is-not-integer.js
+built-ins/TypedArrayConstructors/internals/GetOwnProperty/key-is-out-of-bounds.js
+built-ins/TypedArrayConstructors/internals/GetOwnProperty/detached-buffer.js
+built-ins/TypedArrayConstructors/internals/GetOwnProperty/detached-buffer-key-is-not-number.js
+built-ins/TypedArrayConstructors/internals/GetOwnProperty/enumerate-detached-buffer.js
+built-ins/TypedArrayConstructors/internals/GetOwnProperty/detached-buffer-key-is-symbol.js
+built-ins/TypedArrayConstructors/internals/GetOwnProperty/key-is-not-canonical-index.js
+built-ins/TypedArrayConstructors/internals/GetOwnProperty/key-is-minus-zero.js
+built-ins/TypedArrayConstructors/internals/GetOwnProperty/detached-buffer-realm.js
+built-ins/TypedArrayConstructors/internals/GetOwnProperty/key-is-symbol.js
+built-ins/TypedArrayConstructors/internals/GetOwnProperty/key-is-not-numeric-index.js
+built-ins/TypedArrayConstructors/internals/GetOwnProperty/index-prop-desc.js
+built-ins/TypedArrayConstructors/internals/HasProperty/key-is-not-integer.js
+built-ins/TypedArrayConstructors/internals/HasProperty/detached-buffer.js
+built-ins/TypedArrayConstructors/internals/HasProperty/detached-buffer-key-is-not-number.js
+built-ins/TypedArrayConstructors/internals/HasProperty/infinity-with-detached-buffer.js
+built-ins/TypedArrayConstructors/internals/HasProperty/detached-buffer-key-is-symbol.js
+built-ins/TypedArrayConstructors/internals/HasProperty/key-is-greater-than-last-index.js
+built-ins/TypedArrayConstructors/internals/HasProperty/indexed-value.js
+built-ins/TypedArrayConstructors/internals/HasProperty/key-is-not-canonical-index.js
+built-ins/TypedArrayConstructors/internals/HasProperty/key-is-minus-zero.js
+built-ins/TypedArrayConstructors/internals/HasProperty/abrupt-from-ordinary-has-parent-hasproperty.js
+built-ins/TypedArrayConstructors/internals/HasProperty/detached-buffer-realm.js
+built-ins/TypedArrayConstructors/internals/HasProperty/key-is-lower-than-zero.js
+built-ins/TypedArrayConstructors/internals/HasProperty/key-is-symbol.js
+built-ins/TypedArrayConstructors/internals/HasProperty/inherited-property.js
+built-ins/TypedArrayConstructors/internals/HasProperty/key-is-not-numeric-index.js
+built-ins/TypedArrayConstructors/Int32Array/proto.js
+built-ins/TypedArrayConstructors/Int32Array/length.js
+built-ins/TypedArrayConstructors/Int32Array/constructor.js
+built-ins/TypedArrayConstructors/Int32Array/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Int32Array/prototype.js
+built-ins/TypedArrayConstructors/Int32Array/prototype/proto.js
+built-ins/TypedArrayConstructors/Int32Array/prototype/constructor.js
+built-ins/TypedArrayConstructors/Int32Array/prototype/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Int32Array/prototype/not-typedarray-object.js
+built-ins/TypedArrayConstructors/Int32Array/is-a-constructor.js
+built-ins/TypedArrayConstructors/Int32Array/name.js
+built-ins/TypedArrayConstructors/Int16Array/proto.js
+built-ins/TypedArrayConstructors/Int16Array/length.js
+built-ins/TypedArrayConstructors/Int16Array/constructor.js
+built-ins/TypedArrayConstructors/Int16Array/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Int16Array/prototype.js
+built-ins/TypedArrayConstructors/Int16Array/prototype/proto.js
+built-ins/TypedArrayConstructors/Int16Array/prototype/constructor.js
+built-ins/TypedArrayConstructors/Int16Array/prototype/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Int16Array/prototype/not-typedarray-object.js
+built-ins/TypedArrayConstructors/Int16Array/is-a-constructor.js
+built-ins/TypedArrayConstructors/Int16Array/name.js
+built-ins/TypedArrayConstructors/Uint16Array/proto.js
+built-ins/TypedArrayConstructors/Uint16Array/length.js
+built-ins/TypedArrayConstructors/Uint16Array/constructor.js
+built-ins/TypedArrayConstructors/Uint16Array/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Uint16Array/prototype.js
+built-ins/TypedArrayConstructors/Uint16Array/prototype/proto.js
+built-ins/TypedArrayConstructors/Uint16Array/prototype/constructor.js
+built-ins/TypedArrayConstructors/Uint16Array/prototype/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Uint16Array/prototype/not-typedarray-object.js
+built-ins/TypedArrayConstructors/Uint16Array/is-a-constructor.js
+built-ins/TypedArrayConstructors/Uint16Array/name.js
+built-ins/TypedArrayConstructors/Float32Array/proto.js
+built-ins/TypedArrayConstructors/Float32Array/length.js
+built-ins/TypedArrayConstructors/Float32Array/constructor.js
+built-ins/TypedArrayConstructors/Float32Array/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Float32Array/prototype.js
+built-ins/TypedArrayConstructors/Float32Array/prototype/proto.js
+built-ins/TypedArrayConstructors/Float32Array/prototype/constructor.js
+built-ins/TypedArrayConstructors/Float32Array/prototype/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Float32Array/prototype/not-typedarray-object.js
+built-ins/TypedArrayConstructors/Float32Array/is-a-constructor.js
+built-ins/TypedArrayConstructors/Float32Array/name.js
+built-ins/TypedArrayConstructors/Uint32Array/proto.js
+built-ins/TypedArrayConstructors/Uint32Array/length.js
+built-ins/TypedArrayConstructors/Uint32Array/constructor.js
+built-ins/TypedArrayConstructors/Uint32Array/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Uint32Array/prototype.js
+built-ins/TypedArrayConstructors/Uint32Array/prototype/proto.js
+built-ins/TypedArrayConstructors/Uint32Array/prototype/constructor.js
+built-ins/TypedArrayConstructors/Uint32Array/prototype/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Uint32Array/prototype/not-typedarray-object.js
+built-ins/TypedArrayConstructors/Uint32Array/is-a-constructor.js
+built-ins/TypedArrayConstructors/Uint32Array/name.js
+built-ins/TypedArrayConstructors/prototype/findIndex/inherited.js
+built-ins/TypedArrayConstructors/prototype/slice/inherited.js
+built-ins/TypedArrayConstructors/prototype/Symbol.iterator.js
+built-ins/TypedArrayConstructors/prototype/subarray/inherited.js
+built-ins/TypedArrayConstructors/prototype/reduce/inherited.js
+built-ins/TypedArrayConstructors/prototype/copyWithin/inherited.js
+built-ins/TypedArrayConstructors/prototype/reverse/inherited.js
+built-ins/TypedArrayConstructors/prototype/entries/inherited.js
+built-ins/TypedArrayConstructors/prototype/keys/inherited.js
+built-ins/TypedArrayConstructors/prototype/byteOffset/inherited.js
+built-ins/TypedArrayConstructors/prototype/toLocaleString/inherited.js
+built-ins/TypedArrayConstructors/prototype/values/inherited.js
+built-ins/TypedArrayConstructors/prototype/filter/inherited.js
+built-ins/TypedArrayConstructors/prototype/every/inherited.js
+built-ins/TypedArrayConstructors/prototype/lastIndexOf/inherited.js
+built-ins/TypedArrayConstructors/prototype/map/inherited.js
+built-ins/TypedArrayConstructors/prototype/toString/inherited.js
+built-ins/TypedArrayConstructors/prototype/some/inherited.js
+built-ins/TypedArrayConstructors/prototype/forEach/inherited.js
+built-ins/TypedArrayConstructors/prototype/indexOf/inherited.js
+built-ins/TypedArrayConstructors/prototype/Symbol.toStringTag/inherited.js
+built-ins/TypedArrayConstructors/prototype/sort/inherited.js
+built-ins/TypedArrayConstructors/prototype/set/inherited.js
+built-ins/TypedArrayConstructors/prototype/byteLength/inherited.js
+built-ins/TypedArrayConstructors/prototype/fill/inherited.js
+built-ins/TypedArrayConstructors/prototype/find/inherited.js
+built-ins/TypedArrayConstructors/prototype/reduceRight/inherited.js
+built-ins/TypedArrayConstructors/prototype/join/inherited.js
+built-ins/TypedArrayConstructors/prototype/length/inherited.js
+built-ins/TypedArrayConstructors/prototype/buffer/inherited.js
+built-ins/TypedArrayConstructors/of/argument-is-symbol-throws.js
+built-ins/TypedArrayConstructors/of/custom-ctor.js
+built-ins/TypedArrayConstructors/of/nan-conversion.js
+built-ins/TypedArrayConstructors/of/argument-number-value-throws.js
+built-ins/TypedArrayConstructors/of/new-instance-using-custom-ctor.js
+built-ins/TypedArrayConstructors/of/new-instance.js
+built-ins/TypedArrayConstructors/of/new-instance-from-zero.js
+built-ins/TypedArrayConstructors/of/inherited.js
+built-ins/TypedArrayConstructors/of/invoked-as-func.js
+built-ins/TypedArrayConstructors/of/custom-ctor-returns-smaller-instance-throws.js
+built-ins/TypedArrayConstructors/of/custom-ctor-returns-other-instance.js
+built-ins/TypedArrayConstructors/of/custom-ctor-does-not-instantiate-ta-throws.js
+built-ins/TypedArrayConstructors/of/this-is-not-constructor.js
+built-ins/TypedArrayConstructors/of/new-instance-empty.js
+built-ins/TypedArrayConstructors/Int8Array/proto.js
+built-ins/TypedArrayConstructors/Int8Array/length.js
+built-ins/TypedArrayConstructors/Int8Array/constructor.js
+built-ins/TypedArrayConstructors/Int8Array/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Int8Array/prototype.js
+built-ins/TypedArrayConstructors/Int8Array/prototype/proto.js
+built-ins/TypedArrayConstructors/Int8Array/prototype/constructor.js
+built-ins/TypedArrayConstructors/Int8Array/prototype/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Int8Array/prototype/not-typedarray-object.js
+built-ins/TypedArrayConstructors/Int8Array/is-a-constructor.js
+built-ins/TypedArrayConstructors/Int8Array/name.js
+built-ins/TypedArrayConstructors/Uint8Array/proto.js
+built-ins/TypedArrayConstructors/Uint8Array/length.js
+built-ins/TypedArrayConstructors/Uint8Array/constructor.js
+built-ins/TypedArrayConstructors/Uint8Array/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Uint8Array/prototype.js
+built-ins/TypedArrayConstructors/Uint8Array/prototype/proto.js
+built-ins/TypedArrayConstructors/Uint8Array/prototype/constructor.js
+built-ins/TypedArrayConstructors/Uint8Array/prototype/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Uint8Array/prototype/not-typedarray-object.js
+built-ins/TypedArrayConstructors/Uint8Array/is-a-constructor.js
+built-ins/TypedArrayConstructors/Uint8Array/name.js
+built-ins/TypedArrayConstructors/from/iter-invoke-error.js
+built-ins/TypedArrayConstructors/from/property-abrupt-completion.js
+built-ins/TypedArrayConstructors/from/custom-ctor.js
+built-ins/TypedArrayConstructors/from/nan-conversion.js
+built-ins/TypedArrayConstructors/from/mapfn-this-with-thisarg.js
+built-ins/TypedArrayConstructors/from/set-value-abrupt-completion.js
+built-ins/TypedArrayConstructors/from/source-value-is-symbol-throws.js
+built-ins/TypedArrayConstructors/from/new-instance-from-ordinary-object.js
+built-ins/TypedArrayConstructors/from/new-instance-with-mapfn.js
+built-ins/TypedArrayConstructors/from/iter-access-error.js
+built-ins/TypedArrayConstructors/from/new-instance-using-custom-ctor.js
+built-ins/TypedArrayConstructors/from/arylk-to-length-error.js
+built-ins/TypedArrayConstructors/from/new-instance-from-zero.js
+built-ins/TypedArrayConstructors/from/mapfn-abrupt-completion.js
+built-ins/TypedArrayConstructors/from/inherited.js
+built-ins/TypedArrayConstructors/from/invoked-as-func.js
+built-ins/TypedArrayConstructors/from/custom-ctor-returns-smaller-instance-throws.js
+built-ins/TypedArrayConstructors/from/iter-next-error.js
+built-ins/TypedArrayConstructors/from/custom-ctor-returns-other-instance.js
+built-ins/TypedArrayConstructors/from/custom-ctor-does-not-instantiate-ta-throws.js
+built-ins/TypedArrayConstructors/from/this-is-not-constructor.js
+built-ins/TypedArrayConstructors/from/iter-next-value-error.js
+built-ins/TypedArrayConstructors/from/new-instance-empty.js
+built-ins/TypedArrayConstructors/from/new-instance-without-mapfn.js
+built-ins/TypedArrayConstructors/from/mapfn-this-without-thisarg-strict.js
+built-ins/TypedArrayConstructors/from/arylk-get-length-error.js
+built-ins/TypedArrayConstructors/from/new-instance-from-sparse-array.js
+built-ins/TypedArrayConstructors/from/mapfn-arguments.js
+built-ins/TypedArrayConstructors/from/mapfn-this-without-thisarg-non-strict.js
+built-ins/TypedArrayConstructors/from/mapfn-is-not-callable.js
+built-ins/TypedArrayConstructors/Uint8ClampedArray/proto.js
+built-ins/TypedArrayConstructors/Uint8ClampedArray/length.js
+built-ins/TypedArrayConstructors/Uint8ClampedArray/constructor.js
+built-ins/TypedArrayConstructors/Uint8ClampedArray/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Uint8ClampedArray/prototype.js
+built-ins/TypedArrayConstructors/Uint8ClampedArray/prototype/proto.js
+built-ins/TypedArrayConstructors/Uint8ClampedArray/prototype/constructor.js
+built-ins/TypedArrayConstructors/Uint8ClampedArray/prototype/BYTES_PER_ELEMENT.js
+built-ins/TypedArrayConstructors/Uint8ClampedArray/prototype/not-typedarray-object.js
+built-ins/TypedArrayConstructors/Uint8ClampedArray/is-a-constructor.js
+built-ins/TypedArrayConstructors/Uint8ClampedArray/name.js
+built-ins/WeakMap/name.js
+built-ins/WeakMap/iterator-item-second-entry-returns-abrupt.js
+built-ins/WeakMap/undefined-newtarget.js
+built-ins/WeakMap/iterable.js
+built-ins/WeakMap/iterator-item-first-entry-returns-abrupt.js
+built-ins/WeakMap/iterator-items-are-not-object.js
+built-ins/WeakMap/iterator-value-failure.js
+built-ins/WeakMap/weakmap.js
+built-ins/WeakMap/length.js
+built-ins/WeakMap/iterator-next-failure.js
+built-ins/WeakMap/constructor.js
+built-ins/WeakMap/properties-of-the-weakmap-prototype-object.js
+built-ins/WeakMap/prototype/has/name.js
+built-ins/WeakMap/prototype/has/this-not-object-throw-undefined.js
+built-ins/WeakMap/prototype/has/has.js
+built-ins/WeakMap/prototype/has/does-not-have-weakmapdata-internal-slot-map.js
+built-ins/WeakMap/prototype/has/this-not-object-throw-boolean.js
+built-ins/WeakMap/prototype/has/this-not-object-throw-null.js
+built-ins/WeakMap/prototype/has/not-a-constructor.js
+built-ins/WeakMap/prototype/has/length.js
+built-ins/WeakMap/prototype/has/returns-false-when-value-not-present.js
+built-ins/WeakMap/prototype/has/returns-true-when-value-present.js
+built-ins/WeakMap/prototype/has/this-not-object-throw-number.js
+built-ins/WeakMap/prototype/has/this-not-object-throw-string.js
+built-ins/WeakMap/prototype/has/does-not-have-weakmapdata-internal-slot-object.js
+built-ins/WeakMap/prototype/has/this-not-object-throw-symbol.js
+built-ins/WeakMap/prototype/has/returns-false-when-value-is-not-object.js
+built-ins/WeakMap/prototype/has/does-not-have-weakmapdata-internal-slot-array.js
+built-ins/WeakMap/prototype/has/does-not-have-weakmapdata-internal-slot-weakmap-prototype.js
+built-ins/WeakMap/prototype/has/does-not-have-weakmapdata-internal-slot-set.js
+built-ins/WeakMap/prototype/constructor.js
+built-ins/WeakMap/prototype/prototype-attributes.js
+built-ins/WeakMap/prototype/Symbol.toStringTag.js
+built-ins/WeakMap/prototype/delete/name.js
+built-ins/WeakMap/prototype/delete/this-not-object-throw-undefined.js
+built-ins/WeakMap/prototype/delete/does-not-have-weakmapdata-internal-slot-map.js
+built-ins/WeakMap/prototype/delete/this-not-object-throw-boolean.js
+built-ins/WeakMap/prototype/delete/returns-false-value-is-not-object.js
+built-ins/WeakMap/prototype/delete/this-not-object-throw-null.js
+built-ins/WeakMap/prototype/delete/not-a-constructor.js
+built-ins/WeakMap/prototype/delete/delete-entry-initial-iterable.js
+built-ins/WeakMap/prototype/delete/length.js
+built-ins/WeakMap/prototype/delete/returns-false-when-delete-is-noop.js
+built-ins/WeakMap/prototype/delete/this-not-object-throw-number.js
+built-ins/WeakMap/prototype/delete/this-not-object-throw-string.js
+built-ins/WeakMap/prototype/delete/delete-entry.js
+built-ins/WeakMap/prototype/delete/does-not-have-weakmapdata-internal-slot-object.js
+built-ins/WeakMap/prototype/delete/this-not-object-throw-symbol.js
+built-ins/WeakMap/prototype/delete/does-not-have-weakmapdata-internal-slot-array.js
+built-ins/WeakMap/prototype/delete/delete.js
+built-ins/WeakMap/prototype/delete/does-not-have-weakmapdata-internal-slot-weakmap-prototype.js
+built-ins/WeakMap/prototype/delete/does-not-have-weakmapdata-internal-slot-set.js
+built-ins/WeakMap/prototype/get/name.js
+built-ins/WeakMap/prototype/get/does-not-have-weakmapdata-internal-slot-map.js
+built-ins/WeakMap/prototype/get/not-a-constructor.js
+built-ins/WeakMap/prototype/get/length.js
+built-ins/WeakMap/prototype/get/get.js
+built-ins/WeakMap/prototype/get/returns-value.js
+built-ins/WeakMap/prototype/get/returns-undefined-key-is-not-object.js
+built-ins/WeakMap/prototype/get/this-not-object-throw.js
+built-ins/WeakMap/prototype/get/returns-undefined.js
+built-ins/WeakMap/prototype/get/does-not-have-weakmapdata-internal-slot.js
+built-ins/WeakMap/prototype/get/does-not-have-weakmapdata-internal-slot-set.js
+built-ins/WeakMap/prototype/set/name.js
+built-ins/WeakMap/prototype/set/this-not-object-throw-undefined.js
+built-ins/WeakMap/prototype/set/adds-element.js
+built-ins/WeakMap/prototype/set/does-not-have-weakmapdata-internal-slot-map.js
+built-ins/WeakMap/prototype/set/this-not-object-throw-boolean.js
+built-ins/WeakMap/prototype/set/this-not-object-throw-null.js
+built-ins/WeakMap/prototype/set/not-a-constructor.js
+built-ins/WeakMap/prototype/set/length.js
+built-ins/WeakMap/prototype/set/returns-this.js
+built-ins/WeakMap/prototype/set/this-not-object-throw-number.js
+built-ins/WeakMap/prototype/set/this-not-object-throw-string.js
+built-ins/WeakMap/prototype/set/does-not-have-weakmapdata-internal-slot-object.js
+built-ins/WeakMap/prototype/set/this-not-object-throw-symbol.js
+built-ins/WeakMap/prototype/set/set.js
+built-ins/WeakMap/prototype/set/returns-this-when-ignoring-duplicate.js
+built-ins/WeakMap/prototype/set/does-not-have-weakmapdata-internal-slot-array.js
+built-ins/WeakMap/prototype/set/key-not-object-throw.js
+built-ins/WeakMap/prototype/set/does-not-have-weakmapdata-internal-slot-weakmap-prototype.js
+built-ins/WeakMap/prototype/set/does-not-have-weakmapdata-internal-slot-set.js
+built-ins/WeakMap/get-set-method-failure.js
+built-ins/WeakMap/iterable-failure.js
+built-ins/WeakMap/no-iterable.js
+built-ins/WeakMap/empty-iterable.js
+built-ins/WeakMap/iterator-close-after-set-failure.js
+built-ins/WeakMap/prototype-of-weakmap.js
+built-ins/WeakMap/is-a-constructor.js
+built-ins/WeakMap/set-not-callable-throws.js
+built-ins/WeakMap/properties-of-map-instances.js
+built-ins/WeakMap/iterator-items-are-not-object-close-iterator.js
+built-ins/WeakSet/name.js
+built-ins/WeakSet/undefined-newtarget.js
+built-ins/WeakSet/symbol-disallowed-as-weakset-key.js
+built-ins/WeakSet/iterable.js
+built-ins/WeakSet/iterator-value-failure.js
+built-ins/WeakSet/properties-of-the-weakset-prototype-object.js
+built-ins/WeakSet/length.js
+built-ins/WeakSet/iterator-next-failure.js
+built-ins/WeakSet/constructor.js
+built-ins/WeakSet/get-add-method-failure.js
+built-ins/WeakSet/prototype/add/name.js
+built-ins/WeakSet/prototype/add/this-not-object-throw-undefined.js
+built-ins/WeakSet/prototype/add/does-not-have-weaksetdata-internal-slot-weakset-prototype.js
+built-ins/WeakSet/prototype/add/adds-element.js
+built-ins/WeakSet/prototype/add/this-not-object-throw-boolean.js
+built-ins/WeakSet/prototype/add/this-not-object-throw-null.js
+built-ins/WeakSet/prototype/add/does-not-have-weaksetdata-internal-slot-map.js
+built-ins/WeakSet/prototype/add/not-a-constructor.js
+built-ins/WeakSet/prototype/add/value-not-object-throw.js
+built-ins/WeakSet/prototype/add/length.js
+built-ins/WeakSet/prototype/add/returns-this.js
+built-ins/WeakSet/prototype/add/this-not-object-throw-number.js
+built-ins/WeakSet/prototype/add/this-not-object-throw-string.js
+built-ins/WeakSet/prototype/add/does-not-have-weaksetdata-internal-slot-set.js
+built-ins/WeakSet/prototype/add/this-not-object-throw-symbol.js
+built-ins/WeakSet/prototype/add/does-not-have-weaksetdata-internal-slot-object.js
+built-ins/WeakSet/prototype/add/does-not-have-weaksetdata-internal-slot-array.js
+built-ins/WeakSet/prototype/add/returns-this-when-ignoring-duplicate.js
+built-ins/WeakSet/prototype/add/add.js
+built-ins/WeakSet/prototype/has/name.js
+built-ins/WeakSet/prototype/has/this-not-object-throw-undefined.js
+built-ins/WeakSet/prototype/has/does-not-have-weaksetdata-internal-slot-weakset-prototype.js
+built-ins/WeakSet/prototype/has/has.js
+built-ins/WeakSet/prototype/has/this-not-object-throw-boolean.js
+built-ins/WeakSet/prototype/has/this-not-object-throw-null.js
+built-ins/WeakSet/prototype/has/does-not-have-weaksetdata-internal-slot-map.js
+built-ins/WeakSet/prototype/has/not-a-constructor.js
+built-ins/WeakSet/prototype/has/length.js
+built-ins/WeakSet/prototype/has/returns-false-when-value-not-present.js
+built-ins/WeakSet/prototype/has/returns-true-when-value-present.js
+built-ins/WeakSet/prototype/has/this-not-object-throw-number.js
+built-ins/WeakSet/prototype/has/this-not-object-throw-string.js
+built-ins/WeakSet/prototype/has/does-not-have-weaksetdata-internal-slot-set.js
+built-ins/WeakSet/prototype/has/this-not-object-throw-symbol.js
+built-ins/WeakSet/prototype/has/does-not-have-weaksetdata-internal-slot-object.js
+built-ins/WeakSet/prototype/has/does-not-have-weaksetdata-internal-slot-array.js
+built-ins/WeakSet/prototype/has/returns-false-when-value-is-not-object.js
+built-ins/WeakSet/prototype/constructor/weakset-prototype-constructor.js
+built-ins/WeakSet/prototype/constructor/weakset-prototype-constructor-intrinsic.js
+built-ins/WeakSet/prototype/prototype-attributes.js
+built-ins/WeakSet/prototype/Symbol.toStringTag.js
+built-ins/WeakSet/prototype/delete/name.js
+built-ins/WeakSet/prototype/delete/this-not-object-throw-undefined.js
+built-ins/WeakSet/prototype/delete/does-not-have-weaksetdata-internal-slot-weakset-prototype.js
+built-ins/WeakSet/prototype/delete/this-not-object-throw-boolean.js
+built-ins/WeakSet/prototype/delete/returns-false-value-is-not-object.js
+built-ins/WeakSet/prototype/delete/this-not-object-throw-null.js
+built-ins/WeakSet/prototype/delete/does-not-have-weaksetdata-internal-slot-map.js
+built-ins/WeakSet/prototype/delete/not-a-constructor.js
+built-ins/WeakSet/prototype/delete/delete-entry-initial-iterable.js
+built-ins/WeakSet/prototype/delete/length.js
+built-ins/WeakSet/prototype/delete/returns-false-when-delete-is-noop.js
+built-ins/WeakSet/prototype/delete/this-not-object-throw-number.js
+built-ins/WeakSet/prototype/delete/this-not-object-throw-string.js
+built-ins/WeakSet/prototype/delete/delete-entry.js
+built-ins/WeakSet/prototype/delete/does-not-have-weaksetdata-internal-slot-set.js
+built-ins/WeakSet/prototype/delete/this-not-object-throw-symbol.js
+built-ins/WeakSet/prototype/delete/does-not-have-weaksetdata-internal-slot-object.js
+built-ins/WeakSet/prototype/delete/does-not-have-weaksetdata-internal-slot-array.js
+built-ins/WeakSet/prototype/delete/delete.js
+built-ins/WeakSet/iterable-failure.js
+built-ins/WeakSet/no-iterable.js
+built-ins/WeakSet/weakset.js
+built-ins/WeakSet/empty-iterable.js
+built-ins/WeakSet/add-not-callable-throws.js
+built-ins/WeakSet/is-a-constructor.js
+built-ins/WeakSet/iterator-close-after-add-failure.js
+built-ins/WeakSet/prototype-of-weakset.js
+language/expressions/generators/default-proto.js
+language/statements/generators/default-proto.js
+built-ins/Symbol/replace/cross-realm.js
+built-ins/Symbol/split/cross-realm.js
+built-ins/Symbol/species/cross-realm.js
+built-ins/Symbol/unscopables/cross-realm.js
+built-ins/Symbol/match/cross-realm.js
+built-ins/Symbol/for/cross-realm.js
+built-ins/Symbol/toStringTag/cross-realm.js
+built-ins/Symbol/keyFor/cross-realm.js
+built-ins/Symbol/search/cross-realm.js
+built-ins/Symbol/matchAll/cross-realm.js
+built-ins/Symbol/iterator/cross-realm.js
+built-ins/Symbol/toPrimitive/cross-realm.js
+built-ins/Symbol/isConcatSpreadable/cross-realm.js
+built-ins/Symbol/asyncIterator/cross-realm.js
+built-ins/Symbol/hasInstance/cross-realm.js
+built-ins/DataView/custom-proto-if-object-is-used.js
+built-ins/RegExp/prototype/unicode/cross-realm.js
+built-ins/RegExp/prototype/source/cross-realm.js
+built-ins/RegExp/prototype/multiline/cross-realm.js
+built-ins/RegExp/prototype/sticky/cross-realm.js
+built-ins/RegExp/prototype/ignoreCase/cross-realm.js
+built-ins/RegExp/prototype/global/cross-realm.js
+built-ins/RegExp/prototype/dotAll/cross-realm.js
+built-ins/Proxy/deleteProperty/trap-is-not-callable-realm.js
+built-ins/Proxy/has/trap-is-not-callable-realm.js
+built-ins/Proxy/construct/null-handler-realm.js
+built-ins/Proxy/getPrototypeOf/trap-is-not-callable-realm.js
+built-ins/Proxy/defineProperty/null-handler-realm.js
+built-ins/Proxy/defineProperty/targetdesc-undefined-not-configurable-descriptor-realm.js
+built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-realm.js
+built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-not-configurable-target-realm.js
+built-ins/Proxy/defineProperty/trap-is-not-callable-realm.js
+built-ins/Proxy/defineProperty/targetdesc-configurable-desc-not-configurable-realm.js
+built-ins/Proxy/ownKeys/trap-is-not-callable-realm.js
+built-ins/Proxy/ownKeys/return-not-list-object-throws-realm.js
+built-ins/Proxy/setPrototypeOf/trap-is-not-callable-realm.js
+built-ins/Proxy/get-fn-realm.js
+built-ins/Proxy/getOwnPropertyDescriptor/trap-is-not-callable-realm.js
+built-ins/Proxy/getOwnPropertyDescriptor/result-type-is-not-object-nor-undefined-realm.js
+built-ins/Proxy/preventExtensions/trap-is-not-callable-realm.js
+built-ins/Proxy/get/trap-is-not-callable-realm.js
+built-ins/Proxy/set/trap-is-not-callable-realm.js
+built-ins/Proxy/isExtensible/trap-is-not-callable-realm.js
+built-ins/String/prototype/valueOf/non-generic-realm.js
+built-ins/String/prototype/toString/non-generic-realm.js
+built-ins/Array/prototype/map/create-proto-from-ctor-realm-non-array.js
+built-ins/Array/prototype/map/create-proto-from-ctor-realm-array.js
+built-ins/Array/prototype/concat/create-proto-from-ctor-realm-non-array.js
+built-ins/Array/prototype/concat/create-proto-from-ctor-realm-array.js
+built-ins/Array/prototype/filter/create-proto-from-ctor-realm-non-array.js
+built-ins/Array/prototype/filter/create-proto-from-ctor-realm-array.js
+built-ins/Array/prototype/slice/create-proto-from-ctor-realm-non-array.js
+built-ins/Array/prototype/slice/create-proto-from-ctor-realm-array.js
+built-ins/Array/prototype/splice/create-proto-from-ctor-realm-non-array.js
+built-ins/Array/prototype/splice/create-proto-from-ctor-realm-array.js
+built-ins/Function/prototype/apply/this-not-callable-realm.js
+built-ins/Array/length/define-own-prop-length-overflow-realm.js
+built-ins/decodeURI/name.js
+built-ins/decodeURI/not-a-constructor.js
+built-ins/decodeURI/prop-desc.js
+built-ins/decodeURI/S15.1.3.1_A1.1_T1.js
+built-ins/decodeURI/S15.1.3.1_A1.10_T1.js
+built-ins/decodeURI/S15.1.3.1_A1.11_T1.js
+built-ins/decodeURI/S15.1.3.1_A1.11_T2.js
+built-ins/decodeURI/S15.1.3.1_A1.12_T1.js
+built-ins/decodeURI/S15.1.3.1_A1.12_T2.js
+built-ins/decodeURI/S15.1.3.1_A1.12_T3.js
+built-ins/decodeURI/S15.1.3.1_A1.13_T1.js
+built-ins/decodeURI/S15.1.3.1_A1.13_T2.js
+built-ins/decodeURI/S15.1.3.1_A1.14_T1.js
+built-ins/decodeURI/S15.1.3.1_A1.14_T2.js
+built-ins/decodeURI/S15.1.3.1_A1.14_T3.js
+built-ins/decodeURI/S15.1.3.1_A1.14_T4.js
+built-ins/decodeURI/S15.1.3.1_A1.15_T1.js
+built-ins/decodeURI/S15.1.3.1_A1.15_T2.js
+built-ins/decodeURI/S15.1.3.1_A1.15_T3.js
+built-ins/decodeURI/S15.1.3.1_A1.15_T4.js
+built-ins/decodeURI/S15.1.3.1_A1.15_T5.js
+built-ins/decodeURI/S15.1.3.1_A1.15_T6.js
+built-ins/decodeURI/S15.1.3.1_A1.2_T1.js
+built-ins/decodeURI/S15.1.3.1_A1.2_T2.js
+built-ins/decodeURI/S15.1.3.1_A1.3_T1.js
+built-ins/decodeURI/S15.1.3.1_A1.3_T2.js
+built-ins/decodeURI/S15.1.3.1_A1.4_T1.js
+built-ins/decodeURI/S15.1.3.1_A1.5_T1.js
+built-ins/decodeURI/S15.1.3.1_A1.6_T1.js
+built-ins/decodeURI/S15.1.3.1_A1.7_T1.js
+built-ins/decodeURI/S15.1.3.1_A1.8_T1.js
+built-ins/decodeURI/S15.1.3.1_A1.8_T2.js
+built-ins/decodeURI/S15.1.3.1_A1.9_T1.js
+built-ins/decodeURI/S15.1.3.1_A1.9_T2.js
+built-ins/decodeURI/S15.1.3.1_A1.9_T3.js
+built-ins/decodeURI/S15.1.3.1_A2.1_T1.js
+built-ins/decodeURI/S15.1.3.1_A2.2_T1.js
+built-ins/decodeURI/S15.1.3.1_A2.3_T1.js
+built-ins/decodeURI/S15.1.3.1_A2.4_T1.js
+built-ins/decodeURI/S15.1.3.1_A2.5_T1.js
+built-ins/decodeURI/S15.1.3.1_A3_T1.js
+built-ins/decodeURI/S15.1.3.1_A3_T2.js
+built-ins/decodeURI/S15.1.3.1_A3_T3.js
+built-ins/decodeURI/S15.1.3.1_A4_T1.js
+built-ins/decodeURI/S15.1.3.1_A4_T2.js
+built-ins/decodeURI/S15.1.3.1_A4_T3.js
+built-ins/decodeURI/S15.1.3.1_A4_T4.js
+built-ins/decodeURI/S15.1.3.1_A5.1.js
+built-ins/decodeURI/S15.1.3.1_A5.2.js
+built-ins/decodeURI/S15.1.3.1_A5.3.js
+built-ins/decodeURI/S15.1.3.1_A5.4.js
+built-ins/decodeURI/S15.1.3.1_A5.5.js
+built-ins/decodeURI/S15.1.3.1_A5.6.js
+built-ins/decodeURI/S15.1.3.1_A5.7.js
+built-ins/decodeURI/S15.1.3.1_A6_T1.js
+built-ins/encodeURI/name.js
+built-ins/encodeURI/not-a-constructor.js
+built-ins/encodeURI/prop-desc.js
+built-ins/encodeURI/S15.1.3.3_A1.1_T1.js
+built-ins/encodeURI/S15.1.3.3_A1.1_T2.js
+built-ins/encodeURI/S15.1.3.3_A1.2_T1.js
+built-ins/encodeURI/S15.1.3.3_A1.2_T2.js
+built-ins/encodeURI/S15.1.3.3_A1.3_T1.js
+built-ins/encodeURI/S15.1.3.3_A2.1_T1.js
+built-ins/encodeURI/S15.1.3.3_A2.2_T1.js
+built-ins/encodeURI/S15.1.3.3_A2.3_T1.js
+built-ins/encodeURI/S15.1.3.3_A2.4_T1.js
+built-ins/encodeURI/S15.1.3.3_A2.4_T2.js
+built-ins/encodeURI/S15.1.3.3_A2.5_T1.js
+built-ins/encodeURI/S15.1.3.3_A3.1_T1.js
+built-ins/encodeURI/S15.1.3.3_A3.2_T1.js
+built-ins/encodeURI/S15.1.3.3_A3.2_T2.js
+built-ins/encodeURI/S15.1.3.3_A3.2_T3.js
+built-ins/encodeURI/S15.1.3.3_A3.3_T1.js
+built-ins/encodeURI/S15.1.3.3_A4_T1.js
+built-ins/encodeURI/S15.1.3.3_A4_T2.js
+built-ins/encodeURI/S15.1.3.3_A4_T3.js
+built-ins/encodeURI/S15.1.3.3_A4_T4.js
+built-ins/encodeURI/S15.1.3.3_A5.1.js
+built-ins/encodeURI/S15.1.3.3_A5.2.js
+built-ins/encodeURI/S15.1.3.3_A5.3.js
+built-ins/encodeURI/S15.1.3.3_A5.4.js
+built-ins/encodeURI/S15.1.3.3_A5.5.js
+built-ins/encodeURI/S15.1.3.3_A5.6.js
+built-ins/encodeURI/S15.1.3.3_A5.7.js
+built-ins/encodeURI/S15.1.3.3_A6_T1.js
\ No newline at end of file
diff --git a/test262/es5_tests.txt b/test262/es5_tests.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4233b886a124bdfda62369a08d0b234f3a10dd21
--- /dev/null
+++ b/test262/es5_tests.txt
@@ -0,0 +1,8182 @@
+annexB/built-ins/Date/prototype/getYear/B.2.4.js
+annexB/built-ins/Date/prototype/getYear/nan.js
+annexB/built-ins/Date/prototype/getYear/return-value.js
+annexB/built-ins/Date/prototype/getYear/this-not-date.js
+annexB/built-ins/Date/prototype/setYear/B.2.5.js
+annexB/built-ins/Date/prototype/setYear/this-not-date.js
+annexB/built-ins/Date/prototype/setYear/this-time-nan.js
+annexB/built-ins/Date/prototype/setYear/this-time-valid.js
+annexB/built-ins/Date/prototype/setYear/time-clip.js
+annexB/built-ins/Date/prototype/setYear/year-nan.js
+annexB/built-ins/Date/prototype/setYear/year-number-absolute.js
+annexB/built-ins/Date/prototype/setYear/year-number-relative.js
+annexB/built-ins/Date/prototype/setYear/year-to-number-err.js
+annexB/built-ins/Date/prototype/toGMTString/prop-desc.js
+annexB/built-ins/Date/prototype/toGMTString/value.js
+annexB/built-ins/escape/prop-desc.js
+annexB/built-ins/RegExp/RegExp-control-escape-russian-letter.js
+annexB/built-ins/RegExp/RegExp-decimal-escape-class-range.js
+annexB/built-ins/RegExp/RegExp-decimal-escape-not-capturing.js
+annexB/built-ins/RegExp/RegExp-leading-escape.js
+annexB/built-ins/RegExp/RegExp-leading-escape-BMP.js
+annexB/built-ins/RegExp/RegExp-trailing-escape.js
+annexB/built-ins/RegExp/RegExp-trailing-escape-BMP.js
+annexB/built-ins/String/prototype/substr/B.2.3.js
+annexB/built-ins/unescape/prop-desc.js
+annexB/language/statements/try/catch-redeclared-var-statement.js
+annexB/language/statements/try/catch-redeclared-var-statement-captured.js
+built-ins/Array/15.4.5.1-5-1.js
+built-ins/Array/15.4.5.1-5-2.js
+built-ins/Array/15.4.5-1.js
+built-ins/Array/isArray/15.4.3.2-0-1.js
+built-ins/Array/isArray/15.4.3.2-0-2.js
+built-ins/Array/isArray/15.4.3.2-0-3.js
+built-ins/Array/isArray/15.4.3.2-0-5.js
+built-ins/Array/isArray/15.4.3.2-0-6.js
+built-ins/Array/isArray/15.4.3.2-0-7.js
+built-ins/Array/isArray/15.4.3.2-1-1.js
+built-ins/Array/isArray/15.4.3.2-1-10.js
+built-ins/Array/isArray/15.4.3.2-1-11.js
+built-ins/Array/isArray/15.4.3.2-1-12.js
+built-ins/Array/isArray/15.4.3.2-1-13.js
+built-ins/Array/isArray/15.4.3.2-1-15.js
+built-ins/Array/isArray/15.4.3.2-1-2.js
+built-ins/Array/isArray/15.4.3.2-1-3.js
+built-ins/Array/isArray/15.4.3.2-1-4.js
+built-ins/Array/isArray/15.4.3.2-1-5.js
+built-ins/Array/isArray/15.4.3.2-1-6.js
+built-ins/Array/isArray/15.4.3.2-1-7.js
+built-ins/Array/isArray/15.4.3.2-1-8.js
+built-ins/Array/isArray/15.4.3.2-1-9.js
+built-ins/Array/isArray/15.4.3.2-2-1.js
+built-ins/Array/isArray/15.4.3.2-2-2.js
+built-ins/Array/isArray/15.4.3.2-2-3.js
+built-ins/Array/length/15.4.5.1-3.d-1.js
+built-ins/Array/length/15.4.5.1-3.d-2.js
+built-ins/Array/length/15.4.5.1-3.d-3.js
+built-ins/Array/length/S15.4.2.2_A1.1_T1.js
+built-ins/Array/length/S15.4.2.2_A1.1_T2.js
+built-ins/Array/length/S15.4.2.2_A1.1_T3.js
+built-ins/Array/length/S15.4.2.2_A1.2_T1.js
+built-ins/Array/length/S15.4.2.2_A2.1_T1.js
+built-ins/Array/length/S15.4.2.2_A2.2_T1.js
+built-ins/Array/length/S15.4.2.2_A2.2_T2.js
+built-ins/Array/length/S15.4.2.2_A2.2_T3.js
+built-ins/Array/length/S15.4.2.2_A2.3_T1.js
+built-ins/Array/length/S15.4.2.2_A2.3_T2.js
+built-ins/Array/length/S15.4.2.2_A2.3_T3.js
+built-ins/Array/length/S15.4.2.2_A2.3_T4.js
+built-ins/Array/length/S15.4.2.2_A2.3_T5.js
+built-ins/Array/length/S15.4.4_A1.3_T1.js
+built-ins/Array/length/S15.4.5.1_A1.1_T1.js
+built-ins/Array/length/S15.4.5.1_A1.1_T2.js
+built-ins/Array/length/S15.4.5.1_A1.2_T1.js
+built-ins/Array/length/S15.4.5.1_A1.2_T3.js
+built-ins/Array/length/S15.4.5.1_A1.3_T1.js
+built-ins/Array/length/S15.4.5.1_A1.3_T2.js
+built-ins/Array/length/S15.4.5.2_A3_T4.js
+built-ins/Array/property-cast-boolean-primitive.js
+built-ins/Array/property-cast-nan-infinity.js
+built-ins/Array/property-cast-number.js
+built-ins/Array/prototype/concat/S15.4.4.4_A1_T1.js
+built-ins/Array/prototype/concat/S15.4.4.4_A1_T2.js
+built-ins/Array/prototype/concat/S15.4.4.4_A1_T3.js
+built-ins/Array/prototype/concat/S15.4.4.4_A1_T4.js
+built-ins/Array/prototype/concat/S15.4.4.4_A2_T1.js
+built-ins/Array/prototype/concat/S15.4.4.4_A2_T2.js
+built-ins/Array/prototype/concat/S15.4.4.4_A3_T1.js
+built-ins/Array/prototype/concat/S15.4.4.4_A3_T2.js
+built-ins/Array/prototype/concat/S15.4.4.4_A3_T3.js
+built-ins/Array/prototype/every/15.4.4.16-3-8.js
+built-ins/Array/prototype/every/15.4.4.16-3-9.js
+built-ins/Array/prototype/every/15.4.4.16-4-1.js
+built-ins/Array/prototype/every/15.4.4.16-4-10.js
+built-ins/Array/prototype/every/15.4.4.16-4-11.js
+built-ins/Array/prototype/every/15.4.4.16-4-12.js
+built-ins/Array/prototype/every/15.4.4.16-4-15.js
+built-ins/Array/prototype/every/15.4.4.16-4-3.js
+built-ins/Array/prototype/every/15.4.4.16-4-4.js
+built-ins/Array/prototype/every/15.4.4.16-4-5.js
+built-ins/Array/prototype/every/15.4.4.16-4-6.js
+built-ins/Array/prototype/every/15.4.4.16-4-7.js
+built-ins/Array/prototype/every/15.4.4.16-4-8.js
+built-ins/Array/prototype/every/15.4.4.16-4-9.js
+built-ins/Array/prototype/every/15.4.4.16-5-1.js
+built-ins/Array/prototype/every/15.4.4.16-5-10.js
+built-ins/Array/prototype/every/15.4.4.16-5-11.js
+built-ins/Array/prototype/every/15.4.4.16-5-12.js
+built-ins/Array/prototype/every/15.4.4.16-5-13.js
+built-ins/Array/prototype/every/15.4.4.16-5-14.js
+built-ins/Array/prototype/every/15.4.4.16-5-15.js
+built-ins/Array/prototype/every/15.4.4.16-5-16.js
+built-ins/Array/prototype/every/15.4.4.16-5-17.js
+built-ins/Array/prototype/every/15.4.4.16-5-18.js
+built-ins/Array/prototype/every/15.4.4.16-5-19.js
+built-ins/Array/prototype/every/15.4.4.16-5-1-s.js
+built-ins/Array/prototype/every/15.4.4.16-5-2.js
+built-ins/Array/prototype/every/15.4.4.16-5-21.js
+built-ins/Array/prototype/every/15.4.4.16-5-22.js
+built-ins/Array/prototype/every/15.4.4.16-5-23.js
+built-ins/Array/prototype/every/15.4.4.16-5-24.js
+built-ins/Array/prototype/every/15.4.4.16-5-3.js
+built-ins/Array/prototype/filter/15.4.4.20-5-4.js
+built-ins/Array/prototype/filter/15.4.4.20-5-5.js
+built-ins/Array/prototype/filter/15.4.4.20-5-6.js
+built-ins/Array/prototype/filter/15.4.4.20-5-7.js
+built-ins/Array/prototype/filter/15.4.4.20-5-9.js
+built-ins/Array/prototype/filter/15.4.4.20-6-1.js
+built-ins/Array/prototype/filter/15.4.4.20-6-2.js
+built-ins/Array/prototype/filter/15.4.4.20-6-3.js
+built-ins/Array/prototype/filter/15.4.4.20-6-4.js
+built-ins/Array/prototype/filter/15.4.4.20-6-5.js
+built-ins/Array/prototype/filter/15.4.4.20-6-6.js
+built-ins/Array/prototype/filter/15.4.4.20-6-7.js
+built-ins/Array/prototype/filter/15.4.4.20-6-8.js
+built-ins/Array/prototype/filter/15.4.4.20-9-1.js
+built-ins/Array/prototype/filter/15.4.4.20-9-2.js
+built-ins/Array/prototype/filter/15.4.4.20-9-3.js
+built-ins/Array/prototype/filter/15.4.4.20-9-4.js
+built-ins/Array/prototype/filter/15.4.4.20-9-5.js
+built-ins/Array/prototype/filter/15.4.4.20-9-6.js
+built-ins/Array/prototype/filter/15.4.4.20-9-7.js
+built-ins/Array/prototype/filter/15.4.4.20-9-8.js
+built-ins/Array/prototype/filter/15.4.4.20-9-9.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-1.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-10.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-11.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-12.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-13.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-14.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-15.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-16.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-2.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-3.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-4.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-5.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-6.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-7.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-8.js
+built-ins/Array/prototype/filter/15.4.4.20-9-b-9.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-1.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-10.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-11.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-12.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-13.js
+built-ins/Array/prototype/filter/15.4.4.20-9-c-i-14.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-11.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-12.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-13.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-14.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-15.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-16.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-17.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-18.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-19.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-2.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-20.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-21.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-22.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-23.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-24.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-25.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-3.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-4.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-5.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-6.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-7.js
+built-ins/Array/prototype/forEach/15.4.4.18-3-9.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-1.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-10.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-11.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-12.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-15.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-2.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-3.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-4.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-5.js
+built-ins/Array/prototype/forEach/15.4.4.18-4-6.js
+built-ins/Array/prototype/toLocaleString/S15.4.4.3_A1_T1.js
+built-ins/Array/prototype/toLocaleString/S15.4.4.3_A3_T1.js
+built-ins/Array/prototype/toLocaleString/S15.4.4.3_A4.7.js
+built-ins/Array/prototype/toString/S15.4.4.2_A1_T1.js
+built-ins/Array/prototype/toString/S15.4.4.2_A1_T2.js
+built-ins/Array/prototype/toString/S15.4.4.2_A1_T3.js
+built-ins/Array/prototype/toString/S15.4.4.2_A1_T4.js
+built-ins/Array/prototype/toString/S15.4.4.2_A3_T1.js
+built-ins/Array/prototype/toString/S15.4.4.2_A4.7.js
+built-ins/Array/S15.4.1_A1.1_T1.js
+built-ins/Array/S15.4.1_A1.1_T2.js
+built-ins/Array/S15.4.1_A1.1_T3.js
+built-ins/Array/S15.4.1_A1.2_T1.js
+built-ins/Array/S15.4.1_A1.3_T1.js
+built-ins/Array/S15.4.1_A2.1_T1.js
+built-ins/Array/S15.4.1_A2.2_T1.js
+built-ins/Array/S15.4.1_A3.1_T1.js
+built-ins/Array/S15.4.2.1_A1.1_T1.js
+built-ins/Array/S15.4.2.1_A1.1_T2.js
+built-ins/Array/S15.4.2.1_A1.1_T3.js
+built-ins/Array/S15.4.2.1_A1.2_T1.js
+built-ins/Array/S15.4.2.1_A1.3_T1.js
+built-ins/Array/S15.4.2.1_A2.1_T1.js
+built-ins/Array/S15.4.2.1_A2.2_T1.js
+built-ins/Array/S15.4.3_A1.1_T1.js
+built-ins/Array/S15.4.3_A1.1_T2.js
+built-ins/Array/S15.4.3_A1.1_T3.js
+built-ins/Array/S15.4.5.1_A1.2_T2.js
+built-ins/Array/S15.4.5.1_A2.1_T1.js
+built-ins/Array/S15.4.5.1_A2.2_T1.js
+built-ins/Array/S15.4.5.1_A2.3_T1.js
+built-ins/Array/S15.4.5.2_A1_T1.js
+built-ins/Array/S15.4.5.2_A1_T2.js
+built-ins/Array/S15.4.5.2_A2_T1.js
+built-ins/Array/S15.4.5.2_A3_T1.js
+built-ins/Array/S15.4.5.2_A3_T2.js
+built-ins/Array/S15.4.5.2_A3_T3.js
+built-ins/Array/S15.4_A1.1_T10.js
+built-ins/Array/S15.4_A1.1_T4.js
+built-ins/Array/S15.4_A1.1_T5.js
+built-ins/Array/S15.4_A1.1_T6.js
+built-ins/Array/S15.4_A1.1_T7.js
+built-ins/Array/S15.4_A1.1_T8.js
+built-ins/Array/S15.4_A1.1_T9.js
+built-ins/Boolean/prototype/toString/S15.6.4.2_A1_T1.js
+built-ins/Boolean/prototype/toString/S15.6.4.2_A1_T2.js
+built-ins/Boolean/prototype/toString/S15.6.4.2_A2_T1.js
+built-ins/Boolean/prototype/toString/S15.6.4.2_A2_T2.js
+built-ins/Boolean/prototype/toString/S15.6.4.2_A2_T3.js
+built-ins/Boolean/prototype/toString/S15.6.4.2_A2_T4.js
+built-ins/Boolean/prototype/toString/S15.6.4.2_A2_T5.js
+built-ins/Date/prototype/getDay/S15.9.5.16_A1_T1.js
+built-ins/Date/prototype/getDay/S15.9.5.16_A1_T2.js
+built-ins/Date/prototype/getDay/S15.9.5.16_A1_T3.js
+built-ins/Date/prototype/getDay/S15.9.5.16_A2_T1.js
+built-ins/Date/prototype/getDay/S15.9.5.16_A3_T1.js
+built-ins/Date/prototype/getDay/S15.9.5.16_A3_T2.js
+built-ins/Date/prototype/getDay/S15.9.5.16_A3_T3.js
+built-ins/Date/prototype/getFullYear/S15.9.5.10_A1_T1.js
+built-ins/Date/prototype/getFullYear/S15.9.5.10_A1_T2.js
+built-ins/Date/prototype/getFullYear/S15.9.5.10_A1_T3.js
+built-ins/Date/prototype/getFullYear/S15.9.5.10_A2_T1.js
+built-ins/Date/prototype/getFullYear/S15.9.5.10_A3_T1.js
+built-ins/Date/prototype/getFullYear/S15.9.5.10_A3_T2.js
+built-ins/Date/prototype/getFullYear/S15.9.5.10_A3_T3.js
+built-ins/Date/prototype/getHours/S15.9.5.18_A1_T1.js
+built-ins/Date/prototype/getHours/S15.9.5.18_A1_T2.js
+built-ins/Date/prototype/getHours/S15.9.5.18_A1_T3.js
+built-ins/Date/prototype/getHours/S15.9.5.18_A2_T1.js
+built-ins/Date/prototype/getHours/S15.9.5.18_A3_T1.js
+built-ins/Date/prototype/getHours/S15.9.5.18_A3_T2.js
+built-ins/Date/prototype/getHours/S15.9.5.18_A3_T3.js
+built-ins/Date/prototype/getMilliseconds/S15.9.5.24_A1_T1.js
+built-ins/Date/prototype/getMilliseconds/S15.9.5.24_A1_T2.js
+built-ins/Date/prototype/getMilliseconds/S15.9.5.24_A1_T3.js
+built-ins/Date/prototype/getMilliseconds/S15.9.5.24_A2_T1.js
+built-ins/Date/prototype/getMilliseconds/S15.9.5.24_A3_T1.js
+built-ins/Date/prototype/getMilliseconds/S15.9.5.24_A3_T2.js
+built-ins/Date/prototype/getMilliseconds/S15.9.5.24_A3_T3.js
+built-ins/Date/prototype/getMinutes/S15.9.5.20_A1_T1.js
+built-ins/Date/prototype/getMinutes/S15.9.5.20_A1_T2.js
+built-ins/Date/prototype/getMinutes/S15.9.5.20_A1_T3.js
+built-ins/Date/prototype/getMinutes/S15.9.5.20_A2_T1.js
+built-ins/Date/prototype/getMinutes/S15.9.5.20_A3_T1.js
+built-ins/Date/prototype/getMinutes/S15.9.5.20_A3_T2.js
+built-ins/Date/prototype/getMinutes/S15.9.5.20_A3_T3.js
+built-ins/Date/prototype/valueOf/S9.4_A3_T1.js
+built-ins/Date/prototype/valueOf/S9.4_A3_T2.js
+built-ins/Date/S15.9.2.1_A1.js
+built-ins/Date/S15.9.2.1_A2.js
+built-ins/Date/UTC/S15.9.4.3_A1_T1.js
+built-ins/Date/UTC/S15.9.4.3_A1_T2.js
+built-ins/Date/UTC/S15.9.4.3_A1_T3.js
+built-ins/Date/UTC/S15.9.4.3_A2_T1.js
+built-ins/Date/UTC/S15.9.4.3_A3_T1.js
+built-ins/Date/UTC/S15.9.4.3_A3_T2.js
+built-ins/Date/UTC/S15.9.4.3_A3_T3.js
+built-ins/Error/length.js
+built-ins/Error/prototype/constructor/S15.11.4.1_A1_T1.js
+built-ins/Error/prototype/constructor/S15.11.4.1_A1_T2.js
+built-ins/Error/prototype/message/15.11.4.3-1.js
+built-ins/Error/prototype/message/S15.11.4.3_A1.js
+built-ins/Error/prototype/message/S15.11.4.3_A2.js
+built-ins/Error/prototype/name/15.11.4.2-1.js
+built-ins/Error/prototype/name/S15.11.4.2_A1.js
+built-ins/Error/prototype/name/S15.11.4.2_A2.js
+built-ins/Error/prototype/S15.11.3.1_A1_T1.js
+built-ins/Error/prototype/S15.11.3.1_A2_T1.js
+built-ins/Error/prototype/S15.11.3.1_A3_T1.js
+built-ins/Error/prototype/S15.11.3.1_A4_T1.js
+built-ins/Error/prototype/S15.11.4_A1.js
+built-ins/Error/prototype/S15.11.4_A2.js
+built-ins/Error/prototype/S15.11.4_A3.js
+built-ins/Error/prototype/S15.11.4_A4.js
+built-ins/Error/prototype/toString/15.11.4.4-10-1.js
+built-ins/Error/prototype/toString/15.11.4.4-6-1.js
+built-ins/Error/prototype/toString/15.11.4.4-6-2.js
+built-ins/Error/prototype/toString/15.11.4.4-8-1.js
+built-ins/Error/prototype/toString/15.11.4.4-8-2.js
+built-ins/Error/prototype/toString/15.11.4.4-9-1.js
+built-ins/Error/prototype/toString/S15.11.4.4_A1.js
+built-ins/Error/prototype/toString/S15.11.4.4_A2.js
+built-ins/Function/15.3.2.1-10-6gs.js
+built-ins/Function/15.3.2.1-11-1.js
+built-ins/Function/15.3.2.1-11-1-s.js
+built-ins/Function/15.3.2.1-11-2-s.js
+built-ins/Function/15.3.2.1-11-3.js
+built-ins/Function/15.3.2.1-11-3-s.js
+built-ins/Function/15.3.2.1-11-4-s.js
+built-ins/Function/15.3.2.1-11-5.js
+built-ins/Function/15.3.2.1-11-5-s.js
+built-ins/Function/15.3.2.1-11-6-s.js
+built-ins/Function/15.3.2.1-11-7-s.js
+built-ins/Function/15.3.2.1-11-8-s.js
+built-ins/Function/15.3.2.1-11-9-s.js
+built-ins/Function/15.3.5.4_2-10gs.js
+built-ins/Function/15.3.5.4_2-11gs.js
+built-ins/Function/15.3.5.4_2-12gs.js
+built-ins/Function/15.3.5.4_2-13gs.js
+built-ins/Function/15.3.5.4_2-14gs.js
+built-ins/Function/15.3.5.4_2-15gs.js
+built-ins/Function/15.3.5.4_2-16gs.js
+built-ins/Function/15.3.5.4_2-17gs.js
+built-ins/Function/15.3.5.4_2-18gs.js
+built-ins/Function/15.3.5.4_2-19gs.js
+built-ins/Function/15.3.5.4_2-1gs.js
+built-ins/Function/15.3.5.4_2-20gs.js
+built-ins/Function/15.3.5.4_2-21gs.js
+built-ins/Function/15.3.5.4_2-22gs.js
+built-ins/Function/15.3.5.4_2-23gs.js
+built-ins/Function/15.3.5.4_2-24gs.js
+built-ins/Function/15.3.5.4_2-25gs.js
+built-ins/Function/15.3.5.4_2-26gs.js
+built-ins/Function/15.3.5.4_2-27gs.js
+built-ins/Function/15.3.5.4_2-28gs.js
+built-ins/Function/15.3.5.4_2-29gs.js
+built-ins/Function/15.3.5.4_2-2gs.js
+built-ins/Function/15.3.5.4_2-30gs.js
+built-ins/Function/15.3.5.4_2-31gs.js
+built-ins/Function/15.3.5.4_2-32gs.js
+built-ins/Function/15.3.5.4_2-33gs.js
+built-ins/Function/15.3.5.4_2-34gs.js
+built-ins/Function/15.3.5.4_2-35gs.js
+built-ins/Function/15.3.5.4_2-36gs.js
+built-ins/Function/15.3.5.4_2-37gs.js
+built-ins/Function/15.3.5.4_2-38gs.js
+built-ins/Function/15.3.5.4_2-39gs.js
+built-ins/Function/15.3.5.4_2-3gs.js
+built-ins/Function/15.3.5.4_2-40gs.js
+built-ins/Function/15.3.5.4_2-41gs.js
+built-ins/Function/15.3.5.4_2-42gs.js
+built-ins/Function/15.3.5.4_2-43gs.js
+built-ins/Function/15.3.5.4_2-44gs.js
+built-ins/Function/15.3.5.4_2-45gs.js
+built-ins/Function/15.3.5.4_2-46gs.js
+built-ins/Function/15.3.5.4_2-47gs.js
+built-ins/Function/15.3.5.4_2-48gs.js
+built-ins/Function/15.3.5.4_2-49gs.js
+built-ins/Function/15.3.5.4_2-4gs.js
+built-ins/Function/15.3.5.4_2-50gs.js
+built-ins/Function/15.3.5.4_2-51gs.js
+built-ins/Function/15.3.5.4_2-52gs.js
+built-ins/Function/15.3.5.4_2-53gs.js
+built-ins/Function/15.3.5.4_2-54gs.js
+built-ins/Function/15.3.5.4_2-55gs.js
+built-ins/Function/15.3.5.4_2-56gs.js
+built-ins/Function/15.3.5.4_2-57gs.js
+built-ins/Function/15.3.5.4_2-58gs.js
+built-ins/Function/15.3.5.4_2-59gs.js
+built-ins/Function/15.3.5.4_2-5gs.js
+built-ins/Function/15.3.5.4_2-60gs.js
+built-ins/Function/15.3.5.4_2-61gs.js
+built-ins/Function/15.3.5.4_2-62gs.js
+built-ins/Function/15.3.5.4_2-63gs.js
+built-ins/Function/15.3.5.4_2-64gs.js
+built-ins/Function/15.3.5.4_2-65gs.js
+built-ins/Function/15.3.5.4_2-66gs.js
+built-ins/Function/15.3.5.4_2-67gs.js
+built-ins/Function/15.3.5.4_2-68gs.js
+built-ins/Function/15.3.5.4_2-69gs.js
+built-ins/Function/15.3.5.4_2-6gs.js
+built-ins/Function/15.3.5.4_2-70gs.js
+built-ins/Function/15.3.5.4_2-71gs.js
+built-ins/Function/15.3.5.4_2-72gs.js
+built-ins/Function/15.3.5.4_2-73gs.js
+built-ins/Function/15.3.5.4_2-74gs.js
+built-ins/Function/15.3.5.4_2-75gs.js
+built-ins/Function/15.3.5.4_2-76gs.js
+built-ins/Function/15.3.5.4_2-77gs.js
+built-ins/Function/15.3.5.4_2-78gs.js
+built-ins/Function/15.3.5.4_2-79gs.js
+built-ins/Function/15.3.5.4_2-7gs.js
+built-ins/Function/15.3.5.4_2-80gs.js
+built-ins/Function/15.3.5.4_2-81gs.js
+built-ins/Function/15.3.5.4_2-82gs.js
+built-ins/Function/15.3.5.4_2-83gs.js
+built-ins/Function/15.3.5.4_2-84gs.js
+built-ins/Function/15.3.5.4_2-85gs.js
+built-ins/Function/15.3.5.4_2-86gs.js
+built-ins/Function/15.3.5.4_2-87gs.js
+built-ins/Function/15.3.5.4_2-88gs.js
+built-ins/Function/15.3.5.4_2-89gs.js
+built-ins/Function/15.3.5.4_2-8gs.js
+built-ins/Function/15.3.5.4_2-90gs.js
+built-ins/Function/15.3.5.4_2-91gs.js
+built-ins/Function/15.3.5.4_2-92gs.js
+built-ins/Function/15.3.5.4_2-93gs.js
+built-ins/Function/15.3.5.4_2-94gs.js
+built-ins/Function/15.3.5.4_2-95gs.js
+built-ins/Function/15.3.5.4_2-96gs.js
+built-ins/Function/15.3.5.4_2-97gs.js
+built-ins/Function/15.3.5.4_2-9gs.js
+built-ins/Function/15.3.5-1gs.js
+built-ins/Function/15.3.5-2gs.js
+built-ins/Function/length/15.3.3.2-1.js
+built-ins/Function/length/S15.3.5.1_A1_T1.js
+built-ins/Function/length/S15.3.5.1_A1_T2.js
+built-ins/Function/length/S15.3.5.1_A1_T3.js
+built-ins/Function/length/S15.3.5.1_A2_T1.js
+built-ins/Function/length/S15.3.5.1_A2_T2.js
+built-ins/Function/length/S15.3.5.1_A2_T3.js
+built-ins/Function/length/S15.3.5.1_A3_T1.js
+built-ins/Function/length/S15.3.5.1_A3_T2.js
+built-ins/Function/length/S15.3.5.1_A3_T3.js
+built-ins/Function/length/S15.3.5.1_A4_T1.js
+built-ins/Function/length/S15.3.5.1_A4_T2.js
+built-ins/Function/length/S15.3.5.1_A4_T3.js
+built-ins/Function/prototype/apply/15.3.4.3-1-s.js
+built-ins/Function/prototype/apply/15.3.4.3-2-s.js
+built-ins/Function/prototype/apply/15.3.4.3-3-s.js
+built-ins/Function/prototype/apply/S15.3.4.3_A1_T1.js
+built-ins/Function/prototype/apply/S15.3.4.3_A1_T2.js
+built-ins/Function/prototype/apply/S15.3.4.3_A12.js
+built-ins/Function/prototype/apply/S15.3.4.3_A3_T1.js
+built-ins/Function/prototype/apply/S15.3.4.3_A3_T10.js
+built-ins/Function/prototype/apply/S15.3.4.3_A3_T2.js
+built-ins/Function/prototype/apply/S15.3.4.3_A3_T3.js
+built-ins/Function/prototype/apply/S15.3.4.3_A3_T4.js
+built-ins/Function/prototype/apply/S15.3.4.3_A3_T5.js
+built-ins/Function/prototype/apply/S15.3.4.3_A3_T6.js
+built-ins/Function/prototype/apply/S15.3.4.3_A3_T7.js
+built-ins/Function/prototype/apply/S15.3.4.3_A3_T8.js
+built-ins/Function/prototype/apply/S15.3.4.3_A3_T9.js
+built-ins/Function/prototype/apply/S15.3.4.3_A5_T1.js
+built-ins/Function/prototype/apply/S15.3.4.3_A5_T2.js
+built-ins/Function/prototype/apply/S15.3.4.3_A5_T3.js
+built-ins/Function/prototype/apply/S15.3.4.3_A5_T4.js
+built-ins/Function/prototype/apply/S15.3.4.3_A5_T5.js
+built-ins/Function/prototype/apply/S15.3.4.3_A5_T6.js
+built-ins/Function/prototype/apply/S15.3.4.3_A5_T7.js
+built-ins/Function/prototype/apply/S15.3.4.3_A5_T8.js
+built-ins/Function/prototype/apply/S15.3.4.3_A7_T1.js
+built-ins/Function/prototype/apply/S15.3.4.3_A7_T10.js
+built-ins/Function/prototype/apply/S15.3.4.3_A7_T2.js
+built-ins/Function/prototype/apply/S15.3.4.3_A7_T3.js
+built-ins/Function/prototype/apply/S15.3.4.3_A7_T4.js
+built-ins/Function/prototype/apply/S15.3.4.3_A7_T5.js
+built-ins/Function/prototype/apply/S15.3.4.3_A7_T6.js
+built-ins/Function/prototype/apply/S15.3.4.3_A7_T7.js
+built-ins/Function/prototype/apply/S15.3.4.3_A7_T8.js
+built-ins/Function/prototype/apply/S15.3.4.3_A7_T9.js
+built-ins/Function/prototype/apply/S15.3.4.3_A8_T1.js
+built-ins/Function/prototype/apply/S15.3.4.3_A8_T2.js
+built-ins/Function/prototype/apply/S15.3.4.3_A8_T3.js
+built-ins/Function/prototype/apply/S15.3.4.3_A8_T4.js
+built-ins/Function/prototype/apply/S15.3.4.3_A8_T5.js
+built-ins/Function/prototype/apply/S15.3.4.3_A8_T6.js
+built-ins/Function/prototype/bind/15.3.4.5.1-4-1.js
+built-ins/Function/prototype/bind/15.3.4.5.1-4-10.js
+built-ins/Function/prototype/bind/15.3.4.5.1-4-11.js
+built-ins/Function/prototype/bind/15.3.4.5.1-4-12.js
+built-ins/Function/prototype/bind/15.3.4.5.1-4-13.js
+built-ins/Function/prototype/bind/15.3.4.5.1-4-14.js
+built-ins/Function/prototype/bind/15.3.4.5.1-4-15.js
+built-ins/Function/prototype/bind/15.3.4.5.1-4-2.js
+built-ins/Function/prototype/bind/15.3.4.5.1-4-3.js
+built-ins/Function/prototype/bind/15.3.4.5.1-4-4.js
+built-ins/Function/prototype/bind/15.3.4.5.1-4-5.js
+built-ins/Function/prototype/bind/15.3.4.5.1-4-6.js
+built-ins/Function/prototype/bind/15.3.4.5.1-4-7.js
+built-ins/Function/prototype/bind/15.3.4.5.1-4-8.js
+built-ins/Function/prototype/bind/15.3.4.5.1-4-9.js
+built-ins/Function/prototype/bind/15.3.4.5.2-4-1.js
+built-ins/Function/prototype/bind/15.3.4.5.2-4-10.js
+built-ins/Function/prototype/bind/15.3.4.5.2-4-11.js
+built-ins/Function/prototype/bind/15.3.4.5.2-4-12.js
+built-ins/Function/prototype/bind/15.3.4.5.2-4-13.js
+built-ins/Function/prototype/bind/15.3.4.5.2-4-14.js
+built-ins/Function/prototype/bind/15.3.4.5.2-4-2.js
+built-ins/Function/prototype/bind/15.3.4.5.2-4-3.js
+built-ins/Function/prototype/bind/15.3.4.5.2-4-4.js
+built-ins/Function/prototype/bind/15.3.4.5.2-4-5.js
+built-ins/Function/prototype/bind/15.3.4.5.2-4-6.js
+built-ins/Function/prototype/bind/15.3.4.5.2-4-7.js
+built-ins/Function/prototype/bind/15.3.4.5.2-4-8.js
+built-ins/Function/prototype/bind/15.3.4.5.2-4-9.js
+built-ins/Function/prototype/bind/15.3.4.5-0-1.js
+built-ins/Function/prototype/bind/15.3.4.5-10-1.js
+built-ins/Function/prototype/bind/15.3.4.5-11-1.js
+built-ins/Function/prototype/bind/15.3.4.5-16-1.js
+built-ins/Function/prototype/bind/15.3.4.5-16-2.js
+built-ins/Function/prototype/bind/15.3.4.5-20-2.js
+built-ins/Function/prototype/bind/15.3.4.5-20-3.js
+built-ins/Function/prototype/bind/15.3.4.5-2-1.js
+built-ins/Function/prototype/bind/15.3.4.5-2-10.js
+built-ins/Function/prototype/bind/15.3.4.5-2-11.js
+built-ins/Function/prototype/bind/15.3.4.5-21-2.js
+built-ins/Function/prototype/bind/15.3.4.5-2-12.js
+built-ins/Function/prototype/bind/15.3.4.5-21-3.js
+built-ins/Function/prototype/bind/15.3.4.5-2-13.js
+built-ins/Function/prototype/bind/15.3.4.5-2-14.js
+built-ins/Function/prototype/bind/15.3.4.5-2-15.js
+built-ins/Function/prototype/bind/15.3.4.5-2-16.js
+built-ins/Function/prototype/bind/15.3.4.5-2-2.js
+built-ins/Function/prototype/bind/15.3.4.5-2-3.js
+built-ins/Function/prototype/bind/15.3.4.5-2-4.js
+built-ins/Function/prototype/bind/15.3.4.5-2-5.js
+built-ins/Function/prototype/bind/15.3.4.5-2-6.js
+built-ins/Function/prototype/bind/15.3.4.5-2-7.js
+built-ins/Function/prototype/bind/15.3.4.5-2-8.js
+built-ins/Function/prototype/bind/15.3.4.5-2-9.js
+built-ins/Function/prototype/bind/15.3.4.5-3-1.js
+built-ins/Function/prototype/bind/15.3.4.5-6-1.js
+built-ins/Function/prototype/bind/15.3.4.5-6-10.js
+built-ins/Function/prototype/bind/15.3.4.5-6-11.js
+built-ins/Function/prototype/bind/15.3.4.5-6-12.js
+built-ins/Function/prototype/bind/15.3.4.5-6-2.js
+built-ins/Function/prototype/bind/15.3.4.5-6-3.js
+built-ins/Function/prototype/bind/15.3.4.5-6-4.js
+built-ins/Function/prototype/bind/15.3.4.5-6-5.js
+built-ins/Function/prototype/bind/15.3.4.5-6-6.js
+built-ins/Function/prototype/bind/15.3.4.5-6-7.js
+built-ins/Function/prototype/bind/15.3.4.5-6-8.js
+built-ins/Function/prototype/bind/15.3.4.5-6-9.js
+built-ins/Function/prototype/bind/15.3.4.5-8-1.js
+built-ins/Function/prototype/bind/15.3.4.5-8-2.js
+built-ins/Function/prototype/bind/15.3.4.5-9-1.js
+built-ins/Function/prototype/bind/15.3.4.5-9-2.js
+built-ins/Function/prototype/bind/S15.3.4.5_A1.js
+built-ins/Function/prototype/bind/S15.3.4.5_A13.js
+built-ins/Function/prototype/bind/S15.3.4.5_A14.js
+built-ins/Function/prototype/bind/S15.3.4.5_A15.js
+built-ins/Function/prototype/bind/S15.3.4.5_A16.js
+built-ins/Function/prototype/bind/S15.3.4.5_A2.js
+built-ins/Function/prototype/bind/S15.3.4.5_A3.js
+built-ins/Function/prototype/bind/S15.3.4.5_A4.js
+built-ins/Function/prototype/bind/S15.3.4.5_A5.js
+built-ins/Function/prototype/call/15.3.4.4-1-s.js
+built-ins/Function/prototype/call/15.3.4.4-2-s.js
+built-ins/Function/prototype/call/15.3.4.4-3-s.js
+built-ins/Function/prototype/call/S15.3.4.4_A1_T1.js
+built-ins/Function/prototype/call/S15.3.4.4_A1_T2.js
+built-ins/Function/prototype/call/S15.3.4.4_A10.js
+built-ins/Function/prototype/call/S15.3.4.4_A11.js
+built-ins/Function/prototype/call/S15.3.4.4_A12.js
+built-ins/Function/prototype/call/S15.3.4.4_A13.js
+built-ins/Function/prototype/call/S15.3.4.4_A14.js
+built-ins/Function/prototype/call/S15.3.4.4_A15.js
+built-ins/Function/prototype/call/S15.3.4.4_A16.js
+built-ins/Function/prototype/call/S15.3.4.4_A2_T1.js
+built-ins/Function/prototype/call/S15.3.4.4_A2_T2.js
+built-ins/Function/prototype/call/S15.3.4.4_A3_T1.js
+built-ins/Function/prototype/call/S15.3.4.4_A3_T10.js
+built-ins/Function/prototype/call/S15.3.4.4_A3_T2.js
+built-ins/Function/prototype/call/S15.3.4.4_A3_T3.js
+built-ins/Function/prototype/call/S15.3.4.4_A3_T4.js
+built-ins/Function/prototype/call/S15.3.4.4_A3_T5.js
+built-ins/Function/prototype/call/S15.3.4.4_A3_T6.js
+built-ins/Function/prototype/call/S15.3.4.4_A3_T7.js
+built-ins/Function/prototype/call/S15.3.4.4_A3_T8.js
+built-ins/Function/prototype/call/S15.3.4.4_A3_T9.js
+built-ins/Function/prototype/call/S15.3.4.4_A5_T1.js
+built-ins/Function/prototype/call/S15.3.4.4_A5_T2.js
+built-ins/Function/prototype/call/S15.3.4.4_A5_T3.js
+built-ins/Function/prototype/call/S15.3.4.4_A5_T4.js
+built-ins/Function/prototype/call/S15.3.4.4_A5_T5.js
+built-ins/Function/prototype/call/S15.3.4.4_A5_T6.js
+built-ins/Function/prototype/call/S15.3.4.4_A5_T7.js
+built-ins/Function/prototype/call/S15.3.4.4_A5_T8.js
+built-ins/Function/prototype/call/S15.3.4.4_A6_T1.js
+built-ins/Function/prototype/call/S15.3.4.4_A6_T10.js
+built-ins/Function/prototype/call/S15.3.4.4_A6_T2.js
+built-ins/Function/prototype/call/S15.3.4.4_A6_T3.js
+built-ins/Function/prototype/call/S15.3.4.4_A6_T4.js
+built-ins/Function/prototype/call/S15.3.4.4_A6_T5.js
+built-ins/Function/prototype/call/S15.3.4.4_A6_T6.js
+built-ins/Function/prototype/call/S15.3.4.4_A6_T7.js
+built-ins/Function/prototype/call/S15.3.4.4_A6_T8.js
+built-ins/Function/prototype/call/S15.3.4.4_A6_T9.js
+built-ins/Function/prototype/call/S15.3.4.4_A7_T1.js
+built-ins/Function/prototype/call/S15.3.4.4_A7_T2.js
+built-ins/Function/prototype/call/S15.3.4.4_A7_T3.js
+built-ins/Function/prototype/call/S15.3.4.4_A7_T4.js
+built-ins/Function/prototype/call/S15.3.4.4_A7_T5.js
+built-ins/Function/prototype/call/S15.3.4.4_A7_T6.js
+built-ins/Function/prototype/call/S15.3.4.4_A9.js
+built-ins/Function/prototype/constructor/S15.3.4.1_A1_T1.js
+built-ins/Function/prototype/S15.3.3.1_A1.js
+built-ins/Function/prototype/S15.3.3.1_A2.js
+built-ins/Function/prototype/S15.3.3.1_A3.js
+built-ins/Function/prototype/S15.3.3.1_A4.js
+built-ins/Function/prototype/S15.3.4_A1.js
+built-ins/Function/prototype/S15.3.4_A2_T1.js
+built-ins/Function/prototype/S15.3.4_A2_T2.js
+built-ins/Function/prototype/S15.3.4_A2_T3.js
+built-ins/Function/prototype/S15.3.4_A3_T1.js
+built-ins/Function/prototype/S15.3.4_A3_T2.js
+built-ins/Function/prototype/S15.3.4_A4.js
+built-ins/Function/prototype/S15.3.4_A5.js
+built-ins/Function/prototype/S15.3.5.2_A1_T1.js
+built-ins/Function/prototype/S15.3.5.2_A1_T2.js
+built-ins/Function/prototype/toString/S15.3.4.2_A10.js
+built-ins/Function/prototype/toString/S15.3.4.2_A11.js
+built-ins/Function/prototype/toString/S15.3.4.2_A12.js
+built-ins/Function/prototype/toString/S15.3.4.2_A13.js
+built-ins/Function/prototype/toString/S15.3.4.2_A14.js
+built-ins/Function/prototype/toString/S15.3.4.2_A16.js
+built-ins/Function/prototype/toString/S15.3.4.2_A6.js
+built-ins/Function/prototype/toString/S15.3.4.2_A7.js
+built-ins/Function/prototype/toString/S15.3.4.2_A8.js
+built-ins/Function/prototype/toString/S15.3.4.2_A9.js
+built-ins/Function/S10.1.1_A1_T3.js
+built-ins/Function/S15.3.1_A1_T1.js
+built-ins/Function/S15.3.2.1_A1_T1.js
+built-ins/Function/S15.3.2.1_A1_T10.js
+built-ins/Function/S15.3.2.1_A1_T11.js
+built-ins/Function/S15.3.2.1_A1_T12.js
+built-ins/Function/S15.3.2.1_A1_T13.js
+built-ins/Function/S15.3.2.1_A1_T2.js
+built-ins/Function/S15.3.2.1_A1_T3.js
+built-ins/Function/S15.3.2.1_A1_T4.js
+built-ins/Function/S15.3.2.1_A1_T5.js
+built-ins/Function/S15.3.2.1_A1_T6.js
+built-ins/Function/S15.3.2.1_A1_T7.js
+built-ins/Function/S15.3.2.1_A1_T8.js
+built-ins/Function/S15.3.2.1_A1_T9.js
+built-ins/Function/S15.3.2.1_A2_T1.js
+built-ins/Function/S15.3.2.1_A2_T2.js
+built-ins/Function/S15.3.2.1_A2_T3.js
+built-ins/Function/S15.3.2.1_A2_T4.js
+built-ins/Function/S15.3.2.1_A2_T5.js
+built-ins/Function/S15.3.2.1_A2_T6.js
+built-ins/Function/S15.3.2.1_A3_T1.js
+built-ins/Function/S15.3.2.1_A3_T10.js
+built-ins/Function/S15.3.2.1_A3_T11.js
+built-ins/Function/S15.3.2.1_A3_T12.js
+built-ins/Function/S15.3.2.1_A3_T13.js
+built-ins/Function/S15.3.2.1_A3_T14.js
+built-ins/Function/S15.3.2.1_A3_T15.js
+built-ins/Function/S15.3.2.1_A3_T2.js
+built-ins/Function/S15.3.2.1_A3_T3.js
+built-ins/Function/S15.3.2.1_A3_T4.js
+built-ins/Function/S15.3.2.1_A3_T5.js
+built-ins/Function/S15.3.2.1_A3_T6.js
+built-ins/Function/S15.3.2.1_A3_T7.js
+built-ins/Function/S15.3.2.1_A3_T8.js
+built-ins/Function/S15.3.2.1_A3_T9.js
+built-ins/Function/S15.3.2_A1.js
+built-ins/Function/S15.3.3_A1.js
+built-ins/Function/S15.3.3_A2_T1.js
+built-ins/Function/S15.3.3_A2_T2.js
+built-ins/Function/S15.3.3_A3.js
+built-ins/Function/S15.3.5_A1_T1.js
+built-ins/Function/S15.3.5_A1_T2.js
+built-ins/Function/S15.3.5_A2_T1.js
+built-ins/Function/S15.3.5_A2_T2.js
+built-ins/Function/S15.3.5_A3_T1.js
+built-ins/Function/S15.3.5_A3_T2.js
+built-ins/Function/S15.3_A1.js
+built-ins/Function/S15.3_A2_T1.js
+built-ins/Function/S15.3_A2_T2.js
+built-ins/Function/S15.3_A3_T1.js
+built-ins/Function/S15.3_A3_T2.js
+built-ins/Function/S15.3_A3_T3.js
+built-ins/Function/S15.3_A3_T4.js
+built-ins/Function/S15.3_A3_T5.js
+built-ins/Function/S15.3_A3_T6.js
+built-ins/global/10.2.1.1.3-4-16-s.js
+built-ins/global/10.2.1.1.3-4-18-s.js
+built-ins/global/10.2.1.1.3-4-22.js
+built-ins/global/10.2.1.1.3-4-27.js
+built-ins/global/S10.2.3_A1.1_T1.js
+built-ins/global/S10.2.3_A1.1_T2.js
+built-ins/global/S10.2.3_A1.1_T3.js
+built-ins/global/S10.2.3_A1.1_T4.js
+built-ins/global/S10.2.3_A1.2_T1.js
+built-ins/global/S10.2.3_A1.2_T2.js
+built-ins/global/S10.2.3_A1.2_T3.js
+built-ins/global/S10.2.3_A1.2_T4.js
+built-ins/global/S10.2.3_A1.3_T1.js
+built-ins/global/S10.2.3_A1.3_T2.js
+built-ins/global/S10.2.3_A1.3_T3.js
+built-ins/global/S10.2.3_A1.3_T4.js
+built-ins/global/S10.2.3_A2.1_T1.js
+built-ins/global/S10.2.3_A2.1_T2.js
+built-ins/global/S10.2.3_A2.1_T3.js
+built-ins/global/S10.2.3_A2.1_T4.js
+built-ins/global/S10.2.3_A2.3_T1.js
+built-ins/global/S10.2.3_A2.3_T2.js
+built-ins/global/S10.2.3_A2.3_T3.js
+built-ins/global/S10.2.3_A2.3_T4.js
+built-ins/global/S15.1_A1_T1.js
+built-ins/global/S15.1_A1_T2.js
+built-ins/global/S15.1_A2_T1.js
+built-ins/Infinity/15.1.1.2-0.js
+built-ins/Infinity/S15.1.1.2_A1.js
+built-ins/Infinity/S15.1.1.2_A2_T2.js
+built-ins/Infinity/S15.1.1.2_A3_T2.js
+built-ins/Infinity/S15.1.1.2_A4.js
+built-ins/JSON/15.12-0-1.js
+built-ins/JSON/15.12-0-2.js
+built-ins/JSON/15.12-0-3.js
+built-ins/JSON/15.12-0-4.js
+built-ins/JSON/parse/15.12.1.1-0-1.js
+built-ins/JSON/parse/15.12.1.1-0-2.js
+built-ins/JSON/parse/15.12.1.1-0-3.js
+built-ins/JSON/parse/15.12.1.1-0-4.js
+built-ins/JSON/parse/15.12.1.1-0-5.js
+built-ins/JSON/parse/15.12.1.1-0-6.js
+built-ins/JSON/parse/15.12.1.1-0-8.js
+built-ins/JSON/parse/15.12.1.1-0-9.js
+built-ins/JSON/parse/15.12.1.1-g1-1.js
+built-ins/JSON/parse/15.12.1.1-g1-2.js
+built-ins/JSON/parse/15.12.1.1-g1-3.js
+built-ins/JSON/parse/15.12.1.1-g1-4.js
+built-ins/JSON/parse/15.12.1.1-g2-1.js
+built-ins/JSON/parse/15.12.1.1-g2-2.js
+built-ins/JSON/parse/15.12.1.1-g2-3.js
+built-ins/JSON/parse/15.12.1.1-g2-4.js
+built-ins/JSON/parse/15.12.1.1-g2-5.js
+built-ins/JSON/parse/15.12.1.1-g4-1.js
+built-ins/JSON/parse/15.12.1.1-g4-2.js
+built-ins/JSON/parse/15.12.1.1-g4-3.js
+built-ins/JSON/parse/15.12.1.1-g4-4.js
+built-ins/JSON/parse/15.12.1.1-g5-1.js
+built-ins/JSON/parse/15.12.1.1-g5-2.js
+built-ins/JSON/parse/15.12.1.1-g5-3.js
+built-ins/JSON/parse/15.12.1.1-g6-1.js
+built-ins/JSON/parse/15.12.1.1-g6-2.js
+built-ins/JSON/parse/15.12.1.1-g6-3.js
+built-ins/JSON/parse/15.12.1.1-g6-4.js
+built-ins/JSON/parse/15.12.1.1-g6-5.js
+built-ins/JSON/parse/15.12.1.1-g6-6.js
+built-ins/JSON/parse/15.12.1.1-g6-7.js
+built-ins/JSON/parse/15.12.2-2-1.js
+built-ins/JSON/parse/15.12.2-2-10.js
+built-ins/JSON/parse/15.12.2-2-2.js
+built-ins/JSON/parse/15.12.2-2-3.js
+built-ins/JSON/parse/15.12.2-2-4.js
+built-ins/JSON/parse/15.12.2-2-5.js
+built-ins/JSON/parse/15.12.2-2-6.js
+built-ins/JSON/parse/15.12.2-2-7.js
+built-ins/JSON/parse/15.12.2-2-8.js
+built-ins/JSON/parse/15.12.2-2-9.js
+built-ins/JSON/parse/invalid-whitespace.js
+built-ins/JSON/parse/S15.12.2_A1.js
+built-ins/Math/abs/S15.8.2.1_A1.js
+built-ins/Math/abs/S15.8.2.1_A2.js
+built-ins/Math/abs/S15.8.2.1_A3.js
+built-ins/Math/acos/S15.8.2.2_A1.js
+built-ins/Math/acos/S15.8.2.2_A2.js
+built-ins/Math/acos/S15.8.2.2_A3.js
+built-ins/Math/acos/S15.8.2.2_A4.js
+built-ins/Math/asin/S15.8.2.3_A1.js
+built-ins/Math/asin/S15.8.2.3_A2.js
+built-ins/Math/asin/S15.8.2.3_A3.js
+built-ins/Math/asin/S15.8.2.3_A4.js
+built-ins/Math/asin/S15.8.2.3_A5.js
+built-ins/Math/atan/S15.8.2.4_A1.js
+built-ins/Math/atan/S15.8.2.4_A2.js
+built-ins/Math/atan/S15.8.2.4_A3.js
+built-ins/Math/atan2/S15.8.2.5_A1.js
+built-ins/Math/atan2/S15.8.2.5_A14.js
+built-ins/Math/atan2/S15.8.2.5_A16.js
+built-ins/Math/atan2/S15.8.2.5_A4.js
+built-ins/Math/atan2/S15.8.2.5_A5.js
+built-ins/Math/atan2/S15.8.2.5_A8.js
+built-ins/Math/atan2/S15.8.2.5_A9.js
+built-ins/Math/ceil/S15.8.2.6_A1.js
+built-ins/Math/ceil/S15.8.2.6_A2.js
+built-ins/Math/ceil/S15.8.2.6_A3.js
+built-ins/Math/ceil/S15.8.2.6_A4.js
+built-ins/Math/ceil/S15.8.2.6_A5.js
+built-ins/Math/ceil/S15.8.2.6_A6.js
+built-ins/Math/ceil/S15.8.2.6_A7.js
+built-ins/Math/cos/S15.8.2.7_A1.js
+built-ins/Math/cos/S15.8.2.7_A2.js
+built-ins/Math/cos/S15.8.2.7_A3.js
+built-ins/Math/cos/S15.8.2.7_A4.js
+built-ins/Math/cos/S15.8.2.7_A5.js
+built-ins/Math/exp/S15.8.2.8_A1.js
+built-ins/Math/exp/S15.8.2.8_A2.js
+built-ins/Math/exp/S15.8.2.8_A3.js
+built-ins/Math/exp/S15.8.2.8_A4.js
+built-ins/Math/exp/S15.8.2.8_A5.js
+built-ins/Math/floor/S15.8.2.9_A1.js
+built-ins/Math/floor/S15.8.2.9_A2.js
+built-ins/Math/floor/S15.8.2.9_A3.js
+built-ins/Math/floor/S15.8.2.9_A4.js
+built-ins/Math/floor/S15.8.2.9_A5.js
+built-ins/Math/floor/S15.8.2.9_A6.js
+built-ins/Math/floor/S15.8.2.9_A7.js
+built-ins/Math/log/S15.8.2.10_A1.js
+built-ins/Math/log/S15.8.2.10_A2.js
+built-ins/Math/log/S15.8.2.10_A3.js
+built-ins/Math/log/S15.8.2.10_A4.js
+built-ins/Math/log/S15.8.2.10_A5.js
+built-ins/Math/max/15.8.2.11-1.js
+built-ins/Math/max/S15.8.2.11_A1.js
+built-ins/Math/max/S15.8.2.11_A2.js
+built-ins/Math/max/S15.8.2.11_A4.js
+built-ins/Math/min/15.8.2.12-1.js
+built-ins/Math/min/S15.8.2.12_A1.js
+built-ins/Math/min/S15.8.2.12_A2.js
+built-ins/Math/min/S15.8.2.12_A4.js
+built-ins/Math/random/S15.8.2.14_A1.js
+built-ins/Math/round/S15.8.2.15_A1.js
+built-ins/Math/round/S15.8.2.15_A2.js
+built-ins/Math/round/S15.8.2.15_A3.js
+built-ins/Math/round/S15.8.2.15_A4.js
+built-ins/Math/round/S15.8.2.15_A5.js
+built-ins/Math/round/S15.8.2.15_A6.js
+built-ins/Math/round/S15.8.2.15_A7.js
+built-ins/Math/sin/S15.8.2.16_A1.js
+built-ins/Math/sin/S15.8.2.16_A4.js
+built-ins/Math/sin/S15.8.2.16_A5.js
+built-ins/Math/sin/zero.js
+built-ins/Math/sqrt/S15.8.2.17_A1.js
+built-ins/Math/sqrt/S15.8.2.17_A2.js
+built-ins/Math/sqrt/S15.8.2.17_A3.js
+built-ins/Math/sqrt/S15.8.2.17_A4.js
+built-ins/Math/sqrt/S15.8.2.17_A5.js
+built-ins/Math/tan/S15.8.2.18_A1.js
+built-ins/Math/tan/S15.8.2.18_A2.js
+built-ins/Math/tan/S15.8.2.18_A3.js
+built-ins/Math/tan/S15.8.2.18_A4.js
+built-ins/Math/tan/S15.8.2.18_A5.js
+built-ins/NaN/15.1.1.1-0.js
+built-ins/NaN/S15.1.1.1_A1.js
+built-ins/NaN/S15.1.1.1_A2_T2.js
+built-ins/NaN/S15.1.1.1_A3_T2.js
+built-ins/NaN/S15.1.1.1_A4.js
+built-ins/Number/15.7.3-1.js
+built-ins/Number/15.7.3-2.js
+built-ins/Number/15.7.4-1.js
+built-ins/Number/MAX_VALUE/S15.7.3.2_A2.js
+built-ins/Number/MAX_VALUE/S15.7.3.2_A3.js
+built-ins/Number/MAX_VALUE/S15.7.3.2_A4.js
+built-ins/Number/MIN_VALUE/S15.7.3.3_A2.js
+built-ins/Number/MIN_VALUE/S15.7.3.3_A3.js
+built-ins/Number/MIN_VALUE/S15.7.3.3_A4.js
+built-ins/Number/NEGATIVE_INFINITY/S15.7.3.5_A1.js
+built-ins/Number/NEGATIVE_INFINITY/S15.7.3.5_A2.js
+built-ins/Number/POSITIVE_INFINITY/S15.7.3.6_A1.js
+built-ins/Number/POSITIVE_INFINITY/S15.7.3.6_A2.js
+built-ins/Number/prototype/15.7.3.1-2.js
+built-ins/Number/prototype/S15.7.3.1_A2_T1.js
+built-ins/Number/prototype/S15.7.3.1_A2_T2.js
+built-ins/Number/prototype/S15.7.3.1_A3.js
+built-ins/Number/prototype/S15.7.4_A1.js
+built-ins/Number/prototype/S15.7.4_A2.js
+built-ins/Number/prototype/S15.7.4_A3.1.js
+built-ins/Number/prototype/S15.7.4_A3.2.js
+built-ins/Number/prototype/S15.7.4_A3.3.js
+built-ins/Number/prototype/S15.7.4_A3.4.js
+built-ins/Number/prototype/S15.7.4_A3.5.js
+built-ins/Number/prototype/S15.7.4_A3.6.js
+built-ins/Number/prototype/S15.7.4_A3.7.js
+built-ins/Number/prototype/toFixed/S15.7.4.5_A1.1_T01.js
+built-ins/Number/prototype/toFixed/S15.7.4.5_A1.1_T02.js
+built-ins/Number/prototype/toFixed/S15.7.4.5_A1.3_T01.js
+built-ins/Number/prototype/toFixed/S15.7.4.5_A1.3_T02.js
+built-ins/Number/prototype/toFixed/S15.7.4.5_A1.4_T01.js
+built-ins/Number/prototype/toFixed/S15.7.4.5_A2_T01.js
+built-ins/Number/prototype/toString/S15.7.4.2_A1_T01.js
+built-ins/Number/prototype/toString/S15.7.4.2_A1_T02.js
+built-ins/Number/prototype/toString/S15.7.4.2_A1_T03.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T01.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T02.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T03.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T04.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T05.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T06.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T07.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T08.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T09.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T10.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T11.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T12.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T13.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T14.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T15.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T16.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T17.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T18.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T19.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T20.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T21.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T22.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T23.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T24.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T25.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T26.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T27.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T28.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T29.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T30.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T31.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T32.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T33.js
+built-ins/Number/prototype/toString/S15.7.4.2_A2_T34.js
+built-ins/Number/prototype/toString/S15.7.4.2_A3_T01.js
+built-ins/Number/prototype/toString/S15.7.4.2_A3_T02.js
+built-ins/Number/prototype/toString/S15.7.4.2_A3_T03.js
+built-ins/Number/prototype/toString/S15.7.4.2_A3_T04.js
+built-ins/Number/prototype/toString/S15.7.4.2_A4_T01.js
+built-ins/Number/prototype/toString/S15.7.4.2_A4_T02.js
+built-ins/Number/prototype/toString/S15.7.4.2_A4_T03.js
+built-ins/Number/prototype/toString/S15.7.4.2_A4_T04.js
+built-ins/Number/prototype/toString/S15.7.4.2_A4_T05.js
+built-ins/Number/prototype/valueOf/S15.7.4.4_A1_T01.js
+built-ins/Number/prototype/valueOf/S15.7.4.4_A1_T02.js
+built-ins/Number/prototype/valueOf/S15.7.4.4_A2_T01.js
+built-ins/Number/prototype/valueOf/S15.7.4.4_A2_T02.js
+built-ins/Number/prototype/valueOf/S15.7.4.4_A2_T03.js
+built-ins/Number/prototype/valueOf/S15.7.4.4_A2_T04.js
+built-ins/Number/prototype/valueOf/S15.7.4.4_A2_T05.js
+built-ins/Number/S15.7.1.1_A1.js
+built-ins/Number/S15.7.1.1_A2.js
+built-ins/Number/S15.7.2.1_A1.js
+built-ins/Number/S15.7.2.1_A2.js
+built-ins/Number/S15.7.2.1_A3.js
+built-ins/Number/S15.7.2.1_A4.js
+built-ins/Number/S15.7.3_A1.js
+built-ins/Number/S15.7.3_A2.js
+built-ins/Number/S15.7.3_A3.js
+built-ins/Number/S15.7.3_A4.js
+built-ins/Number/S15.7.3_A5.js
+built-ins/Number/S15.7.3_A6.js
+built-ins/Number/S15.7.3_A7.js
+built-ins/Number/S15.7.3_A8.js
+built-ins/Number/S15.7.5_A1_T01.js
+built-ins/Number/S15.7.5_A1_T02.js
+built-ins/Number/S15.7.5_A1_T03.js
+built-ins/Number/S15.7.5_A1_T04.js
+built-ins/Number/S15.7.5_A1_T05.js
+built-ins/Number/S15.7.5_A1_T06.js
+built-ins/Number/S15.7.5_A1_T07.js
+built-ins/Number/S8.12.8_A3.js
+built-ins/Number/S8.12.8_A4.js
+built-ins/Number/S9.1_A1_T1.js
+built-ins/Number/S9.3.1_A1.js
+built-ins/Number/S9.3.1_A10.js
+built-ins/Number/S9.3.1_A11.js
+built-ins/Number/S9.3.1_A12.js
+built-ins/Number/S9.3.1_A13.js
+built-ins/Number/S9.3.1_A14.js
+built-ins/Number/S9.3.1_A15.js
+built-ins/Number/S9.3.1_A16.js
+built-ins/Number/S9.3.1_A17.js
+built-ins/Number/S9.3.1_A18.js
+built-ins/Number/S9.3.1_A19.js
+built-ins/Number/S9.3.1_A2.js
+built-ins/Number/S9.3.1_A20.js
+built-ins/Number/S9.3.1_A21.js
+built-ins/Number/S9.3.1_A22.js
+built-ins/Number/S9.3.1_A23.js
+built-ins/Number/S9.3.1_A24.js
+built-ins/Number/S9.3.1_A25.js
+built-ins/Number/S9.3.1_A26.js
+built-ins/Number/S9.3.1_A27.js
+built-ins/Number/S9.3.1_A28.js
+built-ins/Number/S9.3.1_A29.js
+built-ins/Number/S9.3.1_A3_T1.js
+built-ins/Number/S9.3.1_A3_T2.js
+built-ins/Number/S9.3.1_A30.js
+built-ins/Number/S9.3.1_A31.js
+built-ins/Number/S9.3.1_A32.js
+built-ins/Number/S9.3.1_A4_T1.js
+built-ins/Number/S9.3.1_A4_T2.js
+built-ins/Number/S9.3.1_A5_T1.js
+built-ins/Number/S9.3.1_A5_T2.js
+built-ins/Number/S9.3.1_A5_T3.js
+built-ins/Number/S9.3.1_A6_T1.js
+built-ins/Number/S9.3.1_A6_T2.js
+built-ins/Number/S9.3.1_A7.js
+built-ins/Number/S9.3.1_A8.js
+built-ins/Number/S9.3.1_A9.js
+built-ins/Number/S9.3_A1_T1.js
+built-ins/Number/S9.3_A2_T1.js
+built-ins/Number/S9.3_A3_T1.js
+built-ins/Number/S9.3_A4.1_T1.js
+built-ins/Number/S9.3_A4.2_T1.js
+built-ins/Number/S9.3_A5_T1.js
+built-ins/Object/create/15.2.3.5-0-1.js
+built-ins/Object/create/15.2.3.5-0-2.js
+built-ins/Object/create/15.2.3.5-1.js
+built-ins/Object/create/15.2.3.5-1-1.js
+built-ins/Object/create/15.2.3.5-1-2.js
+built-ins/Object/create/15.2.3.5-1-3.js
+built-ins/Object/create/15.2.3.5-1-4.js
+built-ins/Object/create/15.2.3.5-2-1.js
+built-ins/Object/create/15.2.3.5-2-2.js
+built-ins/Object/create/15.2.3.5-3-1.js
+built-ins/Object/create/15.2.3.5-4-1.js
+built-ins/Object/create/15.2.3.5-4-10.js
+built-ins/Object/create/15.2.3.5-4-100.js
+built-ins/Object/create/15.2.3.5-4-101.js
+built-ins/Object/create/15.2.3.5-4-102.js
+built-ins/Object/create/15.2.3.5-4-103.js
+built-ins/Object/create/15.2.3.5-4-104.js
+built-ins/Object/create/15.2.3.5-4-105.js
+built-ins/Object/create/15.2.3.5-4-106.js
+built-ins/Object/create/15.2.3.5-4-107.js
+built-ins/Object/create/15.2.3.5-4-108.js
+built-ins/Object/create/15.2.3.5-4-109.js
+built-ins/Object/create/15.2.3.5-4-11.js
+built-ins/Object/create/15.2.3.5-4-110.js
+built-ins/Object/create/15.2.3.5-4-111.js
+built-ins/Object/create/15.2.3.5-4-112.js
+built-ins/Object/create/15.2.3.5-4-113.js
+built-ins/Object/create/15.2.3.5-4-114.js
+built-ins/Object/create/15.2.3.5-4-115.js
+built-ins/Object/create/15.2.3.5-4-116.js
+built-ins/Object/create/15.2.3.5-4-117.js
+built-ins/Object/create/15.2.3.5-4-118.js
+built-ins/Object/create/15.2.3.5-4-119.js
+built-ins/Object/create/15.2.3.5-4-12.js
+built-ins/Object/create/15.2.3.5-4-120.js
+built-ins/Object/create/15.2.3.5-4-121.js
+built-ins/Object/create/15.2.3.5-4-122.js
+built-ins/Object/create/15.2.3.5-4-124.js
+built-ins/Object/create/15.2.3.5-4-125.js
+built-ins/Object/create/15.2.3.5-4-126.js
+built-ins/Object/create/15.2.3.5-4-127.js
+built-ins/Object/create/15.2.3.5-4-128.js
+built-ins/Object/create/15.2.3.5-4-129.js
+built-ins/Object/create/15.2.3.5-4-13.js
+built-ins/Object/create/15.2.3.5-4-130.js
+built-ins/Object/create/15.2.3.5-4-131.js
+built-ins/Object/create/15.2.3.5-4-132.js
+built-ins/Object/create/15.2.3.5-4-133.js
+built-ins/Object/create/15.2.3.5-4-134.js
+built-ins/Object/create/15.2.3.5-4-135.js
+built-ins/Object/create/15.2.3.5-4-136.js
+built-ins/Object/create/15.2.3.5-4-137.js
+built-ins/Object/create/15.2.3.5-4-138.js
+built-ins/Object/create/15.2.3.5-4-139.js
+built-ins/Object/create/15.2.3.5-4-14.js
+built-ins/Object/create/15.2.3.5-4-140.js
+built-ins/Object/create/15.2.3.5-4-141.js
+built-ins/Object/create/15.2.3.5-4-142.js
+built-ins/Object/create/15.2.3.5-4-143.js
+built-ins/Object/create/15.2.3.5-4-144.js
+built-ins/Object/create/15.2.3.5-4-145.js
+built-ins/Object/create/15.2.3.5-4-146.js
+built-ins/Object/create/15.2.3.5-4-147.js
+built-ins/Object/create/15.2.3.5-4-149.js
+built-ins/Object/create/15.2.3.5-4-15.js
+built-ins/Object/create/15.2.3.5-4-150.js
+built-ins/Object/create/15.2.3.5-4-151.js
+built-ins/Object/create/15.2.3.5-4-152.js
+built-ins/Object/create/15.2.3.5-4-153.js
+built-ins/Object/create/15.2.3.5-4-154.js
+built-ins/Object/create/15.2.3.5-4-155.js
+built-ins/Object/create/15.2.3.5-4-156.js
+built-ins/Object/create/15.2.3.5-4-157.js
+built-ins/Object/create/15.2.3.5-4-158.js
+built-ins/Object/create/15.2.3.5-4-159.js
+built-ins/Object/create/15.2.3.5-4-16.js
+built-ins/Object/create/15.2.3.5-4-160.js
+built-ins/Object/create/15.2.3.5-4-161.js
+built-ins/Object/create/15.2.3.5-4-162.js
+built-ins/Object/create/15.2.3.5-4-163.js
+built-ins/Object/create/15.2.3.5-4-164.js
+built-ins/Object/create/15.2.3.5-4-165.js
+built-ins/Object/create/15.2.3.5-4-166.js
+built-ins/Object/create/15.2.3.5-4-167.js
+built-ins/Object/create/15.2.3.5-4-168.js
+built-ins/Object/create/15.2.3.5-4-169.js
+built-ins/Object/create/15.2.3.5-4-17.js
+built-ins/Object/create/15.2.3.5-4-170.js
+built-ins/Object/create/15.2.3.5-4-171.js
+built-ins/Object/create/15.2.3.5-4-172.js
+built-ins/Object/create/15.2.3.5-4-173.js
+built-ins/Object/create/15.2.3.5-4-174.js
+built-ins/Object/create/15.2.3.5-4-175.js
+built-ins/Object/create/15.2.3.5-4-177.js
+built-ins/Object/create/15.2.3.5-4-178.js
+built-ins/Object/create/15.2.3.5-4-179.js
+built-ins/Object/create/15.2.3.5-4-18.js
+built-ins/Object/create/15.2.3.5-4-180.js
+built-ins/Object/create/15.2.3.5-4-181.js
+built-ins/Object/create/15.2.3.5-4-182.js
+built-ins/Object/create/15.2.3.5-4-183.js
+built-ins/Object/create/15.2.3.5-4-184.js
+built-ins/Object/create/15.2.3.5-4-185.js
+built-ins/Object/create/15.2.3.5-4-186.js
+built-ins/Object/create/15.2.3.5-4-187.js
+built-ins/Object/create/15.2.3.5-4-188.js
+built-ins/Object/create/15.2.3.5-4-189.js
+built-ins/Object/create/15.2.3.5-4-19.js
+built-ins/Object/create/15.2.3.5-4-190.js
+built-ins/Object/create/15.2.3.5-4-191.js
+built-ins/Object/create/15.2.3.5-4-192.js
+built-ins/Object/create/15.2.3.5-4-193.js
+built-ins/Object/create/15.2.3.5-4-194.js
+built-ins/Object/create/15.2.3.5-4-195.js
+built-ins/Object/create/15.2.3.5-4-196.js
+built-ins/Object/create/15.2.3.5-4-197.js
+built-ins/Object/create/15.2.3.5-4-198.js
+built-ins/Object/create/15.2.3.5-4-199.js
+built-ins/Object/create/15.2.3.5-4-2.js
+built-ins/Object/create/15.2.3.5-4-20.js
+built-ins/Object/create/15.2.3.5-4-200.js
+built-ins/Object/create/15.2.3.5-4-201.js
+built-ins/Object/create/15.2.3.5-4-203.js
+built-ins/Object/create/15.2.3.5-4-204.js
+built-ins/Object/create/15.2.3.5-4-205.js
+built-ins/Object/create/15.2.3.5-4-206.js
+built-ins/Object/create/15.2.3.5-4-207.js
+built-ins/Object/create/15.2.3.5-4-208.js
+built-ins/Object/create/15.2.3.5-4-209.js
+built-ins/Object/create/15.2.3.5-4-21.js
+built-ins/Object/create/15.2.3.5-4-210.js
+built-ins/Object/create/15.2.3.5-4-211.js
+built-ins/Object/create/15.2.3.5-4-212.js
+built-ins/Object/create/15.2.3.5-4-213.js
+built-ins/Object/create/15.2.3.5-4-214.js
+built-ins/Object/create/15.2.3.5-4-215.js
+built-ins/Object/create/15.2.3.5-4-216.js
+built-ins/Object/create/15.2.3.5-4-217.js
+built-ins/Object/create/15.2.3.5-4-218.js
+built-ins/Object/create/15.2.3.5-4-219.js
+built-ins/Object/create/15.2.3.5-4-22.js
+built-ins/Object/create/15.2.3.5-4-220.js
+built-ins/Object/create/15.2.3.5-4-221.js
+built-ins/Object/create/15.2.3.5-4-222.js
+built-ins/Object/create/15.2.3.5-4-223.js
+built-ins/Object/create/15.2.3.5-4-224.js
+built-ins/Object/create/15.2.3.5-4-225.js
+built-ins/Object/create/15.2.3.5-4-226.js
+built-ins/Object/create/15.2.3.5-4-228.js
+built-ins/Object/create/15.2.3.5-4-229.js
+built-ins/Object/create/15.2.3.5-4-23.js
+built-ins/Object/create/15.2.3.5-4-230.js
+built-ins/Object/create/15.2.3.5-4-231.js
+built-ins/Object/create/15.2.3.5-4-232.js
+built-ins/Object/create/15.2.3.5-4-233.js
+built-ins/Object/create/15.2.3.5-4-234.js
+built-ins/Object/create/15.2.3.5-4-235.js
+built-ins/Object/create/15.2.3.5-4-236.js
+built-ins/Object/create/15.2.3.5-4-237.js
+built-ins/Object/create/15.2.3.5-4-238.js
+built-ins/Object/create/15.2.3.5-4-239.js
+built-ins/Object/create/15.2.3.5-4-24.js
+built-ins/Object/create/15.2.3.5-4-240.js
+built-ins/Object/create/15.2.3.5-4-241.js
+built-ins/Object/create/15.2.3.5-4-242.js
+built-ins/Object/create/15.2.3.5-4-243.js
+built-ins/Object/create/15.2.3.5-4-244.js
+built-ins/Object/create/15.2.3.5-4-245.js
+built-ins/Object/create/15.2.3.5-4-246.js
+built-ins/Object/create/15.2.3.5-4-247.js
+built-ins/Object/create/15.2.3.5-4-248.js
+built-ins/Object/create/15.2.3.5-4-249.js
+built-ins/Object/create/15.2.3.5-4-25.js
+built-ins/Object/create/15.2.3.5-4-250.js
+built-ins/Object/create/15.2.3.5-4-251.js
+built-ins/Object/create/15.2.3.5-4-252.js
+built-ins/Object/create/15.2.3.5-4-253.js
+built-ins/Object/create/15.2.3.5-4-254.js
+built-ins/Object/create/15.2.3.5-4-256.js
+built-ins/Object/create/15.2.3.5-4-257.js
+built-ins/Object/create/15.2.3.5-4-258.js
+built-ins/Object/create/15.2.3.5-4-259.js
+built-ins/Object/create/15.2.3.5-4-26.js
+built-ins/Object/create/15.2.3.5-4-260.js
+built-ins/Object/create/15.2.3.5-4-261.js
+built-ins/Object/create/15.2.3.5-4-262.js
+built-ins/Object/create/15.2.3.5-4-263.js
+built-ins/Object/create/15.2.3.5-4-266.js
+built-ins/Object/create/15.2.3.5-4-267.js
+built-ins/Object/create/15.2.3.5-4-268.js
+built-ins/Object/create/15.2.3.5-4-269.js
+built-ins/Object/create/15.2.3.5-4-27.js
+built-ins/Object/create/15.2.3.5-4-270.js
+built-ins/Object/create/15.2.3.5-4-271.js
+built-ins/Object/create/15.2.3.5-4-272.js
+built-ins/Object/create/15.2.3.5-4-273.js
+built-ins/Object/create/15.2.3.5-4-274.js
+built-ins/Object/create/15.2.3.5-4-275.js
+built-ins/Object/create/15.2.3.5-4-276.js
+built-ins/Object/create/15.2.3.5-4-277.js
+built-ins/Object/create/15.2.3.5-4-278.js
+built-ins/Object/create/15.2.3.5-4-279.js
+built-ins/Object/create/15.2.3.5-4-28.js
+built-ins/Object/create/15.2.3.5-4-280.js
+built-ins/Object/create/15.2.3.5-4-281.js
+built-ins/Object/create/15.2.3.5-4-282.js
+built-ins/Object/create/15.2.3.5-4-283.js
+built-ins/Object/create/15.2.3.5-4-284.js
+built-ins/Object/create/15.2.3.5-4-285.js
+built-ins/Object/create/15.2.3.5-4-286.js
+built-ins/Object/create/15.2.3.5-4-287.js
+built-ins/Object/create/15.2.3.5-4-288.js
+built-ins/Object/create/15.2.3.5-4-289.js
+built-ins/Object/create/15.2.3.5-4-29.js
+built-ins/Object/create/15.2.3.5-4-291.js
+built-ins/Object/create/15.2.3.5-4-292.js
+built-ins/Object/create/15.2.3.5-4-293.js
+built-ins/Object/create/15.2.3.5-4-294.js
+built-ins/Object/create/15.2.3.5-4-295.js
+built-ins/Object/create/15.2.3.5-4-296.js
+built-ins/Object/create/15.2.3.5-4-297.js
+built-ins/Object/create/15.2.3.5-4-298.js
+built-ins/Object/create/15.2.3.5-4-3.js
+built-ins/Object/create/15.2.3.5-4-30.js
+built-ins/Object/create/15.2.3.5-4-300.js
+built-ins/Object/create/15.2.3.5-4-301.js
+built-ins/Object/create/15.2.3.5-4-302.js
+built-ins/Object/create/15.2.3.5-4-303.js
+built-ins/Object/create/15.2.3.5-4-304.js
+built-ins/Object/create/15.2.3.5-4-305.js
+built-ins/Object/create/15.2.3.5-4-306.js
+built-ins/Object/create/15.2.3.5-4-307.js
+built-ins/Object/create/15.2.3.5-4-308.js
+built-ins/Object/create/15.2.3.5-4-309.js
+built-ins/Object/create/15.2.3.5-4-31.js
+built-ins/Object/create/15.2.3.5-4-310.js
+built-ins/Object/create/15.2.3.5-4-311.js
+built-ins/Object/create/15.2.3.5-4-312.js
+built-ins/Object/create/15.2.3.5-4-313.js
+built-ins/Object/create/15.2.3.5-4-314.js
+built-ins/Object/create/15.2.3.5-4-315.js
+built-ins/Object/create/15.2.3.5-4-316.js
+built-ins/Object/create/15.2.3.5-4-32.js
+built-ins/Object/create/15.2.3.5-4-33.js
+built-ins/Object/create/15.2.3.5-4-34.js
+built-ins/Object/create/15.2.3.5-4-35.js
+built-ins/Object/create/15.2.3.5-4-36.js
+built-ins/Object/create/15.2.3.5-4-37.js
+built-ins/Object/create/15.2.3.5-4-38.js
+built-ins/Object/create/15.2.3.5-4-39.js
+built-ins/Object/create/15.2.3.5-4-4.js
+built-ins/Object/create/15.2.3.5-4-40.js
+built-ins/Object/create/15.2.3.5-4-41.js
+built-ins/Object/create/15.2.3.5-4-42.js
+built-ins/Object/create/15.2.3.5-4-43.js
+built-ins/Object/create/15.2.3.5-4-44.js
+built-ins/Object/create/15.2.3.5-4-45.js
+built-ins/Object/create/15.2.3.5-4-46.js
+built-ins/Object/create/15.2.3.5-4-47.js
+built-ins/Object/create/15.2.3.5-4-48.js
+built-ins/Object/create/15.2.3.5-4-49.js
+built-ins/Object/create/15.2.3.5-4-5.js
+built-ins/Object/create/15.2.3.5-4-50.js
+built-ins/Object/create/15.2.3.5-4-51.js
+built-ins/Object/create/15.2.3.5-4-52.js
+built-ins/Object/create/15.2.3.5-4-53.js
+built-ins/Object/create/15.2.3.5-4-54.js
+built-ins/Object/create/15.2.3.5-4-55.js
+built-ins/Object/create/15.2.3.5-4-56.js
+built-ins/Object/create/15.2.3.5-4-57.js
+built-ins/Object/create/15.2.3.5-4-58.js
+built-ins/Object/create/15.2.3.5-4-59.js
+built-ins/Object/create/15.2.3.5-4-6.js
+built-ins/Object/create/15.2.3.5-4-60.js
+built-ins/Object/create/15.2.3.5-4-61.js
+built-ins/Object/create/15.2.3.5-4-62.js
+built-ins/Object/create/15.2.3.5-4-63.js
+built-ins/Object/create/15.2.3.5-4-64.js
+built-ins/Object/create/15.2.3.5-4-65.js
+built-ins/Object/create/15.2.3.5-4-66.js
+built-ins/Object/create/15.2.3.5-4-67.js
+built-ins/Object/create/15.2.3.5-4-68.js
+built-ins/Object/create/15.2.3.5-4-69.js
+built-ins/Object/create/15.2.3.5-4-7.js
+built-ins/Object/create/15.2.3.5-4-71.js
+built-ins/Object/create/15.2.3.5-4-72.js
+built-ins/Object/create/15.2.3.5-4-73.js
+built-ins/Object/create/15.2.3.5-4-74.js
+built-ins/Object/create/15.2.3.5-4-75.js
+built-ins/Object/create/15.2.3.5-4-76.js
+built-ins/Object/create/15.2.3.5-4-77.js
+built-ins/Object/create/15.2.3.5-4-78.js
+built-ins/Object/create/15.2.3.5-4-79.js
+built-ins/Object/create/15.2.3.5-4-8.js
+built-ins/Object/create/15.2.3.5-4-80.js
+built-ins/Object/create/15.2.3.5-4-81.js
+built-ins/Object/create/15.2.3.5-4-82.js
+built-ins/Object/create/15.2.3.5-4-83.js
+built-ins/Object/create/15.2.3.5-4-84.js
+built-ins/Object/create/15.2.3.5-4-85.js
+built-ins/Object/create/15.2.3.5-4-86.js
+built-ins/Object/create/15.2.3.5-4-87.js
+built-ins/Object/create/15.2.3.5-4-88.js
+built-ins/Object/create/15.2.3.5-4-89.js
+built-ins/Object/create/15.2.3.5-4-9.js
+built-ins/Object/create/15.2.3.5-4-90.js
+built-ins/Object/create/15.2.3.5-4-91.js
+built-ins/Object/create/15.2.3.5-4-92.js
+built-ins/Object/create/15.2.3.5-4-93.js
+built-ins/Object/create/15.2.3.5-4-94.js
+built-ins/Object/create/15.2.3.5-4-96.js
+built-ins/Object/create/15.2.3.5-4-97.js
+built-ins/Object/create/15.2.3.5-4-98.js
+built-ins/Object/create/15.2.3.5-4-99.js
+built-ins/Object/defineProperties/15.2.3.7-0-1.js
+built-ins/Object/defineProperties/15.2.3.7-0-2.js
+built-ins/Object/defineProperties/15.2.3.7-1.js
+built-ins/Object/defineProperties/15.2.3.7-1-1.js
+built-ins/Object/defineProperties/15.2.3.7-1-2.js
+built-ins/Object/defineProperties/15.2.3.7-1-3.js
+built-ins/Object/defineProperties/15.2.3.7-1-4.js
+built-ins/Object/defineProperties/15.2.3.7-2-1.js
+built-ins/Object/defineProperties/15.2.3.7-2-10.js
+built-ins/Object/defineProperties/15.2.3.7-2-11.js
+built-ins/Object/defineProperties/15.2.3.7-2-12.js
+built-ins/Object/defineProperties/15.2.3.7-2-13.js
+built-ins/Object/defineProperties/15.2.3.7-2-14.js
+built-ins/Object/defineProperties/15.2.3.7-2-15.js
+built-ins/Object/defineProperties/15.2.3.7-2-16.js
+built-ins/Object/defineProperties/15.2.3.7-2-18.js
+built-ins/Object/defineProperties/15.2.3.7-2-2.js
+built-ins/Object/defineProperties/15.2.3.7-2-3.js
+built-ins/Object/defineProperties/15.2.3.7-2-4.js
+built-ins/Object/defineProperties/15.2.3.7-2-5.js
+built-ins/Object/defineProperties/15.2.3.7-2-6.js
+built-ins/Object/defineProperties/15.2.3.7-2-7.js
+built-ins/Object/defineProperties/15.2.3.7-2-8.js
+built-ins/Object/defineProperties/15.2.3.7-2-9.js
+built-ins/Object/defineProperties/15.2.3.7-3-1.js
+built-ins/Object/defineProperties/15.2.3.7-3-2.js
+built-ins/Object/defineProperties/15.2.3.7-3-3.js
+built-ins/Object/defineProperties/15.2.3.7-3-4.js
+built-ins/Object/defineProperties/15.2.3.7-3-5.js
+built-ins/Object/defineProperties/15.2.3.7-3-6.js
+built-ins/Object/defineProperties/15.2.3.7-3-7.js
+built-ins/Object/defineProperties/15.2.3.7-3-8.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-1.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-10.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-11.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-12.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-13.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-14.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-15.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-16.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-17.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-2.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-3.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-4.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-5.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-6.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-7.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-8.js
+built-ins/Object/defineProperties/15.2.3.7-5-a-9.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-1.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-10.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-100.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-101.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-102.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-103.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-104.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-105.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-106.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-107.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-109.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-11.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-110.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-111.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-112.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-113.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-114.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-115.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-116.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-117.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-118.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-119.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-12.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-120.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-121.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-122.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-123.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-124.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-125.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-126.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-127.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-128.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-129.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-13.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-130.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-131.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-132.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-133.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-134.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-135.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-137.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-138.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-139.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-14.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-140.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-141.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-142.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-143.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-144.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-145.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-146.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-147.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-148.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-149.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-15.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-150.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-151.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-152.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-153.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-154.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-155.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-156.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-157.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-158.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-159.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-16.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-160.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-161.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-163.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-164.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-165.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-166.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-167.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-168.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-169.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-17.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-170.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-171.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-172.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-173.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-174.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-175.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-176.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-177.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-178.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-179.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-18.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-180.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-181.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-182.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-183.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-184.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-185.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-186.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-188.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-189.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-19.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-190.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-191.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-192.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-193.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-194.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-195.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-196.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-197.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-198.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-199.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-2.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-20.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-200.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-201.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-202.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-203.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-204.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-205.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-206.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-207.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-208.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-209.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-21.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-210.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-211.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-212.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-213.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-214.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-216.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-217.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-218.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-219.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-22.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-220.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-221.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-222.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-223.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-226.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-227.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-228.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-229.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-23.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-230.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-231.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-232.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-233.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-234.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-235.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-236.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-237.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-238.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-239.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-24.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-240.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-241.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-242.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-243.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-244.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-245.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-246.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-247.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-248.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-249.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-25.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-252.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-253.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-254.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-255.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-256.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-257.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-258.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-26.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-261.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-262.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-263.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-264.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-27.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-28.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-29.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-3.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-31.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-32.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-33.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-34.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-35.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-36.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-37.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-38.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-39.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-4.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-40.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-41.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-42.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-43.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-44.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-45.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-46.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-47.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-48.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-49.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-5.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-50.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-51.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-52.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-53.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-54.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-56.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-57.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-58.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-59.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-6.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-60.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-61.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-62.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-63.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-64.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-65.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-66.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-67.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-68.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-69.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-7.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-70.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-71.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-72.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-73.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-74.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-75.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-76.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-77.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-78.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-79.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-8.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-80.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-81.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-82.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-84.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-85.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-86.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-87.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-88.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-89.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-9.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-90.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-91.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-92.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-93.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-94.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-95.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-96.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-97.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-98.js
+built-ins/Object/defineProperties/15.2.3.7-5-b-99.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-1.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-10.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-100.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-101.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-102.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-103.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-104.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-105.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-106.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-107.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-108.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-109.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-11.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-110.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-111.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-112.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-113.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-114.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-114-b.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-115.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-116.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-117.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-118.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-119.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-12.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-120.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-121.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-122.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-123.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-124.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-125.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-126.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-127.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-128.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-129.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-13.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-130.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-131.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-132.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-133.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-134.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-135.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-136.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-137.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-138.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-139.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-14.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-140.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-141.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-142.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-143.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-144.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-145.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-146.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-147.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-148.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-149.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-15.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-150.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-151.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-152.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-153.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-155.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-156.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-157.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-158.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-159.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-16.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-160.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-161.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-162.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-163.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-164.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-165.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-166.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-167.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-168.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-169.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-17.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-170.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-171.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-172.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-173.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-174.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-175.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-176.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-177.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-178.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-179.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-18.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-180.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-181.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-182.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-183.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-184.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-185.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-186.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-187.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-188.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-189.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-19.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-190.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-191.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-192.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-193.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-194.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-195.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-196.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-197.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-198.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-199.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-2.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-20.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-200.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-201.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-202.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-203.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-204.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-205.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-206.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-207.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-208.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-209.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-21.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-210.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-211.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-212.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-213.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-214.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-215.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-216.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-217.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-218.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-219.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-22.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-220.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-221.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-222.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-223.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-224.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-225.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-226.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-227.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-228.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-229.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-230.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-231.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-232.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-233.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-234.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-235.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-236.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-237.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-238.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-239.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-24.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-240.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-241.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-242.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-243.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-244.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-245.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-246.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-247.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-248.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-249.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-25.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-250.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-251.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-252.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-253.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-254.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-255.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-256.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-257.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-258.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-259.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-26.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-260.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-261.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-262.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-263.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-264.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-265.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-266.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-267.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-268.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-269.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-27.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-270.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-271.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-272.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-273.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-274.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-275.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-276.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-277.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-278.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-279.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-28.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-280.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-281.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-282.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-283.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-284.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-285.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-286.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-287.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-288.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-289.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-29.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-290.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-291.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-292.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-293.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-294.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-295.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-296.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-297.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-298.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-299.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-3.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-30.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-300.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-301.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-302.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-303.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-304.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-305.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-306.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-307.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-308.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-309.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-31.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-310.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-311.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-312.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-313.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-314.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-32.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-33.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-34.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-35.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-36.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-37.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-38.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-38-1.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-39.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-4.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-40.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-41.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-42.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-43.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-44.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-45.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-46.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-47.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-48.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-49.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-5.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-50.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-51.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-52.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-53.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-54.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-55.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-56.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-57.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-58.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-59.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-6.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-60.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-61.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-62.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-63.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-64.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-65.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-66.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-66-1.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-67.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-68.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-69.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-7.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-70.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-71.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-72.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-73.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-74.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-75.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-76.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-77.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-78.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-79.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-8.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-80.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-81.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-82.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-83.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-84.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-84-1.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-85.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-86.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-86-1.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-87.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-88.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-89.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-9.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-90.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-91.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-92.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-93.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-93-1.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-93-2.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-93-3.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-93-4.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-94.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-95.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-96.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-97.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-98.js
+built-ins/Object/defineProperties/15.2.3.7-6-a-99.js
+built-ins/Object/defineProperty/15.2.3.6-0-1.js
+built-ins/Object/defineProperty/15.2.3.6-0-2.js
+built-ins/Object/defineProperty/15.2.3.6-1.js
+built-ins/Object/defineProperty/15.2.3.6-1-1.js
+built-ins/Object/defineProperty/15.2.3.6-1-2.js
+built-ins/Object/defineProperty/15.2.3.6-1-3.js
+built-ins/Object/defineProperty/15.2.3.6-1-4.js
+built-ins/Object/defineProperty/15.2.3.6-2-1.js
+built-ins/Object/defineProperty/15.2.3.6-2-10.js
+built-ins/Object/defineProperty/15.2.3.6-2-11.js
+built-ins/Object/defineProperty/15.2.3.6-2-12.js
+built-ins/Object/defineProperty/15.2.3.6-2-13.js
+built-ins/Object/defineProperty/15.2.3.6-2-14.js
+built-ins/Object/defineProperty/15.2.3.6-2-15.js
+built-ins/Object/defineProperty/15.2.3.6-2-16.js
+built-ins/Object/defineProperty/15.2.3.6-2-17.js
+built-ins/Object/defineProperty/15.2.3.6-2-17-1.js
+built-ins/Object/defineProperty/15.2.3.6-2-18.js
+built-ins/Object/defineProperty/15.2.3.6-2-19.js
+built-ins/Object/defineProperty/15.2.3.6-2-2.js
+built-ins/Object/defineProperty/15.2.3.6-2-20.js
+built-ins/Object/defineProperty/15.2.3.6-2-21.js
+built-ins/Object/defineProperty/15.2.3.6-2-22.js
+built-ins/Object/defineProperty/15.2.3.6-2-23.js
+built-ins/Object/defineProperty/15.2.3.6-2-24.js
+built-ins/Object/defineProperty/15.2.3.6-2-25.js
+built-ins/Object/defineProperty/15.2.3.6-2-26.js
+built-ins/Object/defineProperty/15.2.3.6-2-27.js
+built-ins/Object/defineProperty/15.2.3.6-2-28.js
+built-ins/Object/defineProperty/15.2.3.6-2-29.js
+built-ins/Object/defineProperty/15.2.3.6-2-3.js
+built-ins/Object/defineProperty/15.2.3.6-2-30.js
+built-ins/Object/defineProperty/15.2.3.6-2-31.js
+built-ins/Object/defineProperty/15.2.3.6-2-32.js
+built-ins/Object/defineProperty/15.2.3.6-2-33.js
+built-ins/Object/defineProperty/15.2.3.6-2-34.js
+built-ins/Object/defineProperty/15.2.3.6-2-35.js
+built-ins/Object/defineProperty/15.2.3.6-2-36.js
+built-ins/Object/defineProperty/15.2.3.6-2-37.js
+built-ins/Object/defineProperty/15.2.3.6-2-38.js
+built-ins/Object/defineProperty/15.2.3.6-2-39.js
+built-ins/Object/defineProperty/15.2.3.6-2-4.js
+built-ins/Object/defineProperty/15.2.3.6-2-40.js
+built-ins/Object/defineProperty/15.2.3.6-2-41.js
+built-ins/Object/defineProperty/15.2.3.6-2-42.js
+built-ins/Object/defineProperty/15.2.3.6-2-43.js
+built-ins/Object/defineProperty/15.2.3.6-2-44.js
+built-ins/Object/defineProperty/15.2.3.6-2-45.js
+built-ins/Object/defineProperty/15.2.3.6-2-46.js
+built-ins/Object/defineProperty/15.2.3.6-2-47.js
+built-ins/Object/defineProperty/15.2.3.6-2-48.js
+built-ins/Object/defineProperty/15.2.3.6-2-5.js
+built-ins/Object/defineProperty/15.2.3.6-2-6.js
+built-ins/Object/defineProperty/15.2.3.6-2-7.js
+built-ins/Object/defineProperty/15.2.3.6-2-8.js
+built-ins/Object/defineProperty/15.2.3.6-2-9.js
+built-ins/Object/defineProperty/15.2.3.6-3-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-10.js
+built-ins/Object/defineProperty/15.2.3.6-3-100.js
+built-ins/Object/defineProperty/15.2.3.6-3-101.js
+built-ins/Object/defineProperty/15.2.3.6-3-102.js
+built-ins/Object/defineProperty/15.2.3.6-3-103.js
+built-ins/Object/defineProperty/15.2.3.6-3-104.js
+built-ins/Object/defineProperty/15.2.3.6-3-105.js
+built-ins/Object/defineProperty/15.2.3.6-3-106.js
+built-ins/Object/defineProperty/15.2.3.6-3-107.js
+built-ins/Object/defineProperty/15.2.3.6-3-108.js
+built-ins/Object/defineProperty/15.2.3.6-3-109.js
+built-ins/Object/defineProperty/15.2.3.6-3-11.js
+built-ins/Object/defineProperty/15.2.3.6-3-110.js
+built-ins/Object/defineProperty/15.2.3.6-3-111.js
+built-ins/Object/defineProperty/15.2.3.6-3-112.js
+built-ins/Object/defineProperty/15.2.3.6-3-113.js
+built-ins/Object/defineProperty/15.2.3.6-3-114.js
+built-ins/Object/defineProperty/15.2.3.6-3-115.js
+built-ins/Object/defineProperty/15.2.3.6-3-116.js
+built-ins/Object/defineProperty/15.2.3.6-3-117.js
+built-ins/Object/defineProperty/15.2.3.6-3-118.js
+built-ins/Object/defineProperty/15.2.3.6-3-119.js
+built-ins/Object/defineProperty/15.2.3.6-3-12.js
+built-ins/Object/defineProperty/15.2.3.6-3-120.js
+built-ins/Object/defineProperty/15.2.3.6-3-121.js
+built-ins/Object/defineProperty/15.2.3.6-3-123.js
+built-ins/Object/defineProperty/15.2.3.6-3-124.js
+built-ins/Object/defineProperty/15.2.3.6-3-125.js
+built-ins/Object/defineProperty/15.2.3.6-3-126.js
+built-ins/Object/defineProperty/15.2.3.6-3-127.js
+built-ins/Object/defineProperty/15.2.3.6-3-129.js
+built-ins/Object/defineProperty/15.2.3.6-3-13.js
+built-ins/Object/defineProperty/15.2.3.6-3-130.js
+built-ins/Object/defineProperty/15.2.3.6-3-131.js
+built-ins/Object/defineProperty/15.2.3.6-3-132.js
+built-ins/Object/defineProperty/15.2.3.6-3-133.js
+built-ins/Object/defineProperty/15.2.3.6-3-134.js
+built-ins/Object/defineProperty/15.2.3.6-3-135.js
+built-ins/Object/defineProperty/15.2.3.6-3-136.js
+built-ins/Object/defineProperty/15.2.3.6-3-137.js
+built-ins/Object/defineProperty/15.2.3.6-3-138.js
+built-ins/Object/defineProperty/15.2.3.6-3-139.js
+built-ins/Object/defineProperty/15.2.3.6-3-139-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-14.js
+built-ins/Object/defineProperty/15.2.3.6-3-140.js
+built-ins/Object/defineProperty/15.2.3.6-3-140-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-141.js
+built-ins/Object/defineProperty/15.2.3.6-3-141-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-142.js
+built-ins/Object/defineProperty/15.2.3.6-3-142-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-143.js
+built-ins/Object/defineProperty/15.2.3.6-3-143-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-144.js
+built-ins/Object/defineProperty/15.2.3.6-3-144-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-145.js
+built-ins/Object/defineProperty/15.2.3.6-3-145-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-146.js
+built-ins/Object/defineProperty/15.2.3.6-3-146-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-147.js
+built-ins/Object/defineProperty/15.2.3.6-3-147-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-148.js
+built-ins/Object/defineProperty/15.2.3.6-3-148-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-149.js
+built-ins/Object/defineProperty/15.2.3.6-3-149-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-15.js
+built-ins/Object/defineProperty/15.2.3.6-3-151.js
+built-ins/Object/defineProperty/15.2.3.6-3-152.js
+built-ins/Object/defineProperty/15.2.3.6-3-153.js
+built-ins/Object/defineProperty/15.2.3.6-3-154.js
+built-ins/Object/defineProperty/15.2.3.6-3-155.js
+built-ins/Object/defineProperty/15.2.3.6-3-156.js
+built-ins/Object/defineProperty/15.2.3.6-3-157.js
+built-ins/Object/defineProperty/15.2.3.6-3-158.js
+built-ins/Object/defineProperty/15.2.3.6-3-159.js
+built-ins/Object/defineProperty/15.2.3.6-3-16.js
+built-ins/Object/defineProperty/15.2.3.6-3-160.js
+built-ins/Object/defineProperty/15.2.3.6-3-161.js
+built-ins/Object/defineProperty/15.2.3.6-3-162.js
+built-ins/Object/defineProperty/15.2.3.6-3-163.js
+built-ins/Object/defineProperty/15.2.3.6-3-164.js
+built-ins/Object/defineProperty/15.2.3.6-3-165.js
+built-ins/Object/defineProperty/15.2.3.6-3-165-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-166.js
+built-ins/Object/defineProperty/15.2.3.6-3-166-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-167.js
+built-ins/Object/defineProperty/15.2.3.6-3-167-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-168.js
+built-ins/Object/defineProperty/15.2.3.6-3-168-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-169.js
+built-ins/Object/defineProperty/15.2.3.6-3-169-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-17.js
+built-ins/Object/defineProperty/15.2.3.6-3-170.js
+built-ins/Object/defineProperty/15.2.3.6-3-170-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-171.js
+built-ins/Object/defineProperty/15.2.3.6-3-171-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-172.js
+built-ins/Object/defineProperty/15.2.3.6-3-172-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-173.js
+built-ins/Object/defineProperty/15.2.3.6-3-173-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-174.js
+built-ins/Object/defineProperty/15.2.3.6-3-174-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-175.js
+built-ins/Object/defineProperty/15.2.3.6-3-175-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-177.js
+built-ins/Object/defineProperty/15.2.3.6-3-178.js
+built-ins/Object/defineProperty/15.2.3.6-3-179.js
+built-ins/Object/defineProperty/15.2.3.6-3-18.js
+built-ins/Object/defineProperty/15.2.3.6-3-180.js
+built-ins/Object/defineProperty/15.2.3.6-3-181.js
+built-ins/Object/defineProperty/15.2.3.6-3-182.js
+built-ins/Object/defineProperty/15.2.3.6-3-183.js
+built-ins/Object/defineProperty/15.2.3.6-3-184.js
+built-ins/Object/defineProperty/15.2.3.6-3-185.js
+built-ins/Object/defineProperty/15.2.3.6-3-186.js
+built-ins/Object/defineProperty/15.2.3.6-3-187.js
+built-ins/Object/defineProperty/15.2.3.6-3-188.js
+built-ins/Object/defineProperty/15.2.3.6-3-189.js
+built-ins/Object/defineProperty/15.2.3.6-3-19.js
+built-ins/Object/defineProperty/15.2.3.6-3-190.js
+built-ins/Object/defineProperty/15.2.3.6-3-191.js
+built-ins/Object/defineProperty/15.2.3.6-3-192.js
+built-ins/Object/defineProperty/15.2.3.6-3-193.js
+built-ins/Object/defineProperty/15.2.3.6-3-194.js
+built-ins/Object/defineProperty/15.2.3.6-3-195.js
+built-ins/Object/defineProperty/15.2.3.6-3-196.js
+built-ins/Object/defineProperty/15.2.3.6-3-197.js
+built-ins/Object/defineProperty/15.2.3.6-3-198.js
+built-ins/Object/defineProperty/15.2.3.6-3-199.js
+built-ins/Object/defineProperty/15.2.3.6-3-2.js
+built-ins/Object/defineProperty/15.2.3.6-3-20.js
+built-ins/Object/defineProperty/15.2.3.6-3-200.js
+built-ins/Object/defineProperty/15.2.3.6-3-202.js
+built-ins/Object/defineProperty/15.2.3.6-3-203.js
+built-ins/Object/defineProperty/15.2.3.6-3-204.js
+built-ins/Object/defineProperty/15.2.3.6-3-205.js
+built-ins/Object/defineProperty/15.2.3.6-3-206.js
+built-ins/Object/defineProperty/15.2.3.6-3-207.js
+built-ins/Object/defineProperty/15.2.3.6-3-208.js
+built-ins/Object/defineProperty/15.2.3.6-3-209.js
+built-ins/Object/defineProperty/15.2.3.6-3-21.js
+built-ins/Object/defineProperty/15.2.3.6-3-210.js
+built-ins/Object/defineProperty/15.2.3.6-3-211.js
+built-ins/Object/defineProperty/15.2.3.6-3-212.js
+built-ins/Object/defineProperty/15.2.3.6-3-213.js
+built-ins/Object/defineProperty/15.2.3.6-3-214.js
+built-ins/Object/defineProperty/15.2.3.6-3-215.js
+built-ins/Object/defineProperty/15.2.3.6-3-216.js
+built-ins/Object/defineProperty/15.2.3.6-3-217.js
+built-ins/Object/defineProperty/15.2.3.6-3-218.js
+built-ins/Object/defineProperty/15.2.3.6-3-218-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-219.js
+built-ins/Object/defineProperty/15.2.3.6-3-219-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-22.js
+built-ins/Object/defineProperty/15.2.3.6-3-220.js
+built-ins/Object/defineProperty/15.2.3.6-3-220-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-221.js
+built-ins/Object/defineProperty/15.2.3.6-3-221-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-222.js
+built-ins/Object/defineProperty/15.2.3.6-3-222-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-223.js
+built-ins/Object/defineProperty/15.2.3.6-3-223-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-224.js
+built-ins/Object/defineProperty/15.2.3.6-3-224-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-225.js
+built-ins/Object/defineProperty/15.2.3.6-3-225-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-226.js
+built-ins/Object/defineProperty/15.2.3.6-3-226-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-227.js
+built-ins/Object/defineProperty/15.2.3.6-3-227-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-228.js
+built-ins/Object/defineProperty/15.2.3.6-3-228-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-23.js
+built-ins/Object/defineProperty/15.2.3.6-3-230.js
+built-ins/Object/defineProperty/15.2.3.6-3-231.js
+built-ins/Object/defineProperty/15.2.3.6-3-232.js
+built-ins/Object/defineProperty/15.2.3.6-3-235.js
+built-ins/Object/defineProperty/15.2.3.6-3-236.js
+built-ins/Object/defineProperty/15.2.3.6-3-237.js
+built-ins/Object/defineProperty/15.2.3.6-3-238.js
+built-ins/Object/defineProperty/15.2.3.6-3-239.js
+built-ins/Object/defineProperty/15.2.3.6-3-24.js
+built-ins/Object/defineProperty/15.2.3.6-3-240.js
+built-ins/Object/defineProperty/15.2.3.6-3-241.js
+built-ins/Object/defineProperty/15.2.3.6-3-242.js
+built-ins/Object/defineProperty/15.2.3.6-3-243.js
+built-ins/Object/defineProperty/15.2.3.6-3-244.js
+built-ins/Object/defineProperty/15.2.3.6-3-245.js
+built-ins/Object/defineProperty/15.2.3.6-3-246.js
+built-ins/Object/defineProperty/15.2.3.6-3-247.js
+built-ins/Object/defineProperty/15.2.3.6-3-248.js
+built-ins/Object/defineProperty/15.2.3.6-3-248-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-249.js
+built-ins/Object/defineProperty/15.2.3.6-3-249-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-25.js
+built-ins/Object/defineProperty/15.2.3.6-3-250.js
+built-ins/Object/defineProperty/15.2.3.6-3-250-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-251.js
+built-ins/Object/defineProperty/15.2.3.6-3-251-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-252.js
+built-ins/Object/defineProperty/15.2.3.6-3-252-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-253.js
+built-ins/Object/defineProperty/15.2.3.6-3-253-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-254.js
+built-ins/Object/defineProperty/15.2.3.6-3-254-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-255.js
+built-ins/Object/defineProperty/15.2.3.6-3-255-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-256.js
+built-ins/Object/defineProperty/15.2.3.6-3-256-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-257.js
+built-ins/Object/defineProperty/15.2.3.6-3-257-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-258.js
+built-ins/Object/defineProperty/15.2.3.6-3-258-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-26.js
+built-ins/Object/defineProperty/15.2.3.6-3-260.js
+built-ins/Object/defineProperty/15.2.3.6-3-261.js
+built-ins/Object/defineProperty/15.2.3.6-3-262.js
+built-ins/Object/defineProperty/15.2.3.6-3-27.js
+built-ins/Object/defineProperty/15.2.3.6-3-28.js
+built-ins/Object/defineProperty/15.2.3.6-3-29.js
+built-ins/Object/defineProperty/15.2.3.6-3-3.js
+built-ins/Object/defineProperty/15.2.3.6-3-30.js
+built-ins/Object/defineProperty/15.2.3.6-3-31.js
+built-ins/Object/defineProperty/15.2.3.6-3-32.js
+built-ins/Object/defineProperty/15.2.3.6-3-33.js
+built-ins/Object/defineProperty/15.2.3.6-3-33-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-34.js
+built-ins/Object/defineProperty/15.2.3.6-3-34-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-35.js
+built-ins/Object/defineProperty/15.2.3.6-3-35-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-36.js
+built-ins/Object/defineProperty/15.2.3.6-3-36-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-37.js
+built-ins/Object/defineProperty/15.2.3.6-3-37-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-38.js
+built-ins/Object/defineProperty/15.2.3.6-3-38-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-39.js
+built-ins/Object/defineProperty/15.2.3.6-3-39-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-4.js
+built-ins/Object/defineProperty/15.2.3.6-3-40.js
+built-ins/Object/defineProperty/15.2.3.6-3-40-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-41.js
+built-ins/Object/defineProperty/15.2.3.6-3-41-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-42.js
+built-ins/Object/defineProperty/15.2.3.6-3-42-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-43.js
+built-ins/Object/defineProperty/15.2.3.6-3-43-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-45.js
+built-ins/Object/defineProperty/15.2.3.6-3-46.js
+built-ins/Object/defineProperty/15.2.3.6-3-47.js
+built-ins/Object/defineProperty/15.2.3.6-3-48.js
+built-ins/Object/defineProperty/15.2.3.6-3-49.js
+built-ins/Object/defineProperty/15.2.3.6-3-5.js
+built-ins/Object/defineProperty/15.2.3.6-3-50.js
+built-ins/Object/defineProperty/15.2.3.6-3-51.js
+built-ins/Object/defineProperty/15.2.3.6-3-52.js
+built-ins/Object/defineProperty/15.2.3.6-3-53.js
+built-ins/Object/defineProperty/15.2.3.6-3-54.js
+built-ins/Object/defineProperty/15.2.3.6-3-55.js
+built-ins/Object/defineProperty/15.2.3.6-3-56.js
+built-ins/Object/defineProperty/15.2.3.6-3-57.js
+built-ins/Object/defineProperty/15.2.3.6-3-58.js
+built-ins/Object/defineProperty/15.2.3.6-3-59.js
+built-ins/Object/defineProperty/15.2.3.6-3-6.js
+built-ins/Object/defineProperty/15.2.3.6-3-60.js
+built-ins/Object/defineProperty/15.2.3.6-3-61.js
+built-ins/Object/defineProperty/15.2.3.6-3-62.js
+built-ins/Object/defineProperty/15.2.3.6-3-63.js
+built-ins/Object/defineProperty/15.2.3.6-3-64.js
+built-ins/Object/defineProperty/15.2.3.6-3-65.js
+built-ins/Object/defineProperty/15.2.3.6-3-66.js
+built-ins/Object/defineProperty/15.2.3.6-3-67.js
+built-ins/Object/defineProperty/15.2.3.6-3-68.js
+built-ins/Object/defineProperty/15.2.3.6-3-7.js
+built-ins/Object/defineProperty/15.2.3.6-3-70.js
+built-ins/Object/defineProperty/15.2.3.6-3-71.js
+built-ins/Object/defineProperty/15.2.3.6-3-72.js
+built-ins/Object/defineProperty/15.2.3.6-3-73.js
+built-ins/Object/defineProperty/15.2.3.6-3-74.js
+built-ins/Object/defineProperty/15.2.3.6-3-75.js
+built-ins/Object/defineProperty/15.2.3.6-3-76.js
+built-ins/Object/defineProperty/15.2.3.6-3-77.js
+built-ins/Object/defineProperty/15.2.3.6-3-78.js
+built-ins/Object/defineProperty/15.2.3.6-3-79.js
+built-ins/Object/defineProperty/15.2.3.6-3-8.js
+built-ins/Object/defineProperty/15.2.3.6-3-80.js
+built-ins/Object/defineProperty/15.2.3.6-3-81.js
+built-ins/Object/defineProperty/15.2.3.6-3-82.js
+built-ins/Object/defineProperty/15.2.3.6-3-83.js
+built-ins/Object/defineProperty/15.2.3.6-3-84.js
+built-ins/Object/defineProperty/15.2.3.6-3-85.js
+built-ins/Object/defineProperty/15.2.3.6-3-86.js
+built-ins/Object/defineProperty/15.2.3.6-3-86-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-87.js
+built-ins/Object/defineProperty/15.2.3.6-3-87-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-88.js
+built-ins/Object/defineProperty/15.2.3.6-3-88-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-89.js
+built-ins/Object/defineProperty/15.2.3.6-3-89-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-9.js
+built-ins/Object/defineProperty/15.2.3.6-3-90.js
+built-ins/Object/defineProperty/15.2.3.6-3-90-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-91.js
+built-ins/Object/defineProperty/15.2.3.6-3-91-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-92.js
+built-ins/Object/defineProperty/15.2.3.6-3-92-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-93.js
+built-ins/Object/defineProperty/15.2.3.6-3-93-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-94.js
+built-ins/Object/defineProperty/15.2.3.6-3-94-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-95.js
+built-ins/Object/defineProperty/15.2.3.6-3-95-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-96.js
+built-ins/Object/defineProperty/15.2.3.6-3-96-1.js
+built-ins/Object/defineProperty/15.2.3.6-3-98.js
+built-ins/Object/defineProperty/15.2.3.6-3-99.js
+built-ins/Object/defineProperty/15.2.3.6-4-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-10.js
+built-ins/Object/defineProperty/15.2.3.6-4-100.js
+built-ins/Object/defineProperty/15.2.3.6-4-101.js
+built-ins/Object/defineProperty/15.2.3.6-4-102.js
+built-ins/Object/defineProperty/15.2.3.6-4-103.js
+built-ins/Object/defineProperty/15.2.3.6-4-104.js
+built-ins/Object/defineProperty/15.2.3.6-4-105.js
+built-ins/Object/defineProperty/15.2.3.6-4-106.js
+built-ins/Object/defineProperty/15.2.3.6-4-107.js
+built-ins/Object/defineProperty/15.2.3.6-4-108.js
+built-ins/Object/defineProperty/15.2.3.6-4-109.js
+built-ins/Object/defineProperty/15.2.3.6-4-11.js
+built-ins/Object/defineProperty/15.2.3.6-4-110.js
+built-ins/Object/defineProperty/15.2.3.6-4-111.js
+built-ins/Object/defineProperty/15.2.3.6-4-112.js
+built-ins/Object/defineProperty/15.2.3.6-4-113.js
+built-ins/Object/defineProperty/15.2.3.6-4-114.js
+built-ins/Object/defineProperty/15.2.3.6-4-115.js
+built-ins/Object/defineProperty/15.2.3.6-4-116.js
+built-ins/Object/defineProperty/15.2.3.6-4-117.js
+built-ins/Object/defineProperty/15.2.3.6-4-118.js
+built-ins/Object/defineProperty/15.2.3.6-4-119.js
+built-ins/Object/defineProperty/15.2.3.6-4-12.js
+built-ins/Object/defineProperty/15.2.3.6-4-120.js
+built-ins/Object/defineProperty/15.2.3.6-4-121.js
+built-ins/Object/defineProperty/15.2.3.6-4-122.js
+built-ins/Object/defineProperty/15.2.3.6-4-123.js
+built-ins/Object/defineProperty/15.2.3.6-4-124.js
+built-ins/Object/defineProperty/15.2.3.6-4-125.js
+built-ins/Object/defineProperty/15.2.3.6-4-126.js
+built-ins/Object/defineProperty/15.2.3.6-4-127.js
+built-ins/Object/defineProperty/15.2.3.6-4-128.js
+built-ins/Object/defineProperty/15.2.3.6-4-129.js
+built-ins/Object/defineProperty/15.2.3.6-4-13.js
+built-ins/Object/defineProperty/15.2.3.6-4-130.js
+built-ins/Object/defineProperty/15.2.3.6-4-131.js
+built-ins/Object/defineProperty/15.2.3.6-4-132.js
+built-ins/Object/defineProperty/15.2.3.6-4-133.js
+built-ins/Object/defineProperty/15.2.3.6-4-134.js
+built-ins/Object/defineProperty/15.2.3.6-4-135.js
+built-ins/Object/defineProperty/15.2.3.6-4-136.js
+built-ins/Object/defineProperty/15.2.3.6-4-137.js
+built-ins/Object/defineProperty/15.2.3.6-4-138.js
+built-ins/Object/defineProperty/15.2.3.6-4-139.js
+built-ins/Object/defineProperty/15.2.3.6-4-14.js
+built-ins/Object/defineProperty/15.2.3.6-4-140.js
+built-ins/Object/defineProperty/15.2.3.6-4-141.js
+built-ins/Object/defineProperty/15.2.3.6-4-142.js
+built-ins/Object/defineProperty/15.2.3.6-4-143.js
+built-ins/Object/defineProperty/15.2.3.6-4-144.js
+built-ins/Object/defineProperty/15.2.3.6-4-145.js
+built-ins/Object/defineProperty/15.2.3.6-4-146.js
+built-ins/Object/defineProperty/15.2.3.6-4-147.js
+built-ins/Object/defineProperty/15.2.3.6-4-148.js
+built-ins/Object/defineProperty/15.2.3.6-4-149.js
+built-ins/Object/defineProperty/15.2.3.6-4-15.js
+built-ins/Object/defineProperty/15.2.3.6-4-150.js
+built-ins/Object/defineProperty/15.2.3.6-4-151.js
+built-ins/Object/defineProperty/15.2.3.6-4-152.js
+built-ins/Object/defineProperty/15.2.3.6-4-153.js
+built-ins/Object/defineProperty/15.2.3.6-4-154.js
+built-ins/Object/defineProperty/15.2.3.6-4-155.js
+built-ins/Object/defineProperty/15.2.3.6-4-156.js
+built-ins/Object/defineProperty/15.2.3.6-4-157.js
+built-ins/Object/defineProperty/15.2.3.6-4-159.js
+built-ins/Object/defineProperty/15.2.3.6-4-16.js
+built-ins/Object/defineProperty/15.2.3.6-4-160.js
+built-ins/Object/defineProperty/15.2.3.6-4-161.js
+built-ins/Object/defineProperty/15.2.3.6-4-162.js
+built-ins/Object/defineProperty/15.2.3.6-4-163.js
+built-ins/Object/defineProperty/15.2.3.6-4-164.js
+built-ins/Object/defineProperty/15.2.3.6-4-165.js
+built-ins/Object/defineProperty/15.2.3.6-4-166.js
+built-ins/Object/defineProperty/15.2.3.6-4-167.js
+built-ins/Object/defineProperty/15.2.3.6-4-168.js
+built-ins/Object/defineProperty/15.2.3.6-4-169.js
+built-ins/Object/defineProperty/15.2.3.6-4-17.js
+built-ins/Object/defineProperty/15.2.3.6-4-170.js
+built-ins/Object/defineProperty/15.2.3.6-4-171.js
+built-ins/Object/defineProperty/15.2.3.6-4-172.js
+built-ins/Object/defineProperty/15.2.3.6-4-173.js
+built-ins/Object/defineProperty/15.2.3.6-4-174.js
+built-ins/Object/defineProperty/15.2.3.6-4-175.js
+built-ins/Object/defineProperty/15.2.3.6-4-176.js
+built-ins/Object/defineProperty/15.2.3.6-4-177.js
+built-ins/Object/defineProperty/15.2.3.6-4-178.js
+built-ins/Object/defineProperty/15.2.3.6-4-179-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-18.js
+built-ins/Object/defineProperty/15.2.3.6-4-181.js
+built-ins/Object/defineProperty/15.2.3.6-4-182.js
+built-ins/Object/defineProperty/15.2.3.6-4-183.js
+built-ins/Object/defineProperty/15.2.3.6-4-184.js
+built-ins/Object/defineProperty/15.2.3.6-4-185.js
+built-ins/Object/defineProperty/15.2.3.6-4-186.js
+built-ins/Object/defineProperty/15.2.3.6-4-187.js
+built-ins/Object/defineProperty/15.2.3.6-4-188.js
+built-ins/Object/defineProperty/15.2.3.6-4-189.js
+built-ins/Object/defineProperty/15.2.3.6-4-19.js
+built-ins/Object/defineProperty/15.2.3.6-4-190.js
+built-ins/Object/defineProperty/15.2.3.6-4-191.js
+built-ins/Object/defineProperty/15.2.3.6-4-192.js
+built-ins/Object/defineProperty/15.2.3.6-4-193.js
+built-ins/Object/defineProperty/15.2.3.6-4-194.js
+built-ins/Object/defineProperty/15.2.3.6-4-195.js
+built-ins/Object/defineProperty/15.2.3.6-4-196.js
+built-ins/Object/defineProperty/15.2.3.6-4-197.js
+built-ins/Object/defineProperty/15.2.3.6-4-198.js
+built-ins/Object/defineProperty/15.2.3.6-4-199.js
+built-ins/Object/defineProperty/15.2.3.6-4-2.js
+built-ins/Object/defineProperty/15.2.3.6-4-20.js
+built-ins/Object/defineProperty/15.2.3.6-4-200.js
+built-ins/Object/defineProperty/15.2.3.6-4-201.js
+built-ins/Object/defineProperty/15.2.3.6-4-202.js
+built-ins/Object/defineProperty/15.2.3.6-4-203.js
+built-ins/Object/defineProperty/15.2.3.6-4-204.js
+built-ins/Object/defineProperty/15.2.3.6-4-205.js
+built-ins/Object/defineProperty/15.2.3.6-4-206.js
+built-ins/Object/defineProperty/15.2.3.6-4-207.js
+built-ins/Object/defineProperty/15.2.3.6-4-208.js
+built-ins/Object/defineProperty/15.2.3.6-4-209.js
+built-ins/Object/defineProperty/15.2.3.6-4-21.js
+built-ins/Object/defineProperty/15.2.3.6-4-210.js
+built-ins/Object/defineProperty/15.2.3.6-4-211.js
+built-ins/Object/defineProperty/15.2.3.6-4-212.js
+built-ins/Object/defineProperty/15.2.3.6-4-213.js
+built-ins/Object/defineProperty/15.2.3.6-4-214.js
+built-ins/Object/defineProperty/15.2.3.6-4-215.js
+built-ins/Object/defineProperty/15.2.3.6-4-216.js
+built-ins/Object/defineProperty/15.2.3.6-4-217.js
+built-ins/Object/defineProperty/15.2.3.6-4-218.js
+built-ins/Object/defineProperty/15.2.3.6-4-219.js
+built-ins/Object/defineProperty/15.2.3.6-4-22.js
+built-ins/Object/defineProperty/15.2.3.6-4-220.js
+built-ins/Object/defineProperty/15.2.3.6-4-221.js
+built-ins/Object/defineProperty/15.2.3.6-4-222.js
+built-ins/Object/defineProperty/15.2.3.6-4-223.js
+built-ins/Object/defineProperty/15.2.3.6-4-224.js
+built-ins/Object/defineProperty/15.2.3.6-4-225.js
+built-ins/Object/defineProperty/15.2.3.6-4-226.js
+built-ins/Object/defineProperty/15.2.3.6-4-227.js
+built-ins/Object/defineProperty/15.2.3.6-4-228.js
+built-ins/Object/defineProperty/15.2.3.6-4-229.js
+built-ins/Object/defineProperty/15.2.3.6-4-23.js
+built-ins/Object/defineProperty/15.2.3.6-4-230.js
+built-ins/Object/defineProperty/15.2.3.6-4-231.js
+built-ins/Object/defineProperty/15.2.3.6-4-232.js
+built-ins/Object/defineProperty/15.2.3.6-4-233.js
+built-ins/Object/defineProperty/15.2.3.6-4-234.js
+built-ins/Object/defineProperty/15.2.3.6-4-235.js
+built-ins/Object/defineProperty/15.2.3.6-4-236.js
+built-ins/Object/defineProperty/15.2.3.6-4-237.js
+built-ins/Object/defineProperty/15.2.3.6-4-238.js
+built-ins/Object/defineProperty/15.2.3.6-4-239.js
+built-ins/Object/defineProperty/15.2.3.6-4-24.js
+built-ins/Object/defineProperty/15.2.3.6-4-240.js
+built-ins/Object/defineProperty/15.2.3.6-4-241.js
+built-ins/Object/defineProperty/15.2.3.6-4-242.js
+built-ins/Object/defineProperty/15.2.3.6-4-242-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-243.js
+built-ins/Object/defineProperty/15.2.3.6-4-243-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-243-2.js
+built-ins/Object/defineProperty/15.2.3.6-4-244.js
+built-ins/Object/defineProperty/15.2.3.6-4-245.js
+built-ins/Object/defineProperty/15.2.3.6-4-246.js
+built-ins/Object/defineProperty/15.2.3.6-4-247.js
+built-ins/Object/defineProperty/15.2.3.6-4-248.js
+built-ins/Object/defineProperty/15.2.3.6-4-249.js
+built-ins/Object/defineProperty/15.2.3.6-4-25.js
+built-ins/Object/defineProperty/15.2.3.6-4-250.js
+built-ins/Object/defineProperty/15.2.3.6-4-251.js
+built-ins/Object/defineProperty/15.2.3.6-4-252.js
+built-ins/Object/defineProperty/15.2.3.6-4-253.js
+built-ins/Object/defineProperty/15.2.3.6-4-254.js
+built-ins/Object/defineProperty/15.2.3.6-4-255.js
+built-ins/Object/defineProperty/15.2.3.6-4-256.js
+built-ins/Object/defineProperty/15.2.3.6-4-257.js
+built-ins/Object/defineProperty/15.2.3.6-4-258.js
+built-ins/Object/defineProperty/15.2.3.6-4-259.js
+built-ins/Object/defineProperty/15.2.3.6-4-26.js
+built-ins/Object/defineProperty/15.2.3.6-4-260.js
+built-ins/Object/defineProperty/15.2.3.6-4-261.js
+built-ins/Object/defineProperty/15.2.3.6-4-262.js
+built-ins/Object/defineProperty/15.2.3.6-4-263.js
+built-ins/Object/defineProperty/15.2.3.6-4-264.js
+built-ins/Object/defineProperty/15.2.3.6-4-265.js
+built-ins/Object/defineProperty/15.2.3.6-4-266.js
+built-ins/Object/defineProperty/15.2.3.6-4-267.js
+built-ins/Object/defineProperty/15.2.3.6-4-268.js
+built-ins/Object/defineProperty/15.2.3.6-4-269.js
+built-ins/Object/defineProperty/15.2.3.6-4-27.js
+built-ins/Object/defineProperty/15.2.3.6-4-270.js
+built-ins/Object/defineProperty/15.2.3.6-4-271.js
+built-ins/Object/defineProperty/15.2.3.6-4-272.js
+built-ins/Object/defineProperty/15.2.3.6-4-273.js
+built-ins/Object/defineProperty/15.2.3.6-4-274.js
+built-ins/Object/defineProperty/15.2.3.6-4-275.js
+built-ins/Object/defineProperty/15.2.3.6-4-276.js
+built-ins/Object/defineProperty/15.2.3.6-4-277.js
+built-ins/Object/defineProperty/15.2.3.6-4-278.js
+built-ins/Object/defineProperty/15.2.3.6-4-279.js
+built-ins/Object/defineProperty/15.2.3.6-4-28.js
+built-ins/Object/defineProperty/15.2.3.6-4-280.js
+built-ins/Object/defineProperty/15.2.3.6-4-281.js
+built-ins/Object/defineProperty/15.2.3.6-4-282.js
+built-ins/Object/defineProperty/15.2.3.6-4-283.js
+built-ins/Object/defineProperty/15.2.3.6-4-284.js
+built-ins/Object/defineProperty/15.2.3.6-4-285.js
+built-ins/Object/defineProperty/15.2.3.6-4-286.js
+built-ins/Object/defineProperty/15.2.3.6-4-287.js
+built-ins/Object/defineProperty/15.2.3.6-4-288.js
+built-ins/Object/defineProperty/15.2.3.6-4-289.js
+built-ins/Object/defineProperty/15.2.3.6-4-289-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-29.js
+built-ins/Object/defineProperty/15.2.3.6-4-290.js
+built-ins/Object/defineProperty/15.2.3.6-4-290-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-291.js
+built-ins/Object/defineProperty/15.2.3.6-4-291-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-292.js
+built-ins/Object/defineProperty/15.2.3.6-4-292-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-292-2.js
+built-ins/Object/defineProperty/15.2.3.6-4-293.js
+built-ins/Object/defineProperty/15.2.3.6-4-293-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-293-2.js
+built-ins/Object/defineProperty/15.2.3.6-4-293-3.js
+built-ins/Object/defineProperty/15.2.3.6-4-293-4.js
+built-ins/Object/defineProperty/15.2.3.6-4-294.js
+built-ins/Object/defineProperty/15.2.3.6-4-294-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-295.js
+built-ins/Object/defineProperty/15.2.3.6-4-295-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-296.js
+built-ins/Object/defineProperty/15.2.3.6-4-296-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-297.js
+built-ins/Object/defineProperty/15.2.3.6-4-297-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-298.js
+built-ins/Object/defineProperty/15.2.3.6-4-298-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-299.js
+built-ins/Object/defineProperty/15.2.3.6-4-299-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-3.js
+built-ins/Object/defineProperty/15.2.3.6-4-30.js
+built-ins/Object/defineProperty/15.2.3.6-4-300.js
+built-ins/Object/defineProperty/15.2.3.6-4-300-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-301.js
+built-ins/Object/defineProperty/15.2.3.6-4-301-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-302.js
+built-ins/Object/defineProperty/15.2.3.6-4-302-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-303.js
+built-ins/Object/defineProperty/15.2.3.6-4-304.js
+built-ins/Object/defineProperty/15.2.3.6-4-305.js
+built-ins/Object/defineProperty/15.2.3.6-4-306.js
+built-ins/Object/defineProperty/15.2.3.6-4-307.js
+built-ins/Object/defineProperty/15.2.3.6-4-308.js
+built-ins/Object/defineProperty/15.2.3.6-4-309.js
+built-ins/Object/defineProperty/15.2.3.6-4-31.js
+built-ins/Object/defineProperty/15.2.3.6-4-310.js
+built-ins/Object/defineProperty/15.2.3.6-4-311.js
+built-ins/Object/defineProperty/15.2.3.6-4-312.js
+built-ins/Object/defineProperty/15.2.3.6-4-313.js
+built-ins/Object/defineProperty/15.2.3.6-4-313-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-314.js
+built-ins/Object/defineProperty/15.2.3.6-4-314-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-315.js
+built-ins/Object/defineProperty/15.2.3.6-4-315-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-316.js
+built-ins/Object/defineProperty/15.2.3.6-4-316-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-317.js
+built-ins/Object/defineProperty/15.2.3.6-4-317-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-318.js
+built-ins/Object/defineProperty/15.2.3.6-4-318-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-319.js
+built-ins/Object/defineProperty/15.2.3.6-4-319-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-32.js
+built-ins/Object/defineProperty/15.2.3.6-4-320.js
+built-ins/Object/defineProperty/15.2.3.6-4-320-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-321.js
+built-ins/Object/defineProperty/15.2.3.6-4-321-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-322.js
+built-ins/Object/defineProperty/15.2.3.6-4-322-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-323.js
+built-ins/Object/defineProperty/15.2.3.6-4-323-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-324.js
+built-ins/Object/defineProperty/15.2.3.6-4-324-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-325.js
+built-ins/Object/defineProperty/15.2.3.6-4-325-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-326.js
+built-ins/Object/defineProperty/15.2.3.6-4-327.js
+built-ins/Object/defineProperty/15.2.3.6-4-328.js
+built-ins/Object/defineProperty/15.2.3.6-4-329.js
+built-ins/Object/defineProperty/15.2.3.6-4-33.js
+built-ins/Object/defineProperty/15.2.3.6-4-330.js
+built-ins/Object/defineProperty/15.2.3.6-4-331.js
+built-ins/Object/defineProperty/15.2.3.6-4-332.js
+built-ins/Object/defineProperty/15.2.3.6-4-333.js
+built-ins/Object/defineProperty/15.2.3.6-4-333-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-333-10.js
+built-ins/Object/defineProperty/15.2.3.6-4-333-11.js
+built-ins/Object/defineProperty/15.2.3.6-4-333-2.js
+built-ins/Object/defineProperty/15.2.3.6-4-333-3.js
+built-ins/Object/defineProperty/15.2.3.6-4-333-4.js
+built-ins/Object/defineProperty/15.2.3.6-4-333-5.js
+built-ins/Object/defineProperty/15.2.3.6-4-333-6.js
+built-ins/Object/defineProperty/15.2.3.6-4-333-7.js
+built-ins/Object/defineProperty/15.2.3.6-4-333-8.js
+built-ins/Object/defineProperty/15.2.3.6-4-333-9.js
+built-ins/Object/defineProperty/15.2.3.6-4-334.js
+built-ins/Object/defineProperty/15.2.3.6-4-335.js
+built-ins/Object/defineProperty/15.2.3.6-4-336.js
+built-ins/Object/defineProperty/15.2.3.6-4-337.js
+built-ins/Object/defineProperty/15.2.3.6-4-338.js
+built-ins/Object/defineProperty/15.2.3.6-4-339.js
+built-ins/Object/defineProperty/15.2.3.6-4-339-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-339-2.js
+built-ins/Object/defineProperty/15.2.3.6-4-339-3.js
+built-ins/Object/defineProperty/15.2.3.6-4-339-4.js
+built-ins/Object/defineProperty/15.2.3.6-4-34.js
+built-ins/Object/defineProperty/15.2.3.6-4-340.js
+built-ins/Object/defineProperty/15.2.3.6-4-341.js
+built-ins/Object/defineProperty/15.2.3.6-4-342.js
+built-ins/Object/defineProperty/15.2.3.6-4-343.js
+built-ins/Object/defineProperty/15.2.3.6-4-344.js
+built-ins/Object/defineProperty/15.2.3.6-4-345.js
+built-ins/Object/defineProperty/15.2.3.6-4-346.js
+built-ins/Object/defineProperty/15.2.3.6-4-347.js
+built-ins/Object/defineProperty/15.2.3.6-4-348.js
+built-ins/Object/defineProperty/15.2.3.6-4-349.js
+built-ins/Object/defineProperty/15.2.3.6-4-35.js
+built-ins/Object/defineProperty/15.2.3.6-4-350.js
+built-ins/Object/defineProperty/15.2.3.6-4-351.js
+built-ins/Object/defineProperty/15.2.3.6-4-352.js
+built-ins/Object/defineProperty/15.2.3.6-4-353.js
+built-ins/Object/defineProperty/15.2.3.6-4-354.js
+built-ins/Object/defineProperty/15.2.3.6-4-354-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-354-10.js
+built-ins/Object/defineProperty/15.2.3.6-4-354-11.js
+built-ins/Object/defineProperty/15.2.3.6-4-354-12.js
+built-ins/Object/defineProperty/15.2.3.6-4-354-15.js
+built-ins/Object/defineProperty/15.2.3.6-4-354-16.js
+built-ins/Object/defineProperty/15.2.3.6-4-354-2.js
+built-ins/Object/defineProperty/15.2.3.6-4-354-3.js
+built-ins/Object/defineProperty/15.2.3.6-4-354-6.js
+built-ins/Object/defineProperty/15.2.3.6-4-354-7.js
+built-ins/Object/defineProperty/15.2.3.6-4-355.js
+built-ins/Object/defineProperty/15.2.3.6-4-356.js
+built-ins/Object/defineProperty/15.2.3.6-4-357.js
+built-ins/Object/defineProperty/15.2.3.6-4-358.js
+built-ins/Object/defineProperty/15.2.3.6-4-359.js
+built-ins/Object/defineProperty/15.2.3.6-4-36.js
+built-ins/Object/defineProperty/15.2.3.6-4-360.js
+built-ins/Object/defineProperty/15.2.3.6-4-360-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-360-2.js
+built-ins/Object/defineProperty/15.2.3.6-4-360-5.js
+built-ins/Object/defineProperty/15.2.3.6-4-360-6.js
+built-ins/Object/defineProperty/15.2.3.6-4-361.js
+built-ins/Object/defineProperty/15.2.3.6-4-362.js
+built-ins/Object/defineProperty/15.2.3.6-4-363.js
+built-ins/Object/defineProperty/15.2.3.6-4-364.js
+built-ins/Object/defineProperty/15.2.3.6-4-365.js
+built-ins/Object/defineProperty/15.2.3.6-4-366.js
+built-ins/Object/defineProperty/15.2.3.6-4-367.js
+built-ins/Object/defineProperty/15.2.3.6-4-368.js
+built-ins/Object/defineProperty/15.2.3.6-4-369.js
+built-ins/Object/defineProperty/15.2.3.6-4-37.js
+built-ins/Object/defineProperty/15.2.3.6-4-370.js
+built-ins/Object/defineProperty/15.2.3.6-4-371.js
+built-ins/Object/defineProperty/15.2.3.6-4-372.js
+built-ins/Object/defineProperty/15.2.3.6-4-373.js
+built-ins/Object/defineProperty/15.2.3.6-4-374.js
+built-ins/Object/defineProperty/15.2.3.6-4-375.js
+built-ins/Object/defineProperty/15.2.3.6-4-376.js
+built-ins/Object/defineProperty/15.2.3.6-4-377.js
+built-ins/Object/defineProperty/15.2.3.6-4-378.js
+built-ins/Object/defineProperty/15.2.3.6-4-379.js
+built-ins/Object/defineProperty/15.2.3.6-4-38.js
+built-ins/Object/defineProperty/15.2.3.6-4-380.js
+built-ins/Object/defineProperty/15.2.3.6-4-381.js
+built-ins/Object/defineProperty/15.2.3.6-4-382.js
+built-ins/Object/defineProperty/15.2.3.6-4-383.js
+built-ins/Object/defineProperty/15.2.3.6-4-384.js
+built-ins/Object/defineProperty/15.2.3.6-4-385.js
+built-ins/Object/defineProperty/15.2.3.6-4-386.js
+built-ins/Object/defineProperty/15.2.3.6-4-387.js
+built-ins/Object/defineProperty/15.2.3.6-4-388.js
+built-ins/Object/defineProperty/15.2.3.6-4-389.js
+built-ins/Object/defineProperty/15.2.3.6-4-39.js
+built-ins/Object/defineProperty/15.2.3.6-4-390.js
+built-ins/Object/defineProperty/15.2.3.6-4-391.js
+built-ins/Object/defineProperty/15.2.3.6-4-392.js
+built-ins/Object/defineProperty/15.2.3.6-4-393.js
+built-ins/Object/defineProperty/15.2.3.6-4-394.js
+built-ins/Object/defineProperty/15.2.3.6-4-395.js
+built-ins/Object/defineProperty/15.2.3.6-4-396.js
+built-ins/Object/defineProperty/15.2.3.6-4-397.js
+built-ins/Object/defineProperty/15.2.3.6-4-398.js
+built-ins/Object/defineProperty/15.2.3.6-4-399.js
+built-ins/Object/defineProperty/15.2.3.6-4-4.js
+built-ins/Object/defineProperty/15.2.3.6-4-40.js
+built-ins/Object/defineProperty/15.2.3.6-4-402.js
+built-ins/Object/defineProperty/15.2.3.6-4-403.js
+built-ins/Object/defineProperty/15.2.3.6-4-404.js
+built-ins/Object/defineProperty/15.2.3.6-4-405.js
+built-ins/Object/defineProperty/15.2.3.6-4-406.js
+built-ins/Object/defineProperty/15.2.3.6-4-407.js
+built-ins/Object/defineProperty/15.2.3.6-4-408.js
+built-ins/Object/defineProperty/15.2.3.6-4-409.js
+built-ins/Object/defineProperty/15.2.3.6-4-41.js
+built-ins/Object/defineProperty/15.2.3.6-4-410.js
+built-ins/Object/defineProperty/15.2.3.6-4-411.js
+built-ins/Object/defineProperty/15.2.3.6-4-412.js
+built-ins/Object/defineProperty/15.2.3.6-4-413.js
+built-ins/Object/defineProperty/15.2.3.6-4-414.js
+built-ins/Object/defineProperty/15.2.3.6-4-415.js
+built-ins/Object/defineProperty/15.2.3.6-4-416.js
+built-ins/Object/defineProperty/15.2.3.6-4-417.js
+built-ins/Object/defineProperty/15.2.3.6-4-418.js
+built-ins/Object/defineProperty/15.2.3.6-4-419.js
+built-ins/Object/defineProperty/15.2.3.6-4-42.js
+built-ins/Object/defineProperty/15.2.3.6-4-420.js
+built-ins/Object/defineProperty/15.2.3.6-4-421.js
+built-ins/Object/defineProperty/15.2.3.6-4-422.js
+built-ins/Object/defineProperty/15.2.3.6-4-423.js
+built-ins/Object/defineProperty/15.2.3.6-4-424.js
+built-ins/Object/defineProperty/15.2.3.6-4-425.js
+built-ins/Object/defineProperty/15.2.3.6-4-426.js
+built-ins/Object/defineProperty/15.2.3.6-4-427.js
+built-ins/Object/defineProperty/15.2.3.6-4-428.js
+built-ins/Object/defineProperty/15.2.3.6-4-429.js
+built-ins/Object/defineProperty/15.2.3.6-4-43.js
+built-ins/Object/defineProperty/15.2.3.6-4-430.js
+built-ins/Object/defineProperty/15.2.3.6-4-431.js
+built-ins/Object/defineProperty/15.2.3.6-4-432.js
+built-ins/Object/defineProperty/15.2.3.6-4-433.js
+built-ins/Object/defineProperty/15.2.3.6-4-434.js
+built-ins/Object/defineProperty/15.2.3.6-4-435.js
+built-ins/Object/defineProperty/15.2.3.6-4-436.js
+built-ins/Object/defineProperty/15.2.3.6-4-437.js
+built-ins/Object/defineProperty/15.2.3.6-4-438.js
+built-ins/Object/defineProperty/15.2.3.6-4-439.js
+built-ins/Object/defineProperty/15.2.3.6-4-440.js
+built-ins/Object/defineProperty/15.2.3.6-4-441.js
+built-ins/Object/defineProperty/15.2.3.6-4-442.js
+built-ins/Object/defineProperty/15.2.3.6-4-443.js
+built-ins/Object/defineProperty/15.2.3.6-4-444.js
+built-ins/Object/defineProperty/15.2.3.6-4-445.js
+built-ins/Object/defineProperty/15.2.3.6-4-446.js
+built-ins/Object/defineProperty/15.2.3.6-4-447.js
+built-ins/Object/defineProperty/15.2.3.6-4-448.js
+built-ins/Object/defineProperty/15.2.3.6-4-449.js
+built-ins/Object/defineProperty/15.2.3.6-4-45.js
+built-ins/Object/defineProperty/15.2.3.6-4-450.js
+built-ins/Object/defineProperty/15.2.3.6-4-451.js
+built-ins/Object/defineProperty/15.2.3.6-4-452.js
+built-ins/Object/defineProperty/15.2.3.6-4-453.js
+built-ins/Object/defineProperty/15.2.3.6-4-454.js
+built-ins/Object/defineProperty/15.2.3.6-4-455.js
+built-ins/Object/defineProperty/15.2.3.6-4-456.js
+built-ins/Object/defineProperty/15.2.3.6-4-457.js
+built-ins/Object/defineProperty/15.2.3.6-4-458.js
+built-ins/Object/defineProperty/15.2.3.6-4-459.js
+built-ins/Object/defineProperty/15.2.3.6-4-46.js
+built-ins/Object/defineProperty/15.2.3.6-4-460.js
+built-ins/Object/defineProperty/15.2.3.6-4-461.js
+built-ins/Object/defineProperty/15.2.3.6-4-462.js
+built-ins/Object/defineProperty/15.2.3.6-4-463.js
+built-ins/Object/defineProperty/15.2.3.6-4-464.js
+built-ins/Object/defineProperty/15.2.3.6-4-465.js
+built-ins/Object/defineProperty/15.2.3.6-4-466.js
+built-ins/Object/defineProperty/15.2.3.6-4-467.js
+built-ins/Object/defineProperty/15.2.3.6-4-468.js
+built-ins/Object/defineProperty/15.2.3.6-4-469.js
+built-ins/Object/defineProperty/15.2.3.6-4-47.js
+built-ins/Object/defineProperty/15.2.3.6-4-470.js
+built-ins/Object/defineProperty/15.2.3.6-4-471.js
+built-ins/Object/defineProperty/15.2.3.6-4-472.js
+built-ins/Object/defineProperty/15.2.3.6-4-473.js
+built-ins/Object/defineProperty/15.2.3.6-4-474.js
+built-ins/Object/defineProperty/15.2.3.6-4-475.js
+built-ins/Object/defineProperty/15.2.3.6-4-476.js
+built-ins/Object/defineProperty/15.2.3.6-4-477.js
+built-ins/Object/defineProperty/15.2.3.6-4-478.js
+built-ins/Object/defineProperty/15.2.3.6-4-479.js
+built-ins/Object/defineProperty/15.2.3.6-4-48.js
+built-ins/Object/defineProperty/15.2.3.6-4-480.js
+built-ins/Object/defineProperty/15.2.3.6-4-481.js
+built-ins/Object/defineProperty/15.2.3.6-4-482.js
+built-ins/Object/defineProperty/15.2.3.6-4-483.js
+built-ins/Object/defineProperty/15.2.3.6-4-484.js
+built-ins/Object/defineProperty/15.2.3.6-4-485.js
+built-ins/Object/defineProperty/15.2.3.6-4-486.js
+built-ins/Object/defineProperty/15.2.3.6-4-487.js
+built-ins/Object/defineProperty/15.2.3.6-4-488.js
+built-ins/Object/defineProperty/15.2.3.6-4-489.js
+built-ins/Object/defineProperty/15.2.3.6-4-49.js
+built-ins/Object/defineProperty/15.2.3.6-4-490.js
+built-ins/Object/defineProperty/15.2.3.6-4-491.js
+built-ins/Object/defineProperty/15.2.3.6-4-492.js
+built-ins/Object/defineProperty/15.2.3.6-4-493.js
+built-ins/Object/defineProperty/15.2.3.6-4-494.js
+built-ins/Object/defineProperty/15.2.3.6-4-495.js
+built-ins/Object/defineProperty/15.2.3.6-4-496.js
+built-ins/Object/defineProperty/15.2.3.6-4-497.js
+built-ins/Object/defineProperty/15.2.3.6-4-498.js
+built-ins/Object/defineProperty/15.2.3.6-4-499.js
+built-ins/Object/defineProperty/15.2.3.6-4-5.js
+built-ins/Object/defineProperty/15.2.3.6-4-50.js
+built-ins/Object/defineProperty/15.2.3.6-4-500.js
+built-ins/Object/defineProperty/15.2.3.6-4-501.js
+built-ins/Object/defineProperty/15.2.3.6-4-502.js
+built-ins/Object/defineProperty/15.2.3.6-4-503.js
+built-ins/Object/defineProperty/15.2.3.6-4-504.js
+built-ins/Object/defineProperty/15.2.3.6-4-505.js
+built-ins/Object/defineProperty/15.2.3.6-4-506.js
+built-ins/Object/defineProperty/15.2.3.6-4-507.js
+built-ins/Object/defineProperty/15.2.3.6-4-508.js
+built-ins/Object/defineProperty/15.2.3.6-4-509.js
+built-ins/Object/defineProperty/15.2.3.6-4-51.js
+built-ins/Object/defineProperty/15.2.3.6-4-510.js
+built-ins/Object/defineProperty/15.2.3.6-4-511.js
+built-ins/Object/defineProperty/15.2.3.6-4-512.js
+built-ins/Object/defineProperty/15.2.3.6-4-513.js
+built-ins/Object/defineProperty/15.2.3.6-4-514.js
+built-ins/Object/defineProperty/15.2.3.6-4-515.js
+built-ins/Object/defineProperty/15.2.3.6-4-516.js
+built-ins/Object/defineProperty/15.2.3.6-4-517.js
+built-ins/Object/defineProperty/15.2.3.6-4-518.js
+built-ins/Object/defineProperty/15.2.3.6-4-519.js
+built-ins/Object/defineProperty/15.2.3.6-4-52.js
+built-ins/Object/defineProperty/15.2.3.6-4-520.js
+built-ins/Object/defineProperty/15.2.3.6-4-521.js
+built-ins/Object/defineProperty/15.2.3.6-4-522.js
+built-ins/Object/defineProperty/15.2.3.6-4-523.js
+built-ins/Object/defineProperty/15.2.3.6-4-524.js
+built-ins/Object/defineProperty/15.2.3.6-4-525.js
+built-ins/Object/defineProperty/15.2.3.6-4-526.js
+built-ins/Object/defineProperty/15.2.3.6-4-527.js
+built-ins/Object/defineProperty/15.2.3.6-4-528.js
+built-ins/Object/defineProperty/15.2.3.6-4-529.js
+built-ins/Object/defineProperty/15.2.3.6-4-53.js
+built-ins/Object/defineProperty/15.2.3.6-4-530.js
+built-ins/Object/defineProperty/15.2.3.6-4-531.js
+built-ins/Object/defineProperty/15.2.3.6-4-531-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-531-10.js
+built-ins/Object/defineProperty/15.2.3.6-4-531-11.js
+built-ins/Object/defineProperty/15.2.3.6-4-531-12.js
+built-ins/Object/defineProperty/15.2.3.6-4-531-15.js
+built-ins/Object/defineProperty/15.2.3.6-4-531-16.js
+built-ins/Object/defineProperty/15.2.3.6-4-531-2.js
+built-ins/Object/defineProperty/15.2.3.6-4-531-3.js
+built-ins/Object/defineProperty/15.2.3.6-4-531-6.js
+built-ins/Object/defineProperty/15.2.3.6-4-531-7.js
+built-ins/Object/defineProperty/15.2.3.6-4-532.js
+built-ins/Object/defineProperty/15.2.3.6-4-533.js
+built-ins/Object/defineProperty/15.2.3.6-4-534.js
+built-ins/Object/defineProperty/15.2.3.6-4-535.js
+built-ins/Object/defineProperty/15.2.3.6-4-536.js
+built-ins/Object/defineProperty/15.2.3.6-4-537.js
+built-ins/Object/defineProperty/15.2.3.6-4-538.js
+built-ins/Object/defineProperty/15.2.3.6-4-538-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-538-2.js
+built-ins/Object/defineProperty/15.2.3.6-4-538-5.js
+built-ins/Object/defineProperty/15.2.3.6-4-538-6.js
+built-ins/Object/defineProperty/15.2.3.6-4-539.js
+built-ins/Object/defineProperty/15.2.3.6-4-54.js
+built-ins/Object/defineProperty/15.2.3.6-4-540.js
+built-ins/Object/defineProperty/15.2.3.6-4-540-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-540-10.js
+built-ins/Object/defineProperty/15.2.3.6-4-540-2.js
+built-ins/Object/defineProperty/15.2.3.6-4-540-3.js
+built-ins/Object/defineProperty/15.2.3.6-4-540-4.js
+built-ins/Object/defineProperty/15.2.3.6-4-540-5.js
+built-ins/Object/defineProperty/15.2.3.6-4-540-6.js
+built-ins/Object/defineProperty/15.2.3.6-4-540-7.js
+built-ins/Object/defineProperty/15.2.3.6-4-540-8.js
+built-ins/Object/defineProperty/15.2.3.6-4-540-9.js
+built-ins/Object/defineProperty/15.2.3.6-4-541.js
+built-ins/Object/defineProperty/15.2.3.6-4-542.js
+built-ins/Object/defineProperty/15.2.3.6-4-543.js
+built-ins/Object/defineProperty/15.2.3.6-4-544.js
+built-ins/Object/defineProperty/15.2.3.6-4-545.js
+built-ins/Object/defineProperty/15.2.3.6-4-546.js
+built-ins/Object/defineProperty/15.2.3.6-4-547.js
+built-ins/Object/defineProperty/15.2.3.6-4-547-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-547-2.js
+built-ins/Object/defineProperty/15.2.3.6-4-547-3.js
+built-ins/Object/defineProperty/15.2.3.6-4-547-4.js
+built-ins/Object/defineProperty/15.2.3.6-4-548.js
+built-ins/Object/defineProperty/15.2.3.6-4-549.js
+built-ins/Object/defineProperty/15.2.3.6-4-55.js
+built-ins/Object/defineProperty/15.2.3.6-4-550.js
+built-ins/Object/defineProperty/15.2.3.6-4-551.js
+built-ins/Object/defineProperty/15.2.3.6-4-552.js
+built-ins/Object/defineProperty/15.2.3.6-4-553.js
+built-ins/Object/defineProperty/15.2.3.6-4-554.js
+built-ins/Object/defineProperty/15.2.3.6-4-555.js
+built-ins/Object/defineProperty/15.2.3.6-4-556.js
+built-ins/Object/defineProperty/15.2.3.6-4-557.js
+built-ins/Object/defineProperty/15.2.3.6-4-558.js
+built-ins/Object/defineProperty/15.2.3.6-4-559.js
+built-ins/Object/defineProperty/15.2.3.6-4-56.js
+built-ins/Object/defineProperty/15.2.3.6-4-560.js
+built-ins/Object/defineProperty/15.2.3.6-4-561.js
+built-ins/Object/defineProperty/15.2.3.6-4-562.js
+built-ins/Object/defineProperty/15.2.3.6-4-563.js
+built-ins/Object/defineProperty/15.2.3.6-4-564.js
+built-ins/Object/defineProperty/15.2.3.6-4-565.js
+built-ins/Object/defineProperty/15.2.3.6-4-566.js
+built-ins/Object/defineProperty/15.2.3.6-4-567.js
+built-ins/Object/defineProperty/15.2.3.6-4-568.js
+built-ins/Object/defineProperty/15.2.3.6-4-569.js
+built-ins/Object/defineProperty/15.2.3.6-4-57.js
+built-ins/Object/defineProperty/15.2.3.6-4-570.js
+built-ins/Object/defineProperty/15.2.3.6-4-571.js
+built-ins/Object/defineProperty/15.2.3.6-4-572.js
+built-ins/Object/defineProperty/15.2.3.6-4-573.js
+built-ins/Object/defineProperty/15.2.3.6-4-574.js
+built-ins/Object/defineProperty/15.2.3.6-4-575.js
+built-ins/Object/defineProperty/15.2.3.6-4-576.js
+built-ins/Object/defineProperty/15.2.3.6-4-577.js
+built-ins/Object/defineProperty/15.2.3.6-4-578.js
+built-ins/Object/defineProperty/15.2.3.6-4-579.js
+built-ins/Object/defineProperty/15.2.3.6-4-58.js
+built-ins/Object/defineProperty/15.2.3.6-4-580.js
+built-ins/Object/defineProperty/15.2.3.6-4-581.js
+built-ins/Object/defineProperty/15.2.3.6-4-582.js
+built-ins/Object/defineProperty/15.2.3.6-4-583.js
+built-ins/Object/defineProperty/15.2.3.6-4-584.js
+built-ins/Object/defineProperty/15.2.3.6-4-585.js
+built-ins/Object/defineProperty/15.2.3.6-4-586.js
+built-ins/Object/defineProperty/15.2.3.6-4-587.js
+built-ins/Object/defineProperty/15.2.3.6-4-588.js
+built-ins/Object/defineProperty/15.2.3.6-4-589.js
+built-ins/Object/defineProperty/15.2.3.6-4-59.js
+built-ins/Object/defineProperty/15.2.3.6-4-590.js
+built-ins/Object/defineProperty/15.2.3.6-4-591.js
+built-ins/Object/defineProperty/15.2.3.6-4-592.js
+built-ins/Object/defineProperty/15.2.3.6-4-593.js
+built-ins/Object/defineProperty/15.2.3.6-4-594.js
+built-ins/Object/defineProperty/15.2.3.6-4-595.js
+built-ins/Object/defineProperty/15.2.3.6-4-596.js
+built-ins/Object/defineProperty/15.2.3.6-4-597.js
+built-ins/Object/defineProperty/15.2.3.6-4-598.js
+built-ins/Object/defineProperty/15.2.3.6-4-599.js
+built-ins/Object/defineProperty/15.2.3.6-4-6.js
+built-ins/Object/defineProperty/15.2.3.6-4-60.js
+built-ins/Object/defineProperty/15.2.3.6-4-600.js
+built-ins/Object/defineProperty/15.2.3.6-4-601.js
+built-ins/Object/defineProperty/15.2.3.6-4-602.js
+built-ins/Object/defineProperty/15.2.3.6-4-603.js
+built-ins/Object/defineProperty/15.2.3.6-4-604.js
+built-ins/Object/defineProperty/15.2.3.6-4-605.js
+built-ins/Object/defineProperty/15.2.3.6-4-606.js
+built-ins/Object/defineProperty/15.2.3.6-4-607.js
+built-ins/Object/defineProperty/15.2.3.6-4-608.js
+built-ins/Object/defineProperty/15.2.3.6-4-609.js
+built-ins/Object/defineProperty/15.2.3.6-4-61.js
+built-ins/Object/defineProperty/15.2.3.6-4-610.js
+built-ins/Object/defineProperty/15.2.3.6-4-611.js
+built-ins/Object/defineProperty/15.2.3.6-4-612.js
+built-ins/Object/defineProperty/15.2.3.6-4-613.js
+built-ins/Object/defineProperty/15.2.3.6-4-614.js
+built-ins/Object/defineProperty/15.2.3.6-4-615.js
+built-ins/Object/defineProperty/15.2.3.6-4-616.js
+built-ins/Object/defineProperty/15.2.3.6-4-617.js
+built-ins/Object/defineProperty/15.2.3.6-4-618.js
+built-ins/Object/defineProperty/15.2.3.6-4-619.js
+built-ins/Object/defineProperty/15.2.3.6-4-62.js
+built-ins/Object/defineProperty/15.2.3.6-4-620.js
+built-ins/Object/defineProperty/15.2.3.6-4-621.js
+built-ins/Object/defineProperty/15.2.3.6-4-622.js
+built-ins/Object/defineProperty/15.2.3.6-4-623.js
+built-ins/Object/defineProperty/15.2.3.6-4-624.js
+built-ins/Object/defineProperty/15.2.3.6-4-625gs.js
+built-ins/Object/defineProperty/15.2.3.6-4-63.js
+built-ins/Object/defineProperty/15.2.3.6-4-64.js
+built-ins/Object/defineProperty/15.2.3.6-4-65.js
+built-ins/Object/defineProperty/15.2.3.6-4-66.js
+built-ins/Object/defineProperty/15.2.3.6-4-67.js
+built-ins/Object/defineProperty/15.2.3.6-4-68.js
+built-ins/Object/defineProperty/15.2.3.6-4-69.js
+built-ins/Object/defineProperty/15.2.3.6-4-7.js
+built-ins/Object/defineProperty/15.2.3.6-4-70.js
+built-ins/Object/defineProperty/15.2.3.6-4-71.js
+built-ins/Object/defineProperty/15.2.3.6-4-72.js
+built-ins/Object/defineProperty/15.2.3.6-4-73.js
+built-ins/Object/defineProperty/15.2.3.6-4-74.js
+built-ins/Object/defineProperty/15.2.3.6-4-75.js
+built-ins/Object/defineProperty/15.2.3.6-4-76.js
+built-ins/Object/defineProperty/15.2.3.6-4-77.js
+built-ins/Object/defineProperty/15.2.3.6-4-78.js
+built-ins/Object/defineProperty/15.2.3.6-4-79.js
+built-ins/Object/defineProperty/15.2.3.6-4-8.js
+built-ins/Object/defineProperty/15.2.3.6-4-80.js
+built-ins/Object/defineProperty/15.2.3.6-4-81.js
+built-ins/Object/defineProperty/15.2.3.6-4-82.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-1.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-10.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-11.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-12.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-13.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-14.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-15.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-16.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-17.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-18.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-19.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-2.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-20.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-21.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-22.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-23.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-24.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-3.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-4.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-5.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-6.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-7.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-8.js
+built-ins/Object/defineProperty/15.2.3.6-4-82-9.js
+built-ins/Object/defineProperty/15.2.3.6-4-83.js
+built-ins/Object/defineProperty/15.2.3.6-4-84.js
+built-ins/Object/defineProperty/15.2.3.6-4-85.js
+built-ins/Object/defineProperty/15.2.3.6-4-86.js
+built-ins/Object/defineProperty/15.2.3.6-4-87.js
+built-ins/Object/defineProperty/15.2.3.6-4-88.js
+built-ins/Object/defineProperty/15.2.3.6-4-89.js
+built-ins/Object/defineProperty/15.2.3.6-4-9.js
+built-ins/Object/defineProperty/15.2.3.6-4-90.js
+built-ins/Object/defineProperty/15.2.3.6-4-91.js
+built-ins/Object/defineProperty/15.2.3.6-4-92.js
+built-ins/Object/defineProperty/15.2.3.6-4-93.js
+built-ins/Object/defineProperty/15.2.3.6-4-94.js
+built-ins/Object/defineProperty/15.2.3.6-4-95.js
+built-ins/Object/defineProperty/15.2.3.6-4-96.js
+built-ins/Object/defineProperty/15.2.3.6-4-97.js
+built-ins/Object/defineProperty/15.2.3.6-4-98.js
+built-ins/Object/defineProperty/15.2.3.6-4-99.js
+built-ins/Object/defineProperty/8.12.9-9-b-i_1.js
+built-ins/Object/defineProperty/8.12.9-9-b-i_2.js
+built-ins/Object/defineProperty/8.12.9-9-c-i_1.js
+built-ins/Object/defineProperty/8.12.9-9-c-i_2.js
+built-ins/Object/defineProperty/S15.2.3.6_A1.js
+built-ins/Object/defineProperty/S15.2.3.6_A2.js
+built-ins/Object/freeze/15.2.3.9-0-1.js
+built-ins/Object/freeze/15.2.3.9-0-2.js
+built-ins/Object/freeze/15.2.3.9-1.js
+built-ins/Object/freeze/15.2.3.9-1-1.js
+built-ins/Object/freeze/15.2.3.9-1-2.js
+built-ins/Object/freeze/15.2.3.9-1-3.js
+built-ins/Object/freeze/15.2.3.9-1-4.js
+built-ins/Object/freeze/15.2.3.9-2-1.js
+built-ins/Object/freeze/15.2.3.9-2-2.js
+built-ins/Object/freeze/15.2.3.9-2-3.js
+built-ins/Object/freeze/15.2.3.9-2-4.js
+built-ins/Object/freeze/15.2.3.9-2-a-1.js
+built-ins/Object/freeze/15.2.3.9-2-a-10.js
+built-ins/Object/freeze/15.2.3.9-2-a-11.js
+built-ins/Object/freeze/15.2.3.9-2-a-12.js
+built-ins/Object/freeze/15.2.3.9-2-a-13.js
+built-ins/Object/freeze/15.2.3.9-2-a-14.js
+built-ins/Object/freeze/15.2.3.9-2-a-2.js
+built-ins/Object/freeze/15.2.3.9-2-a-3.js
+built-ins/Object/freeze/15.2.3.9-2-a-4.js
+built-ins/Object/freeze/15.2.3.9-2-a-5.js
+built-ins/Object/freeze/15.2.3.9-2-a-6.js
+built-ins/Object/freeze/15.2.3.9-2-a-7.js
+built-ins/Object/freeze/15.2.3.9-2-a-8.js
+built-ins/Object/freeze/15.2.3.9-2-a-9.js
+built-ins/Object/freeze/15.2.3.9-2-b-i-1.js
+built-ins/Object/freeze/15.2.3.9-2-b-i-2.js
+built-ins/Object/freeze/15.2.3.9-2-c-1.js
+built-ins/Object/freeze/15.2.3.9-2-c-2.js
+built-ins/Object/freeze/15.2.3.9-2-c-3.js
+built-ins/Object/freeze/15.2.3.9-2-c-4.js
+built-ins/Object/freeze/15.2.3.9-2-d-1.js
+built-ins/Object/freeze/15.2.3.9-2-d-2.js
+built-ins/Object/freeze/15.2.3.9-2-d-3.js
+built-ins/Object/freeze/15.2.3.9-2-d-4.js
+built-ins/Object/freeze/15.2.3.9-2-d-5.js
+built-ins/Object/freeze/15.2.3.9-2-d-6.js
+built-ins/Object/freeze/15.2.3.9-2-d-7.js
+built-ins/Object/freeze/15.2.3.9-2-d-8.js
+built-ins/Object/freeze/15.2.3.9-2-d-9.js
+built-ins/Object/freeze/15.2.3.9-3-1.js
+built-ins/Object/freeze/15.2.3.9-4-1.js
+built-ins/Object/freeze/15.2.3.9-4-2.js
+built-ins/Object/freeze/15.2.3.9-4-3.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-0-1.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1-1.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1-2.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1-3.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-1-4.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-1.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-10.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-11.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-12.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-13.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-14.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-15.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-16.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-17.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-18.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-19.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-2.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-20.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-21.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-22.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-23.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-24.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-25.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-26.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-27.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-28.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-29.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-3.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-30.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-31.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-32.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-33.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-34.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-35.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-36.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-37.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-38.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-39.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-4.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-40.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-41.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-42.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-43.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-44.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-45.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-46.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-47.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-5.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-6.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-7.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-8.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-9.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-1.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-10.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-13.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-14.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-15.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-2.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-3.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-4.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-5.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-6.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-7.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-8.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-3-9.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-1.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-10.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-100.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-101.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-102.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-103.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-104.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-105.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-106.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-107.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-108.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-109.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-11.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-110.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-111.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-112.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-113.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-114.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-115.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-116.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-117.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-118.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-120.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-121.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-122.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-123.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-124.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-125.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-126.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-127.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-128.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-129.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-130.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-131.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-132.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-133.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-134.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-135.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-136.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-138.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-139.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-14.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-140.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-141.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-142.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-143.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-144.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-145.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-146.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-147.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-148.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-149.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-15.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-150.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-151.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-152.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-153.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-154.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-156.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-157.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-158.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-159.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-16.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-160.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-161.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-162.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-163.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-165.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-166.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-167.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-168.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-169.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-17.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-170.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-171.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-172.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-173.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-174.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-175.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-176.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-177.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-178.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-179.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-18.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-180.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-182.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-183.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-184.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-185.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-186.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-187.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-188.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-189.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-19.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-190.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-191.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-192.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-193.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-194.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-195.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-196.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-197.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-198.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-199.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-2.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-20.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-200.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-201.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-202.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-203.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-204.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-205.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-206.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-207.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-208.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-209.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-21.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-210.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-211.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-212.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-213.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-214.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-215.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-216.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-217.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-218.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-219.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-22.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-220.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-221.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-222.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-223.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-224.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-225.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-226.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-227.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-228.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-229.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-23.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-230.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-231.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-232.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-233.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-234.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-235.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-236.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-237.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-238.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-239.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-24.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-240.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-241.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-242.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-243.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-244.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-245.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-246.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-247.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-248.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-249.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-25.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-250.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-26.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-27.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-28.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-29.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-3.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-30.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-31.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-32.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-33.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-34.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-35.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-36.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-37.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-38.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-39.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-4.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-40.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-41.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-42.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-43.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-44.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-45.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-46.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-47.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-48.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-49.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-5.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-50.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-51.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-52.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-53.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-54.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-55.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-56.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-57.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-58.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-59.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-6.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-60.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-61.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-62.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-63.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-64.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-65.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-66.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-67.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-68.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-69.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-7.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-70.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-71.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-72.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-73.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-75.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-76.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-77.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-78.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-79.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-8.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-80.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-81.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-82.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-84.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-85.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-86.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-88.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-89.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-9.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-90.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-91.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-92.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-93.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-94.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-96.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-97.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-98.js
+built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-99.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-0-1.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-0-2.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-1.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-1-2.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-1-3.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-1-4.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-1-5.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-2-1.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-2-2.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-2-3.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-2-4.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-3-1.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-1.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-2.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-36.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-37.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-38.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-39.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-40.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-41.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-42.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-43.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-44.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-45.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-46.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-47.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-48.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-49.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-50.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-b-1.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-b-2.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-b-3.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-b-4.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-b-5.js
+built-ins/Object/getOwnPropertyNames/15.2.3.4-4-b-6.js
+built-ins/Object/getOwnPropertyNames/S15.2.3.4_A1_T1.js
+built-ins/Object/getPrototypeOf/15.2.3.2-0-1.js
+built-ins/Object/getPrototypeOf/15.2.3.2-0-2.js
+built-ins/Object/getPrototypeOf/15.2.3.2-0-3.js
+built-ins/Object/getPrototypeOf/15.2.3.2-1.js
+built-ins/Object/getPrototypeOf/15.2.3.2-1-2.js
+built-ins/Object/getPrototypeOf/15.2.3.2-1-3.js
+built-ins/Object/getPrototypeOf/15.2.3.2-1-4.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-1.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-10.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-11.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-12.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-13.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-14.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-15.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-16.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-17.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-18.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-19.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-2.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-20.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-21.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-22.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-23.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-24.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-25.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-26.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-27.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-28.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-3.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-30.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-31.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-4.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-5.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-6.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-7.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-8.js
+built-ins/Object/getPrototypeOf/15.2.3.2-2-9.js
+built-ins/Object/isExtensible/15.2.3.13-0-1.js
+built-ins/Object/isExtensible/15.2.3.13-0-2.js
+built-ins/Object/isExtensible/15.2.3.13-0-3.js
+built-ins/Object/isExtensible/15.2.3.13-1.js
+built-ins/Object/isExtensible/15.2.3.13-1-1.js
+built-ins/Object/isExtensible/15.2.3.13-1-2.js
+built-ins/Object/isExtensible/15.2.3.13-1-3.js
+built-ins/Object/isExtensible/15.2.3.13-1-4.js
+built-ins/Object/isExtensible/15.2.3.13-2-1.js
+built-ins/Object/isExtensible/15.2.3.13-2-10.js
+built-ins/Object/isExtensible/15.2.3.13-2-11.js
+built-ins/Object/isExtensible/15.2.3.13-2-12.js
+built-ins/Object/isExtensible/15.2.3.13-2-13.js
+built-ins/Object/isExtensible/15.2.3.13-2-14.js
+built-ins/Object/isExtensible/15.2.3.13-2-15.js
+built-ins/Object/isExtensible/15.2.3.13-2-16.js
+built-ins/Object/isExtensible/15.2.3.13-2-17.js
+built-ins/Object/isExtensible/15.2.3.13-2-18.js
+built-ins/Object/isExtensible/15.2.3.13-2-19.js
+built-ins/Object/isExtensible/15.2.3.13-2-2.js
+built-ins/Object/isExtensible/15.2.3.13-2-20.js
+built-ins/Object/isExtensible/15.2.3.13-2-21.js
+built-ins/Object/isExtensible/15.2.3.13-2-22.js
+built-ins/Object/isExtensible/15.2.3.13-2-23.js
+built-ins/Object/isExtensible/15.2.3.13-2-24.js
+built-ins/Object/isExtensible/15.2.3.13-2-25.js
+built-ins/Object/isExtensible/15.2.3.13-2-26.js
+built-ins/Object/isExtensible/15.2.3.13-2-27.js
+built-ins/Object/isExtensible/15.2.3.13-2-29.js
+built-ins/Object/isExtensible/15.2.3.13-2-3.js
+built-ins/Object/isExtensible/15.2.3.13-2-4.js
+built-ins/Object/isExtensible/15.2.3.13-2-5.js
+built-ins/Object/isExtensible/15.2.3.13-2-6.js
+built-ins/Object/isExtensible/15.2.3.13-2-7.js
+built-ins/Object/isExtensible/15.2.3.13-2-8.js
+built-ins/Object/isExtensible/15.2.3.13-2-9.js
+built-ins/Object/isFrozen/15.2.3.12-0-1.js
+built-ins/Object/isFrozen/15.2.3.12-0-2.js
+built-ins/Object/isFrozen/15.2.3.12-1.js
+built-ins/Object/isFrozen/15.2.3.12-1-1.js
+built-ins/Object/isFrozen/15.2.3.12-1-2.js
+built-ins/Object/isFrozen/15.2.3.12-1-3.js
+built-ins/Object/isFrozen/15.2.3.12-1-4.js
+built-ins/Object/isFrozen/15.2.3.12-1-5.js
+built-ins/Object/isFrozen/15.2.3.12-1-6.js
+built-ins/Object/isFrozen/15.2.3.12-1-7.js
+built-ins/Object/isFrozen/15.2.3.12-2-1.js
+built-ins/Object/isFrozen/15.2.3.12-2-2.js
+built-ins/Object/isFrozen/15.2.3.12-2-a-1.js
+built-ins/Object/isFrozen/15.2.3.12-2-a-11.js
+built-ins/Object/isFrozen/15.2.3.12-2-a-12.js
+built-ins/Object/isFrozen/15.2.3.12-2-a-13.js
+built-ins/Object/isFrozen/15.2.3.12-2-a-14.js
+built-ins/Object/isFrozen/15.2.3.12-2-a-2.js
+built-ins/Object/isFrozen/15.2.3.12-2-a-3.js
+built-ins/Object/isFrozen/15.2.3.12-2-a-4.js
+built-ins/Object/isFrozen/15.2.3.12-2-a-5.js
+built-ins/Object/isFrozen/15.2.3.12-2-a-6.js
+built-ins/Object/isFrozen/15.2.3.12-2-a-7.js
+built-ins/Object/isFrozen/15.2.3.12-2-a-8.js
+built-ins/Object/isFrozen/15.2.3.12-2-b-i-1.js
+built-ins/Object/isFrozen/15.2.3.12-2-c-1.js
+built-ins/Object/isFrozen/15.2.3.12-2-c-2.js
+built-ins/Object/isFrozen/15.2.3.12-3-1.js
+built-ins/Object/isFrozen/15.2.3.12-3-10.js
+built-ins/Object/isFrozen/15.2.3.12-3-11.js
+built-ins/Object/isFrozen/15.2.3.12-3-12.js
+built-ins/Object/isFrozen/15.2.3.12-3-13.js
+built-ins/Object/isFrozen/15.2.3.12-3-14.js
+built-ins/Object/isFrozen/15.2.3.12-3-15.js
+built-ins/Object/isFrozen/15.2.3.12-3-16.js
+built-ins/Object/isFrozen/15.2.3.12-3-17.js
+built-ins/Object/isFrozen/15.2.3.12-3-18.js
+built-ins/Object/isFrozen/15.2.3.12-3-19.js
+built-ins/Object/isFrozen/15.2.3.12-3-2.js
+built-ins/Object/isFrozen/15.2.3.12-3-20.js
+built-ins/Object/isFrozen/15.2.3.12-3-21.js
+built-ins/Object/isFrozen/15.2.3.12-3-22.js
+built-ins/Object/isFrozen/15.2.3.12-3-23.js
+built-ins/Object/isFrozen/15.2.3.12-3-24.js
+built-ins/Object/isFrozen/15.2.3.12-3-25.js
+built-ins/Object/isFrozen/15.2.3.12-3-26.js
+built-ins/Object/isFrozen/15.2.3.12-3-27.js
+built-ins/Object/isFrozen/15.2.3.12-3-28.js
+built-ins/Object/isFrozen/15.2.3.12-3-3.js
+built-ins/Object/isFrozen/15.2.3.12-3-4.js
+built-ins/Object/isFrozen/15.2.3.12-3-5.js
+built-ins/Object/isFrozen/15.2.3.12-3-6.js
+built-ins/Object/isFrozen/15.2.3.12-3-7.js
+built-ins/Object/isFrozen/15.2.3.12-3-8.js
+built-ins/Object/isFrozen/15.2.3.12-3-9.js
+built-ins/Object/isFrozen/15.2.3.12-4-1.js
+built-ins/Object/isSealed/15.2.3.11-0-1.js
+built-ins/Object/isSealed/15.2.3.11-0-2.js
+built-ins/Object/isSealed/15.2.3.11-1.js
+built-ins/Object/isSealed/15.2.3.11-4-1.js
+built-ins/Object/isSealed/15.2.3.11-4-10.js
+built-ins/Object/isSealed/15.2.3.11-4-11.js
+built-ins/Object/isSealed/15.2.3.11-4-12.js
+built-ins/Object/isSealed/15.2.3.11-4-13.js
+built-ins/Object/isSealed/15.2.3.11-4-14.js
+built-ins/Object/isSealed/15.2.3.11-4-15.js
+built-ins/Object/isSealed/15.2.3.11-4-16.js
+built-ins/Object/isSealed/15.2.3.11-4-17.js
+built-ins/Object/isSealed/15.2.3.11-4-18.js
+built-ins/Object/isSealed/15.2.3.11-4-19.js
+built-ins/Object/isSealed/15.2.3.11-4-2.js
+built-ins/Object/isSealed/15.2.3.11-4-20.js
+built-ins/Object/isSealed/15.2.3.11-4-21.js
+built-ins/Object/isSealed/15.2.3.11-4-22.js
+built-ins/Object/isSealed/15.2.3.11-4-23.js
+built-ins/Object/isSealed/15.2.3.11-4-24.js
+built-ins/Object/isSealed/15.2.3.11-4-25.js
+built-ins/Object/isSealed/15.2.3.11-4-26.js
+built-ins/Object/isSealed/15.2.3.11-4-27.js
+built-ins/Object/isSealed/15.2.3.11-4-3.js
+built-ins/Object/isSealed/15.2.3.11-4-4.js
+built-ins/Object/isSealed/15.2.3.11-4-5.js
+built-ins/Object/isSealed/15.2.3.11-4-6.js
+built-ins/Object/isSealed/15.2.3.11-4-7.js
+built-ins/Object/isSealed/15.2.3.11-4-8.js
+built-ins/Object/isSealed/15.2.3.11-4-9.js
+built-ins/Object/keys/15.2.3.14-0-1.js
+built-ins/Object/keys/15.2.3.14-0-2.js
+built-ins/Object/keys/15.2.3.14-1-1.js
+built-ins/Object/keys/15.2.3.14-1-2.js
+built-ins/Object/keys/15.2.3.14-1-3.js
+built-ins/Object/keys/15.2.3.14-1-4.js
+built-ins/Object/keys/15.2.3.14-1-5.js
+built-ins/Object/keys/15.2.3.14-2-1.js
+built-ins/Object/keys/15.2.3.14-2-2.js
+built-ins/Object/keys/15.2.3.14-2-3.js
+built-ins/Object/keys/15.2.3.14-2-4.js
+built-ins/Object/keys/15.2.3.14-2-5.js
+built-ins/Object/keys/15.2.3.14-2-6.js
+built-ins/Object/keys/15.2.3.14-2-7.js
+built-ins/Object/keys/15.2.3.14-2-8.js
+built-ins/Object/keys/15.2.3.14-3-1.js
+built-ins/Object/keys/15.2.3.14-3-2.js
+built-ins/Object/keys/15.2.3.14-3-3.js
+built-ins/Object/keys/15.2.3.14-3-4.js
+built-ins/Object/keys/15.2.3.14-3-5.js
+built-ins/Object/keys/15.2.3.14-3-6.js
+built-ins/Object/keys/15.2.3.14-3-7.js
+built-ins/Object/keys/15.2.3.14-4-1.js
+built-ins/Object/keys/15.2.3.14-5-1.js
+built-ins/Object/keys/15.2.3.14-5-10.js
+built-ins/Object/keys/15.2.3.14-5-11.js
+built-ins/Object/keys/15.2.3.14-5-12.js
+built-ins/Object/keys/15.2.3.14-5-13.js
+built-ins/Object/keys/15.2.3.14-5-14.js
+built-ins/Object/keys/15.2.3.14-5-15.js
+built-ins/Object/keys/15.2.3.14-5-16.js
+built-ins/Object/keys/15.2.3.14-5-2.js
+built-ins/Object/keys/15.2.3.14-5-3.js
+built-ins/Object/keys/15.2.3.14-5-4.js
+built-ins/Object/keys/15.2.3.14-5-5.js
+built-ins/Object/keys/15.2.3.14-5-6.js
+built-ins/Object/keys/15.2.3.14-5-7.js
+built-ins/Object/keys/15.2.3.14-5-8.js
+built-ins/Object/keys/15.2.3.14-5-9.js
+built-ins/Object/keys/15.2.3.14-5-a-1.js
+built-ins/Object/keys/15.2.3.14-5-a-2.js
+built-ins/Object/keys/15.2.3.14-5-a-3.js
+built-ins/Object/keys/15.2.3.14-5-a-4.js
+built-ins/Object/keys/15.2.3.14-5-b-1.js
+built-ins/Object/keys/15.2.3.14-6-1.js
+built-ins/Object/keys/15.2.3.14-6-2.js
+built-ins/Object/keys/15.2.3.14-6-3.js
+built-ins/Object/keys/15.2.3.14-6-4.js
+built-ins/Object/keys/15.2.3.14-6-5.js
+built-ins/Object/preventExtensions/15.2.3.10-0-1.js
+built-ins/Object/preventExtensions/15.2.3.10-0-2.js
+built-ins/Object/preventExtensions/15.2.3.10-1.js
+built-ins/Object/preventExtensions/15.2.3.10-1-1.js
+built-ins/Object/preventExtensions/15.2.3.10-1-2.js
+built-ins/Object/preventExtensions/15.2.3.10-1-3.js
+built-ins/Object/preventExtensions/15.2.3.10-1-4.js
+built-ins/Object/preventExtensions/15.2.3.10-2.js
+built-ins/Object/preventExtensions/15.2.3.10-2-1.js
+built-ins/Object/preventExtensions/15.2.3.10-3-1.js
+built-ins/Object/preventExtensions/15.2.3.10-3-10.js
+built-ins/Object/preventExtensions/15.2.3.10-3-11.js
+built-ins/Object/preventExtensions/15.2.3.10-3-12.js
+built-ins/Object/preventExtensions/15.2.3.10-3-13.js
+built-ins/Object/preventExtensions/15.2.3.10-3-14.js
+built-ins/Object/preventExtensions/15.2.3.10-3-15.js
+built-ins/Object/preventExtensions/15.2.3.10-3-16.js
+built-ins/Object/preventExtensions/15.2.3.10-3-17.js
+built-ins/Object/preventExtensions/15.2.3.10-3-18.js
+built-ins/Object/preventExtensions/15.2.3.10-3-19.js
+built-ins/Object/preventExtensions/15.2.3.10-3-2.js
+built-ins/Object/preventExtensions/15.2.3.10-3-20.js
+built-ins/Object/preventExtensions/15.2.3.10-3-21.js
+built-ins/Object/preventExtensions/15.2.3.10-3-22.js
+built-ins/Object/preventExtensions/15.2.3.10-3-23.js
+built-ins/Object/preventExtensions/15.2.3.10-3-24.js
+built-ins/Object/preventExtensions/15.2.3.10-3-3.js
+built-ins/Object/preventExtensions/15.2.3.10-3-4.js
+built-ins/Object/preventExtensions/15.2.3.10-3-5.js
+built-ins/Object/preventExtensions/15.2.3.10-3-5-1.js
+built-ins/Object/preventExtensions/15.2.3.10-3-6.js
+built-ins/Object/preventExtensions/15.2.3.10-3-7.js
+built-ins/Object/preventExtensions/15.2.3.10-3-8.js
+built-ins/Object/preventExtensions/15.2.3.10-3-9.js
+built-ins/Object/prototype/15.2.3.1.js
+built-ins/Object/prototype/constructor/S15.2.4.1_A1_T1.js
+built-ins/Object/prototype/constructor/S15.2.4.1_A1_T2.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_1.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_10.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_11.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_12.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_13.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_14.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_15.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_16.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_17.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_18.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_19.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_2.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_20.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_21.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_22.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_23.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_24.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_25.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_26.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_27.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_28.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_29.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_3.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_30.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_31.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_32.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_33.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_34.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_35.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_36.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_37.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_38.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_39.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_4.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_40.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_41.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_42.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_43.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_44.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_45.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_46.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_47.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_48.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_49.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_5.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_6.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_7.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_8.js
+built-ins/Object/prototype/hasOwnProperty/8.12.1-1_9.js
+built-ins/Object/prototype/hasOwnProperty/S15.2.4.5_A1_T1.js
+built-ins/Object/prototype/hasOwnProperty/S15.2.4.5_A1_T2.js
+built-ins/Object/prototype/hasOwnProperty/S15.2.4.5_A1_T3.js
+built-ins/Object/prototype/hasOwnProperty/S15.2.4.5_A12.js
+built-ins/Object/prototype/hasOwnProperty/S15.2.4.5_A13.js
+built-ins/Object/prototype/hasOwnProperty/S15.2.4.5_A6.js
+built-ins/Object/prototype/hasOwnProperty/S15.2.4.5_A7.js
+built-ins/Object/prototype/propertyIsEnumerable/S15.2.4.7_A1_T1.js
+built-ins/Object/prototype/propertyIsEnumerable/S15.2.4.7_A10.js
+built-ins/Object/prototype/propertyIsEnumerable/S15.2.4.7_A11.js
+built-ins/Object/prototype/propertyIsEnumerable/S15.2.4.7_A12.js
+built-ins/Object/prototype/propertyIsEnumerable/S15.2.4.7_A13.js
+built-ins/Object/prototype/propertyIsEnumerable/S15.2.4.7_A2_T1.js
+built-ins/Object/prototype/propertyIsEnumerable/S15.2.4.7_A2_T2.js
+built-ins/Object/prototype/propertyIsEnumerable/S15.2.4.7_A6.js
+built-ins/Object/prototype/propertyIsEnumerable/S15.2.4.7_A7.js
+built-ins/Object/prototype/propertyIsEnumerable/S15.2.4.7_A8.js
+built-ins/Object/prototype/propertyIsEnumerable/S15.2.4.7_A9.js
+built-ins/Object/prototype/S15.2.3.1_A1.js
+built-ins/Object/prototype/S15.2.3.1_A2.js
+built-ins/Object/prototype/S15.2.3.1_A3.js
+built-ins/Object/prototype/S15.2.4_A1_T1.js
+built-ins/Object/prototype/S15.2.4_A1_T2.js
+built-ins/Object/prototype/S15.2.4_A2.js
+built-ins/Object/prototype/S15.2.4_A3.js
+built-ins/Object/prototype/S15.2.4_A4.js
+built-ins/Object/prototype/toLocaleString/S15.2.4.3_A1.js
+built-ins/Object/prototype/toLocaleString/S15.2.4.3_A10.js
+built-ins/Object/prototype/toLocaleString/S15.2.4.3_A11.js
+built-ins/Object/prototype/toLocaleString/S15.2.4.3_A12.js
+built-ins/Object/prototype/toLocaleString/S15.2.4.3_A13.js
+built-ins/Object/prototype/toLocaleString/S15.2.4.3_A6.js
+built-ins/Object/prototype/toLocaleString/S15.2.4.3_A7.js
+built-ins/Object/prototype/toLocaleString/S15.2.4.3_A8.js
+built-ins/Object/prototype/toLocaleString/S15.2.4.3_A9.js
+built-ins/Object/prototype/toString/no-prototype-property.js
+built-ins/Object/prototype/valueOf/15.2.4.4-1.js
+built-ins/Object/prototype/valueOf/15.2.4.4-2.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A1_T1.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A1_T2.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A1_T3.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A1_T4.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A1_T5.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A1_T6.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A1_T7.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A10.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A11.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A12.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A13.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A14.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A15.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A6.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A7.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A8.js
+built-ins/Object/prototype/valueOf/S15.2.4.4_A9.js
+built-ins/Object/S15.2.1.1_A1_T1.js
+built-ins/Object/S15.2.1.1_A1_T2.js
+built-ins/Object/S15.2.1.1_A1_T3.js
+built-ins/Object/S15.2.1.1_A1_T4.js
+built-ins/Object/S15.2.1.1_A1_T5.js
+built-ins/Object/S15.2.1.1_A2_T1.js
+built-ins/Object/S15.2.1.1_A2_T10.js
+built-ins/Object/S15.2.1.1_A2_T11.js
+built-ins/Object/S15.2.1.1_A2_T12.js
+built-ins/Object/S15.2.1.1_A2_T13.js
+built-ins/Object/S15.2.1.1_A2_T14.js
+built-ins/Object/S15.2.1.1_A2_T2.js
+built-ins/Object/S15.2.1.1_A2_T3.js
+built-ins/Object/S15.2.1.1_A2_T4.js
+built-ins/Object/S15.2.1.1_A2_T5.js
+built-ins/Object/S15.2.1.1_A2_T6.js
+built-ins/Object/S15.2.1.1_A2_T7.js
+built-ins/Object/S15.2.1.1_A2_T8.js
+built-ins/Object/S15.2.1.1_A2_T9.js
+built-ins/Object/S15.2.1.1_A3_T1.js
+built-ins/Object/S15.2.1.1_A3_T2.js
+built-ins/Object/S15.2.1.1_A3_T3.js
+built-ins/Object/S15.2.2.1_A1_T1.js
+built-ins/Object/S15.2.2.1_A1_T2.js
+built-ins/Object/S15.2.2.1_A1_T3.js
+built-ins/Object/S15.2.2.1_A1_T4.js
+built-ins/Object/S15.2.2.1_A1_T5.js
+built-ins/Object/S15.2.2.1_A2_T1.js
+built-ins/Object/S15.2.2.1_A2_T2.js
+built-ins/Object/S15.2.2.1_A2_T3.js
+built-ins/Object/S15.2.2.1_A2_T5.js
+built-ins/Object/S15.2.2.1_A2_T6.js
+built-ins/Object/S15.2.2.1_A2_T7.js
+built-ins/Object/S15.2.2.1_A3_T1.js
+built-ins/Object/S15.2.2.1_A3_T2.js
+built-ins/Object/S15.2.2.1_A3_T3.js
+built-ins/Object/S15.2.2.1_A4_T1.js
+built-ins/Object/S15.2.2.1_A4_T2.js
+built-ins/Object/S15.2.2.1_A4_T3.js
+built-ins/Object/S15.2.2.1_A5_T1.js
+built-ins/Object/S15.2.2.1_A5_T2.js
+built-ins/Object/S15.2.2.1_A5_T3.js
+built-ins/Object/S15.2.2.1_A5_T4.js
+built-ins/Object/S15.2.2.1_A6_T1.js
+built-ins/Object/S15.2.2.1_A6_T2.js
+built-ins/Object/S15.2.2.1_A6_T3.js
+built-ins/Object/S15.2.3_A1.js
+built-ins/Object/S15.2.3_A2.js
+built-ins/Object/S15.2.3_A3.js
+built-ins/Object/S15.2_A1.js
+built-ins/Object/S9.9_A3.js
+built-ins/Object/S9.9_A4.js
+built-ins/Object/S9.9_A5.js
+built-ins/Object/S9.9_A6.js
+built-ins/parseInt/S15.1.2.2_A3.1_T6.js
+built-ins/RegExp/15.10.2.15-6-1.js
+built-ins/RegExp/15.10.2.5-3-1.js
+built-ins/RegExp/15.10.4.1-1.js
+built-ins/RegExp/15.10.4.1-2.js
+built-ins/RegExp/15.10.4.1-3.js
+built-ins/RegExp/15.10.4.1-4.js
+built-ins/RegExp/prototype/15.10.6.js
+built-ins/RegExp/prototype/exec/15.10.6.2-9-e-1.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T1.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T10.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T11.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T12.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T13.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T14.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T15.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T16.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T17.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T18.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T19.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T2.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T20.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T21.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T3.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T4.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T5.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T6.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T7.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T8.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T9.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A10.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A11.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A12.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A2_T1.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A2_T10.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A2_T2.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A2_T3.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A2_T4.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A2_T5.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A2_T6.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A2_T7.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A2_T8.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A2_T9.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A3_T1.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A3_T2.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A3_T3.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A3_T4.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A3_T5.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A3_T6.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A3_T7.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A4_T1.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A4_T10.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A4_T11.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A4_T12.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A4_T2.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A4_T3.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A4_T4.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A4_T5.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A4_T6.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A4_T7.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A4_T8.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A4_T9.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A5_T1.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A5_T2.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A5_T3.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A6.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A7.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A8.js
+built-ins/RegExp/prototype/exec/S15.10.6.2_A9.js
+built-ins/RegExp/prototype/global/15.10.7.2-2.js
+built-ins/RegExp/prototype/global/S15.10.7.2_A10.js
+built-ins/RegExp/prototype/global/S15.10.7.2_A8.js
+built-ins/RegExp/prototype/global/S15.10.7.2_A9.js
+built-ins/RegExp/prototype/ignoreCase/15.10.7.3-2.js
+built-ins/RegExp/prototype/ignoreCase/S15.10.7.3_A10.js
+built-ins/RegExp/prototype/ignoreCase/S15.10.7.3_A8.js
+built-ins/RegExp/prototype/ignoreCase/S15.10.7.3_A9.js
+built-ins/RegExp/prototype/multiline/15.10.7.4-2.js
+built-ins/RegExp/prototype/multiline/S15.10.7.4_A10.js
+built-ins/RegExp/prototype/multiline/S15.10.7.4_A8.js
+built-ins/RegExp/prototype/multiline/S15.10.7.4_A9.js
+built-ins/RegExp/prototype/S15.10.5.1_A1.js
+built-ins/RegExp/prototype/S15.10.5.1_A2.js
+built-ins/RegExp/prototype/S15.10.5.1_A3.js
+built-ins/RegExp/prototype/S15.10.5.1_A4.js
+built-ins/RegExp/prototype/S15.10.6.1_A1_T1.js
+built-ins/RegExp/prototype/S15.10.6.1_A1_T2.js
+built-ins/RegExp/prototype/S15.10.6_A1_T1.js
+built-ins/RegExp/prototype/S15.10.6_A1_T2.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T1.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T10.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T11.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T12.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T13.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T14.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T15.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T16.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T17.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T18.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T19.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T2.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T20.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T21.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T22.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T3.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T4.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T5.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T6.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T7.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T8.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A1_T9.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A10.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A11.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A2_T1.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A2_T10.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A2_T2.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A2_T3.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A2_T4.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A2_T5.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A2_T6.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A2_T7.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A2_T8.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A2_T9.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A6.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A7.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A8.js
+built-ins/RegExp/prototype/test/S15.10.6.3_A9.js
+built-ins/RegExp/prototype/toString/S15.10.6.4_A10.js
+built-ins/RegExp/prototype/toString/S15.10.6.4_A11.js
+built-ins/RegExp/prototype/toString/S15.10.6.4_A6.js
+built-ins/RegExp/prototype/toString/S15.10.6.4_A7.js
+built-ins/RegExp/prototype/toString/S15.10.6.4_A8.js
+built-ins/RegExp/prototype/toString/S15.10.6.4_A9.js
+built-ins/RegExp/S15.10.1_A1_T1.js
+built-ins/RegExp/S15.10.1_A1_T10.js
+built-ins/RegExp/S15.10.1_A1_T11.js
+built-ins/RegExp/S15.10.1_A1_T12.js
+built-ins/RegExp/S15.10.1_A1_T13.js
+built-ins/RegExp/S15.10.1_A1_T14.js
+built-ins/RegExp/S15.10.1_A1_T15.js
+built-ins/RegExp/S15.10.1_A1_T16.js
+built-ins/RegExp/S15.10.1_A1_T2.js
+built-ins/RegExp/S15.10.1_A1_T3.js
+built-ins/RegExp/S15.10.1_A1_T4.js
+built-ins/RegExp/S15.10.1_A1_T5.js
+built-ins/RegExp/S15.10.1_A1_T6.js
+built-ins/RegExp/S15.10.1_A1_T7.js
+built-ins/RegExp/S15.10.1_A1_T8.js
+built-ins/RegExp/S15.10.1_A1_T9.js
+built-ins/RegExp/S15.10.2.10_A1.1_T1.js
+built-ins/RegExp/S15.10.2.10_A1.2_T1.js
+built-ins/RegExp/S15.10.2.10_A1.3_T1.js
+built-ins/RegExp/S15.10.2.10_A1.4_T1.js
+built-ins/RegExp/S15.10.2.10_A1.5_T1.js
+built-ins/RegExp/S15.10.2.10_A2.1_T1.js
+built-ins/RegExp/S15.10.2.10_A2.1_T2.js
+built-ins/RegExp/S15.10.2.10_A3.1_T1.js
+built-ins/RegExp/S15.10.2.10_A3.1_T2.js
+built-ins/RegExp/S15.10.2.10_A4.1_T1.js
+built-ins/RegExp/S15.10.2.10_A4.1_T2.js
+built-ins/RegExp/S15.10.2.10_A4.1_T3.js
+built-ins/RegExp/S15.10.2.10_A5.1_T1.js
+built-ins/RegExp/S15.10.2.11_A1_T1.js
+built-ins/RegExp/S15.10.2.11_A1_T4.js
+built-ins/RegExp/S15.10.2.11_A1_T5.js
+built-ins/RegExp/S15.10.2.11_A1_T6.js
+built-ins/RegExp/S15.10.2.11_A1_T7.js
+built-ins/RegExp/S15.10.2.11_A1_T8.js
+built-ins/RegExp/S15.10.2.11_A1_T9.js
+built-ins/RegExp/S15.10.2.12_A3_T5.js
+built-ins/RegExp/S15.10.2.12_A4_T5.js
+built-ins/RegExp/S15.10.2.13_A1_T1.js
+built-ins/RegExp/S15.10.2.13_A1_T10.js
+built-ins/RegExp/S15.10.2.13_A1_T11.js
+built-ins/RegExp/S15.10.2.13_A1_T12.js
+built-ins/RegExp/S15.10.2.13_A1_T13.js
+built-ins/RegExp/S15.10.2.13_A1_T14.js
+built-ins/RegExp/S15.10.2.13_A1_T15.js
+built-ins/RegExp/S15.10.2.13_A1_T17.js
+built-ins/RegExp/S15.10.2.13_A1_T2.js
+built-ins/RegExp/S15.10.2.13_A1_T3.js
+built-ins/RegExp/S15.10.2.13_A1_T4.js
+built-ins/RegExp/S15.10.2.13_A1_T5.js
+built-ins/RegExp/S15.10.2.13_A1_T6.js
+built-ins/RegExp/S15.10.2.13_A1_T7.js
+built-ins/RegExp/S15.10.2.13_A1_T8.js
+built-ins/RegExp/S15.10.2.13_A1_T9.js
+built-ins/RegExp/S15.10.2.13_A2_T1.js
+built-ins/RegExp/S15.10.2.13_A2_T2.js
+built-ins/RegExp/S15.10.2.13_A2_T3.js
+built-ins/RegExp/S15.10.2.13_A2_T4.js
+built-ins/RegExp/S15.10.2.13_A2_T5.js
+built-ins/RegExp/S15.10.2.13_A2_T6.js
+built-ins/RegExp/S15.10.2.13_A2_T7.js
+built-ins/RegExp/S15.10.2.13_A2_T8.js
+built-ins/RegExp/S15.10.2.13_A3_T1.js
+built-ins/RegExp/S15.10.2.13_A3_T2.js
+built-ins/RegExp/S15.10.2.13_A3_T3.js
+built-ins/RegExp/S15.10.2.13_A3_T4.js
+built-ins/RegExp/S15.10.2.15_A1_T1.js
+built-ins/RegExp/S15.10.2.15_A1_T10.js
+built-ins/RegExp/S15.10.2.15_A1_T11.js
+built-ins/RegExp/S15.10.2.15_A1_T12.js
+built-ins/RegExp/S15.10.2.15_A1_T13.js
+built-ins/RegExp/S15.10.2.15_A1_T14.js
+built-ins/RegExp/S15.10.2.15_A1_T15.js
+built-ins/RegExp/S15.10.2.15_A1_T16.js
+built-ins/RegExp/S15.10.2.15_A1_T17.js
+built-ins/RegExp/S15.10.2.15_A1_T18.js
+built-ins/RegExp/S15.10.2.15_A1_T19.js
+built-ins/RegExp/S15.10.2.15_A1_T2.js
+built-ins/RegExp/S15.10.2.15_A1_T20.js
+built-ins/RegExp/S15.10.2.15_A1_T21.js
+built-ins/RegExp/S15.10.2.15_A1_T22.js
+built-ins/RegExp/S15.10.2.15_A1_T23.js
+built-ins/RegExp/S15.10.2.15_A1_T24.js
+built-ins/RegExp/S15.10.2.15_A1_T25.js
+built-ins/RegExp/S15.10.2.15_A1_T26.js
+built-ins/RegExp/S15.10.2.15_A1_T27.js
+built-ins/RegExp/S15.10.2.15_A1_T28.js
+built-ins/RegExp/S15.10.2.15_A1_T29.js
+built-ins/RegExp/S15.10.2.15_A1_T3.js
+built-ins/RegExp/S15.10.2.15_A1_T30.js
+built-ins/RegExp/S15.10.2.15_A1_T31.js
+built-ins/RegExp/S15.10.2.15_A1_T32.js
+built-ins/RegExp/S15.10.2.15_A1_T33.js
+built-ins/RegExp/S15.10.2.15_A1_T34.js
+built-ins/RegExp/S15.10.2.15_A1_T35.js
+built-ins/RegExp/S15.10.2.15_A1_T36.js
+built-ins/RegExp/S15.10.2.15_A1_T37.js
+built-ins/RegExp/S15.10.2.15_A1_T38.js
+built-ins/RegExp/S15.10.2.15_A1_T39.js
+built-ins/RegExp/S15.10.2.15_A1_T4.js
+built-ins/RegExp/S15.10.2.15_A1_T40.js
+built-ins/RegExp/S15.10.2.15_A1_T41.js
+built-ins/RegExp/S15.10.2.15_A1_T5.js
+built-ins/RegExp/S15.10.2.15_A1_T6.js
+built-ins/RegExp/S15.10.2.15_A1_T7.js
+built-ins/RegExp/S15.10.2.15_A1_T8.js
+built-ins/RegExp/S15.10.2.15_A1_T9.js
+built-ins/RegExp/S15.10.2.3_A1_T1.js
+built-ins/RegExp/S15.10.2.3_A1_T10.js
+built-ins/RegExp/S15.10.2.3_A1_T11.js
+built-ins/RegExp/S15.10.2.3_A1_T12.js
+built-ins/RegExp/S15.10.2.3_A1_T13.js
+built-ins/RegExp/S15.10.2.3_A1_T14.js
+built-ins/RegExp/S15.10.2.3_A1_T15.js
+built-ins/RegExp/S15.10.2.3_A1_T16.js
+built-ins/RegExp/S15.10.2.3_A1_T17.js
+built-ins/RegExp/S15.10.2.3_A1_T2.js
+built-ins/RegExp/S15.10.2.3_A1_T3.js
+built-ins/RegExp/S15.10.2.3_A1_T4.js
+built-ins/RegExp/S15.10.2.3_A1_T5.js
+built-ins/RegExp/S15.10.2.3_A1_T6.js
+built-ins/RegExp/S15.10.2.3_A1_T7.js
+built-ins/RegExp/S15.10.2.3_A1_T8.js
+built-ins/RegExp/S15.10.2.3_A1_T9.js
+built-ins/RegExp/S15.10.2.5_A1_T1.js
+built-ins/RegExp/S15.10.2.5_A1_T2.js
+built-ins/RegExp/S15.10.2.5_A1_T3.js
+built-ins/RegExp/S15.10.2.5_A1_T4.js
+built-ins/RegExp/S15.10.2.5_A1_T5.js
+built-ins/RegExp/S15.10.2.6_A1_T1.js
+built-ins/RegExp/S15.10.2.6_A1_T2.js
+built-ins/RegExp/S15.10.2.6_A1_T3.js
+built-ins/RegExp/S15.10.2.6_A1_T4.js
+built-ins/RegExp/S15.10.2.6_A1_T5.js
+built-ins/RegExp/S15.10.2.6_A2_T1.js
+built-ins/RegExp/S15.10.2.6_A2_T10.js
+built-ins/RegExp/S15.10.2.6_A2_T2.js
+built-ins/RegExp/S15.10.2.6_A2_T3.js
+built-ins/RegExp/S15.10.2.6_A2_T4.js
+built-ins/RegExp/S15.10.2.6_A2_T5.js
+built-ins/RegExp/S15.10.2.6_A2_T6.js
+built-ins/RegExp/S15.10.2.6_A2_T7.js
+built-ins/RegExp/S15.10.2.6_A2_T8.js
+built-ins/RegExp/S15.10.2.6_A2_T9.js
+built-ins/RegExp/S15.10.2.6_A3_T1.js
+built-ins/RegExp/S15.10.2.6_A3_T10.js
+built-ins/RegExp/S15.10.2.6_A3_T11.js
+built-ins/RegExp/S15.10.2.6_A3_T12.js
+built-ins/RegExp/S15.10.2.6_A3_T13.js
+built-ins/RegExp/S15.10.2.6_A3_T14.js
+built-ins/RegExp/S15.10.2.6_A3_T15.js
+built-ins/RegExp/S15.10.2.6_A3_T2.js
+built-ins/RegExp/S15.10.2.6_A3_T3.js
+built-ins/RegExp/S15.10.2.6_A3_T4.js
+built-ins/RegExp/S15.10.2.6_A3_T5.js
+built-ins/RegExp/S15.10.2.6_A3_T6.js
+built-ins/RegExp/S15.10.2.6_A3_T7.js
+built-ins/RegExp/S15.10.2.6_A3_T8.js
+built-ins/RegExp/S15.10.2.6_A3_T9.js
+built-ins/RegExp/S15.10.2.6_A4_T1.js
+built-ins/RegExp/S15.10.2.6_A4_T2.js
+built-ins/RegExp/S15.10.2.6_A4_T3.js
+built-ins/RegExp/S15.10.2.6_A4_T4.js
+built-ins/RegExp/S15.10.2.6_A4_T5.js
+built-ins/RegExp/S15.10.2.6_A4_T6.js
+built-ins/RegExp/S15.10.2.6_A4_T7.js
+built-ins/RegExp/S15.10.2.6_A4_T8.js
+built-ins/RegExp/S15.10.2.6_A5_T1.js
+built-ins/RegExp/S15.10.2.6_A5_T2.js
+built-ins/RegExp/S15.10.2.6_A6_T1.js
+built-ins/RegExp/S15.10.2.6_A6_T2.js
+built-ins/RegExp/S15.10.2.6_A6_T3.js
+built-ins/RegExp/S15.10.2.6_A6_T4.js
+built-ins/RegExp/S15.10.2.7_A1_T1.js
+built-ins/RegExp/S15.10.2.7_A1_T10.js
+built-ins/RegExp/S15.10.2.7_A1_T11.js
+built-ins/RegExp/S15.10.2.7_A1_T12.js
+built-ins/RegExp/S15.10.2.7_A1_T2.js
+built-ins/RegExp/S15.10.2.7_A1_T3.js
+built-ins/RegExp/S15.10.2.7_A1_T4.js
+built-ins/RegExp/S15.10.2.7_A1_T5.js
+built-ins/RegExp/S15.10.2.7_A1_T6.js
+built-ins/RegExp/S15.10.2.7_A1_T7.js
+built-ins/RegExp/S15.10.2.7_A1_T8.js
+built-ins/RegExp/S15.10.2.7_A1_T9.js
+built-ins/RegExp/S15.10.2.7_A2_T1.js
+built-ins/RegExp/S15.10.2.7_A2_T2.js
+built-ins/RegExp/S15.10.2.7_A2_T3.js
+built-ins/RegExp/S15.10.2.7_A2_T4.js
+built-ins/RegExp/S15.10.2.7_A3_T1.js
+built-ins/RegExp/S15.10.2.7_A3_T10.js
+built-ins/RegExp/S15.10.2.7_A3_T11.js
+built-ins/RegExp/S15.10.2.7_A3_T12.js
+built-ins/RegExp/S15.10.2.7_A3_T13.js
+built-ins/RegExp/S15.10.2.7_A3_T14.js
+built-ins/RegExp/S15.10.2.7_A3_T2.js
+built-ins/RegExp/S15.10.2.7_A3_T3.js
+built-ins/RegExp/S15.10.2.7_A3_T4.js
+built-ins/RegExp/S15.10.2.7_A3_T5.js
+built-ins/RegExp/S15.10.2.7_A3_T6.js
+built-ins/RegExp/S15.10.2.7_A3_T7.js
+built-ins/RegExp/S15.10.2.7_A3_T8.js
+built-ins/RegExp/S15.10.2.7_A3_T9.js
+built-ins/RegExp/S15.10.2.7_A4_T1.js
+built-ins/RegExp/S15.10.2.7_A4_T10.js
+built-ins/RegExp/S15.10.2.7_A4_T11.js
+built-ins/RegExp/S15.10.2.7_A4_T12.js
+built-ins/RegExp/S15.10.2.7_A4_T13.js
+built-ins/RegExp/S15.10.2.7_A4_T14.js
+built-ins/RegExp/S15.10.2.7_A4_T15.js
+built-ins/RegExp/S15.10.2.7_A4_T16.js
+built-ins/RegExp/S15.10.2.7_A4_T17.js
+built-ins/RegExp/S15.10.2.7_A4_T18.js
+built-ins/RegExp/S15.10.2.7_A4_T19.js
+built-ins/RegExp/S15.10.2.7_A4_T2.js
+built-ins/RegExp/S15.10.2.7_A4_T20.js
+built-ins/RegExp/S15.10.2.7_A4_T21.js
+built-ins/RegExp/S15.10.2.7_A4_T3.js
+built-ins/RegExp/S15.10.2.7_A4_T4.js
+built-ins/RegExp/S15.10.2.7_A4_T5.js
+built-ins/RegExp/S15.10.2.7_A4_T6.js
+built-ins/RegExp/S15.10.2.7_A4_T7.js
+built-ins/RegExp/S15.10.2.7_A4_T8.js
+built-ins/RegExp/S15.10.2.7_A4_T9.js
+built-ins/RegExp/S15.10.2.7_A5_T1.js
+built-ins/RegExp/S15.10.2.7_A5_T10.js
+built-ins/RegExp/S15.10.2.7_A5_T11.js
+built-ins/RegExp/S15.10.2.7_A5_T12.js
+built-ins/RegExp/S15.10.2.7_A5_T2.js
+built-ins/RegExp/S15.10.2.7_A5_T3.js
+built-ins/RegExp/S15.10.2.7_A5_T4.js
+built-ins/RegExp/S15.10.2.7_A5_T5.js
+built-ins/RegExp/S15.10.2.7_A5_T6.js
+built-ins/RegExp/S15.10.2.7_A5_T7.js
+built-ins/RegExp/S15.10.2.7_A5_T8.js
+built-ins/RegExp/S15.10.2.7_A5_T9.js
+built-ins/RegExp/S15.10.2.7_A6_T1.js
+built-ins/RegExp/S15.10.2.7_A6_T2.js
+built-ins/RegExp/S15.10.2.7_A6_T3.js
+built-ins/RegExp/S15.10.2.7_A6_T4.js
+built-ins/RegExp/S15.10.2.7_A6_T5.js
+built-ins/RegExp/S15.10.2.7_A6_T6.js
+built-ins/RegExp/S15.10.2.8_A1_T1.js
+built-ins/RegExp/S15.10.2.8_A1_T2.js
+built-ins/RegExp/S15.10.2.8_A1_T3.js
+built-ins/RegExp/S15.10.2.8_A1_T4.js
+built-ins/RegExp/S15.10.2.8_A1_T5.js
+built-ins/RegExp/S15.10.2.8_A2_T1.js
+built-ins/RegExp/S15.10.2.8_A2_T10.js
+built-ins/RegExp/S15.10.2.8_A2_T11.js
+built-ins/RegExp/S15.10.2.8_A2_T2.js
+built-ins/RegExp/S15.10.2.8_A2_T3.js
+built-ins/RegExp/S15.10.2.8_A2_T4.js
+built-ins/RegExp/S15.10.2.8_A2_T5.js
+built-ins/RegExp/S15.10.2.8_A2_T6.js
+built-ins/RegExp/S15.10.2.8_A2_T7.js
+built-ins/RegExp/S15.10.2.8_A2_T8.js
+built-ins/RegExp/S15.10.2.8_A2_T9.js
+built-ins/RegExp/S15.10.2.8_A3_T1.js
+built-ins/RegExp/S15.10.2.8_A3_T10.js
+built-ins/RegExp/S15.10.2.8_A3_T11.js
+built-ins/RegExp/S15.10.2.8_A3_T12.js
+built-ins/RegExp/S15.10.2.8_A3_T13.js
+built-ins/RegExp/S15.10.2.8_A3_T14.js
+built-ins/RegExp/S15.10.2.8_A3_T15.js
+built-ins/RegExp/S15.10.2.8_A3_T16.js
+built-ins/RegExp/S15.10.2.8_A3_T17.js
+built-ins/RegExp/S15.10.2.8_A3_T18.js
+built-ins/RegExp/S15.10.2.8_A3_T19.js
+built-ins/RegExp/S15.10.2.8_A3_T2.js
+built-ins/RegExp/S15.10.2.8_A3_T20.js
+built-ins/RegExp/S15.10.2.8_A3_T21.js
+built-ins/RegExp/S15.10.2.8_A3_T22.js
+built-ins/RegExp/S15.10.2.8_A3_T23.js
+built-ins/RegExp/S15.10.2.8_A3_T24.js
+built-ins/RegExp/S15.10.2.8_A3_T25.js
+built-ins/RegExp/S15.10.2.8_A3_T26.js
+built-ins/RegExp/S15.10.2.8_A3_T27.js
+built-ins/RegExp/S15.10.2.8_A3_T28.js
+built-ins/RegExp/S15.10.2.8_A3_T29.js
+built-ins/RegExp/S15.10.2.8_A3_T3.js
+built-ins/RegExp/S15.10.2.8_A3_T30.js
+built-ins/RegExp/S15.10.2.8_A3_T31.js
+built-ins/RegExp/S15.10.2.8_A3_T32.js
+built-ins/RegExp/S15.10.2.8_A3_T33.js
+built-ins/RegExp/S15.10.2.8_A3_T4.js
+built-ins/RegExp/S15.10.2.8_A3_T5.js
+built-ins/RegExp/S15.10.2.8_A3_T6.js
+built-ins/RegExp/S15.10.2.8_A3_T7.js
+built-ins/RegExp/S15.10.2.8_A3_T8.js
+built-ins/RegExp/S15.10.2.8_A3_T9.js
+built-ins/RegExp/S15.10.2.8_A4_T1.js
+built-ins/RegExp/S15.10.2.8_A4_T2.js
+built-ins/RegExp/S15.10.2.8_A4_T3.js
+built-ins/RegExp/S15.10.2.8_A4_T4.js
+built-ins/RegExp/S15.10.2.8_A4_T5.js
+built-ins/RegExp/S15.10.2.8_A4_T6.js
+built-ins/RegExp/S15.10.2.8_A4_T7.js
+built-ins/RegExp/S15.10.2.8_A4_T8.js
+built-ins/RegExp/S15.10.2.8_A4_T9.js
+built-ins/RegExp/S15.10.2.8_A5_T1.js
+built-ins/RegExp/S15.10.2.8_A5_T2.js
+built-ins/RegExp/S15.10.2.9_A1_T1.js
+built-ins/RegExp/S15.10.2.9_A1_T2.js
+built-ins/RegExp/S15.10.2.9_A1_T3.js
+built-ins/RegExp/S15.10.2.9_A1_T5.js
+built-ins/RegExp/S15.10.2_A1_T1.js
+built-ins/RegExp/S15.10.3.1_A1_T1.js
+built-ins/RegExp/S15.10.3.1_A1_T2.js
+built-ins/RegExp/S15.10.3.1_A1_T3.js
+built-ins/RegExp/S15.10.3.1_A1_T4.js
+built-ins/RegExp/S15.10.3.1_A1_T5.js
+built-ins/RegExp/S15.10.3.1_A2_T1.js
+built-ins/RegExp/S15.10.3.1_A2_T2.js
+built-ins/RegExp/S15.10.3.1_A3_T1.js
+built-ins/RegExp/S15.10.3.1_A3_T2.js
+built-ins/RegExp/S15.10.4.1_A1_T1.js
+built-ins/RegExp/S15.10.4.1_A1_T2.js
+built-ins/RegExp/S15.10.4.1_A1_T3.js
+built-ins/RegExp/S15.10.4.1_A1_T4.js
+built-ins/RegExp/S15.10.4.1_A1_T5.js
+built-ins/RegExp/S15.10.4.1_A2_T1.js
+built-ins/RegExp/S15.10.4.1_A2_T2.js
+built-ins/RegExp/S15.10.4.1_A3_T1.js
+built-ins/RegExp/S15.10.4.1_A3_T2.js
+built-ins/RegExp/S15.10.4.1_A3_T3.js
+built-ins/RegExp/S15.10.4.1_A3_T4.js
+built-ins/RegExp/S15.10.4.1_A3_T5.js
+built-ins/RegExp/S15.10.4.1_A4_T1.js
+built-ins/RegExp/S15.10.4.1_A4_T2.js
+built-ins/RegExp/S15.10.4.1_A4_T3.js
+built-ins/RegExp/S15.10.4.1_A4_T4.js
+built-ins/RegExp/S15.10.4.1_A4_T5.js
+built-ins/RegExp/S15.10.4.1_A5_T1.js
+built-ins/RegExp/S15.10.4.1_A5_T3.js
+built-ins/RegExp/S15.10.4.1_A5_T4.js
+built-ins/RegExp/S15.10.4.1_A5_T6.js
+built-ins/RegExp/S15.10.4.1_A5_T7.js
+built-ins/RegExp/S15.10.4.1_A5_T8.js
+built-ins/RegExp/S15.10.4.1_A5_T9.js
+built-ins/RegExp/S15.10.4.1_A6_T1.js
+built-ins/RegExp/S15.10.4.1_A7_T1.js
+built-ins/RegExp/S15.10.4.1_A7_T2.js
+built-ins/RegExp/S15.10.4.1_A8_T1.js
+built-ins/RegExp/S15.10.4.1_A8_T10.js
+built-ins/RegExp/S15.10.4.1_A8_T11.js
+built-ins/RegExp/S15.10.4.1_A8_T12.js
+built-ins/RegExp/S15.10.4.1_A8_T13.js
+built-ins/RegExp/S15.10.4.1_A8_T2.js
+built-ins/RegExp/S15.10.4.1_A8_T3.js
+built-ins/RegExp/S15.10.4.1_A8_T4.js
+built-ins/RegExp/S15.10.4.1_A8_T5.js
+built-ins/RegExp/S15.10.4.1_A8_T6.js
+built-ins/RegExp/S15.10.4.1_A8_T7.js
+built-ins/RegExp/S15.10.4.1_A8_T8.js
+built-ins/RegExp/S15.10.4.1_A8_T9.js
+built-ins/RegExp/S15.10.4.1_A9_T1.js
+built-ins/RegExp/S15.10.4.1_A9_T2.js
+built-ins/RegExp/S15.10.4.1_A9_T3.js
+built-ins/RegExp/S15.10.5_A1.js
+built-ins/RegExp/S15.10.5_A2_T1.js
+built-ins/RegExp/S15.10.5_A2_T2.js
+built-ins/RegExp/S15.10.7_A1_T1.js
+built-ins/RegExp/S15.10.7_A1_T2.js
+built-ins/RegExp/S15.10.7_A2_T1.js
+built-ins/RegExp/S15.10.7_A2_T2.js
+built-ins/RegExp/S15.10.7_A3_T1.js
+built-ins/RegExp/S15.10.7_A3_T2.js
+built-ins/String/15.5.5.5.2-1-1.js
+built-ins/String/15.5.5.5.2-1-2.js
+built-ins/String/15.5.5.5.2-3-1.js
+built-ins/String/15.5.5.5.2-3-2.js
+built-ins/String/15.5.5.5.2-3-3.js
+built-ins/String/15.5.5.5.2-3-4.js
+built-ins/String/15.5.5.5.2-3-5.js
+built-ins/String/15.5.5.5.2-3-6.js
+built-ins/String/15.5.5.5.2-3-7.js
+built-ins/String/15.5.5.5.2-3-8.js
+built-ins/String/15.5.5.5.2-7-1.js
+built-ins/String/15.5.5.5.2-7-2.js
+built-ins/String/15.5.5.5.2-7-3.js
+built-ins/String/15.5.5.5.2-7-4.js
+built-ins/String/fromCharCode/S15.5.3.2_A1.js
+built-ins/String/fromCharCode/S15.5.3.2_A2.js
+built-ins/String/fromCharCode/S15.5.3.2_A3_T1.js
+built-ins/String/fromCharCode/S15.5.3.2_A3_T2.js
+built-ins/String/fromCharCode/S15.5.3.2_A4.js
+built-ins/String/fromCharCode/S9.7_A1.js
+built-ins/String/fromCharCode/S9.7_A2.1.js
+built-ins/String/fromCharCode/S9.7_A2.2.js
+built-ins/String/fromCharCode/S9.7_A3.1_T1.js
+built-ins/String/fromCharCode/S9.7_A3.1_T2.js
+built-ins/String/fromCharCode/S9.7_A3.1_T3.js
+built-ins/String/fromCharCode/S9.7_A3.1_T4.js
+built-ins/String/fromCharCode/S9.7_A3.2_T1.js
+built-ins/String/prototype/charAt/S15.5.4.4_A1.1.js
+built-ins/String/prototype/charAt/S15.5.4.4_A1_T1.js
+built-ins/String/prototype/charAt/S15.5.4.4_A1_T10.js
+built-ins/String/prototype/charAt/S15.5.4.4_A1_T2.js
+built-ins/String/prototype/charAt/S15.5.4.4_A1_T4.js
+built-ins/String/prototype/charAt/S15.5.4.4_A1_T5.js
+built-ins/String/prototype/charAt/S15.5.4.4_A1_T6.js
+built-ins/String/prototype/charAt/S15.5.4.4_A1_T7.js
+built-ins/String/prototype/charAt/S15.5.4.4_A1_T8.js
+built-ins/String/prototype/charAt/S15.5.4.4_A1_T9.js
+built-ins/String/prototype/charAt/S15.5.4.4_A10.js
+built-ins/String/prototype/charAt/S15.5.4.4_A11.js
+built-ins/String/prototype/charAt/S15.5.4.4_A2.js
+built-ins/String/prototype/charAt/S15.5.4.4_A3.js
+built-ins/String/prototype/charAt/S15.5.4.4_A4_T1.js
+built-ins/String/prototype/charAt/S15.5.4.4_A4_T2.js
+built-ins/String/prototype/charAt/S15.5.4.4_A4_T3.js
+built-ins/String/prototype/charAt/S15.5.4.4_A5.js
+built-ins/String/prototype/charAt/S15.5.4.4_A6.js
+built-ins/String/prototype/charAt/S15.5.4.4_A7.js
+built-ins/String/prototype/charAt/S15.5.4.4_A8.js
+built-ins/String/prototype/charAt/S15.5.4.4_A9.js
+built-ins/String/prototype/charAt/S9.4_A1.js
+built-ins/String/prototype/charAt/S9.4_A2.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A1.1.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A1_T1.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A1_T10.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A1_T2.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A1_T4.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A1_T5.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A1_T6.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A1_T7.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A1_T8.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A1_T9.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A10.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A11.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A2.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A3.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A4.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A6.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A7.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A8.js
+built-ins/String/prototype/charCodeAt/S15.5.4.5_A9.js
+built-ins/String/prototype/concat/S15.5.4.6_A1_T1.js
+built-ins/String/prototype/concat/S15.5.4.6_A1_T10.js
+built-ins/String/prototype/concat/S15.5.4.6_A1_T2.js
+built-ins/String/prototype/concat/S15.5.4.6_A1_T4.js
+built-ins/String/prototype/concat/S15.5.4.6_A1_T5.js
+built-ins/String/prototype/concat/S15.5.4.6_A1_T6.js
+built-ins/String/prototype/concat/S15.5.4.6_A1_T7.js
+built-ins/String/prototype/concat/S15.5.4.6_A1_T8.js
+built-ins/String/prototype/concat/S15.5.4.6_A1_T9.js
+built-ins/String/prototype/concat/S15.5.4.6_A10.js
+built-ins/String/prototype/concat/S15.5.4.6_A11.js
+built-ins/String/prototype/concat/S15.5.4.6_A2.js
+built-ins/String/prototype/concat/S15.5.4.6_A3.js
+built-ins/String/prototype/concat/S15.5.4.6_A4_T1.js
+built-ins/String/prototype/concat/S15.5.4.6_A4_T2.js
+built-ins/String/prototype/concat/S15.5.4.6_A6.js
+built-ins/String/prototype/concat/S15.5.4.6_A7.js
+built-ins/String/prototype/concat/S15.5.4.6_A8.js
+built-ins/String/prototype/concat/S15.5.4.6_A9.js
+built-ins/String/prototype/constructor/S15.5.4.1_A1_T1.js
+built-ins/String/prototype/constructor/S15.5.4.1_A1_T2.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A1_T1.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A1_T10.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A1_T12.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A1_T2.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A1_T4.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A1_T5.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A1_T6.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A1_T7.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A1_T8.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A1_T9.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A10.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A11.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A2_T1.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A2_T2.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A2_T3.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A2_T4.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A3_T1.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A3_T2.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A3_T3.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A4_T1.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A4_T2.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A4_T3.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A4_T4.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A4_T5.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A5_T1.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A5_T2.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A5_T3.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A5_T4.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A5_T5.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A5_T6.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A6.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A7.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A8.js
+built-ins/String/prototype/indexOf/S15.5.4.7_A9.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A1_T1.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A1_T10.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A1_T12.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A1_T2.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A1_T4.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A1_T5.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A1_T6.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A1_T7.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A1_T8.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A1_T9.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A10.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A11.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A4_T1.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A4_T2.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A4_T3.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A4_T4.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A4_T5.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A6.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A7.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A8.js
+built-ins/String/prototype/lastIndexOf/S15.5.4.8_A9.js
+built-ins/String/prototype/localeCompare/15.5.4.9_3.js
+built-ins/String/prototype/localeCompare/15.5.4.9_CE.js
+built-ins/String/prototype/localeCompare/S15.5.4.9_A1_T1.js
+built-ins/String/prototype/localeCompare/S15.5.4.9_A1_T2.js
+built-ins/String/prototype/localeCompare/S15.5.4.9_A10.js
+built-ins/String/prototype/localeCompare/S15.5.4.9_A11.js
+built-ins/String/prototype/localeCompare/S15.5.4.9_A6.js
+built-ins/String/prototype/localeCompare/S15.5.4.9_A7.js
+built-ins/String/prototype/localeCompare/S15.5.4.9_A8.js
+built-ins/String/prototype/localeCompare/S15.5.4.9_A9.js
+built-ins/String/prototype/match/length.js
+built-ins/String/prototype/match/S15.5.4.10_A1_T10.js
+built-ins/String/prototype/match/S15.5.4.10_A1_T11.js
+built-ins/String/prototype/match/S15.5.4.10_A1_T12.js
+built-ins/String/prototype/match/S15.5.4.10_A1_T13.js
+built-ins/String/prototype/match/S15.5.4.10_A1_T14.js
+built-ins/String/prototype/match/S15.5.4.10_A1_T3.js
+built-ins/String/prototype/match/S15.5.4.10_A1_T4.js
+built-ins/String/prototype/match/S15.5.4.10_A1_T5.js
+built-ins/String/prototype/match/S15.5.4.10_A1_T6.js
+built-ins/String/prototype/match/S15.5.4.10_A1_T7.js
+built-ins/String/prototype/match/S15.5.4.10_A1_T8.js
+built-ins/String/prototype/match/S15.5.4.10_A1_T9.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T1.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T10.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T11.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T12.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T13.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T14.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T15.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T16.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T17.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T18.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T2.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T3.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T4.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T5.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T6.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T7.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T8.js
+built-ins/String/prototype/match/S15.5.4.10_A2_T9.js
+built-ins/String/prototype/match/S15.5.4.10_A6.js
+built-ins/String/prototype/match/S15.5.4.10_A7.js
+built-ins/String/prototype/match/S15.5.4.10_A8.js
+built-ins/String/prototype/match/S15.5.4.10_A9.js
+built-ins/String/prototype/match/this-val-bool.js
+built-ins/String/prototype/match/this-val-obj.js
+built-ins/String/prototype/replace/15.5.4.11-1.js
+built-ins/String/prototype/replace/S15.5.4.11_A1_T1.js
+built-ins/String/prototype/replace/S15.5.4.11_A1_T10.js
+built-ins/String/prototype/replace/S15.5.4.11_A1_T11.js
+built-ins/String/prototype/replace/S15.5.4.11_A1_T12.js
+built-ins/String/prototype/replace/S15.5.4.11_A1_T13.js
+built-ins/String/prototype/replace/S15.5.4.11_A1_T14.js
+built-ins/String/prototype/replace/S15.5.4.11_A1_T15.js
+built-ins/String/prototype/replace/S15.5.4.11_A1_T16.js
+built-ins/String/prototype/replace/S15.5.4.11_A1_T17.js
+built-ins/String/prototype/replace/S15.5.4.11_A1_T2.js
+built-ins/String/prototype/replace/S15.5.4.11_A1_T4.js
+built-ins/String/prototype/replace/S15.5.4.11_A1_T5.js
+built-ins/String/prototype/replace/S15.5.4.11_A1_T6.js
+built-ins/String/prototype/replace/S15.5.4.11_A1_T7.js
+built-ins/String/prototype/replace/S15.5.4.11_A1_T8.js
+built-ins/String/prototype/replace/S15.5.4.11_A1_T9.js
+built-ins/String/prototype/replace/S15.5.4.11_A12.js
+built-ins/String/prototype/replace/S15.5.4.11_A2_T1.js
+built-ins/String/prototype/replace/S15.5.4.11_A2_T10.js
+built-ins/String/prototype/replace/S15.5.4.11_A2_T2.js
+built-ins/String/prototype/replace/S15.5.4.11_A2_T3.js
+built-ins/String/prototype/replace/S15.5.4.11_A2_T4.js
+built-ins/String/prototype/replace/S15.5.4.11_A2_T5.js
+built-ins/String/prototype/replace/S15.5.4.11_A2_T6.js
+built-ins/String/prototype/replace/S15.5.4.11_A2_T7.js
+built-ins/String/prototype/replace/S15.5.4.11_A2_T8.js
+built-ins/String/prototype/replace/S15.5.4.11_A2_T9.js
+built-ins/String/prototype/replace/S15.5.4.11_A3_T1.js
+built-ins/String/prototype/replace/S15.5.4.11_A3_T2.js
+built-ins/String/prototype/replace/S15.5.4.11_A3_T3.js
+built-ins/String/prototype/replace/S15.5.4.11_A4_T1.js
+built-ins/String/prototype/replace/S15.5.4.11_A4_T2.js
+built-ins/String/prototype/replace/S15.5.4.11_A4_T3.js
+built-ins/String/prototype/replace/S15.5.4.11_A4_T4.js
+built-ins/String/prototype/replace/S15.5.4.11_A5_T1.js
+built-ins/String/prototype/replace/S15.5.4.11_A6.js
+built-ins/String/prototype/replace/S15.5.4.11_A7.js
+built-ins/String/prototype/S15.5.3.1_A1.js
+built-ins/String/prototype/S15.5.3.1_A2.js
+built-ins/String/prototype/S15.5.3.1_A3.js
+built-ins/String/prototype/S15.5.3.1_A4.js
+built-ins/String/prototype/S15.5.4_A1.js
+built-ins/String/prototype/S15.5.4_A2.js
+built-ins/String/prototype/S15.5.4_A3.js
+built-ins/String/prototype/search/S15.5.4.12_A1.1_T1.js
+built-ins/String/prototype/search/S15.5.4.12_A1_T1.js
+built-ins/String/prototype/search/S15.5.4.12_A1_T10.js
+built-ins/String/prototype/search/S15.5.4.12_A1_T11.js
+built-ins/String/prototype/search/S15.5.4.12_A1_T12.js
+built-ins/String/prototype/search/S15.5.4.12_A1_T13.js
+built-ins/String/prototype/search/S15.5.4.12_A1_T14.js
+built-ins/String/prototype/search/S15.5.4.12_A1_T2.js
+built-ins/String/prototype/search/S15.5.4.12_A1_T4.js
+built-ins/String/prototype/search/S15.5.4.12_A1_T5.js
+built-ins/String/prototype/search/S15.5.4.12_A1_T6.js
+built-ins/String/prototype/search/S15.5.4.12_A1_T7.js
+built-ins/String/prototype/search/S15.5.4.12_A1_T8.js
+built-ins/String/prototype/search/S15.5.4.12_A1_T9.js
+built-ins/String/prototype/search/S15.5.4.12_A10.js
+built-ins/String/prototype/search/S15.5.4.12_A11.js
+built-ins/String/prototype/search/S15.5.4.12_A2_T1.js
+built-ins/String/prototype/search/S15.5.4.12_A2_T2.js
+built-ins/String/prototype/search/S15.5.4.12_A2_T3.js
+built-ins/String/prototype/search/S15.5.4.12_A2_T4.js
+built-ins/String/prototype/search/S15.5.4.12_A2_T5.js
+built-ins/String/prototype/search/S15.5.4.12_A2_T6.js
+built-ins/String/prototype/search/S15.5.4.12_A2_T7.js
+built-ins/String/prototype/search/S15.5.4.12_A3_T1.js
+built-ins/String/prototype/search/S15.5.4.12_A3_T2.js
+built-ins/String/prototype/search/S15.5.4.12_A6.js
+built-ins/String/prototype/search/S15.5.4.12_A7.js
+built-ins/String/prototype/search/S15.5.4.12_A8.js
+built-ins/String/prototype/search/S15.5.4.12_A9.js
+built-ins/String/prototype/slice/S15.5.4.13_A1_T1.js
+built-ins/String/prototype/slice/S15.5.4.13_A1_T10.js
+built-ins/String/prototype/slice/S15.5.4.13_A1_T11.js
+built-ins/String/prototype/slice/S15.5.4.13_A1_T12.js
+built-ins/String/prototype/slice/S15.5.4.13_A1_T13.js
+built-ins/String/prototype/slice/S15.5.4.13_A1_T14.js
+built-ins/String/prototype/slice/S15.5.4.13_A1_T15.js
+built-ins/String/prototype/slice/S15.5.4.13_A1_T2.js
+built-ins/String/prototype/slice/S15.5.4.13_A1_T4.js
+built-ins/String/prototype/slice/S15.5.4.13_A1_T5.js
+built-ins/String/prototype/slice/S15.5.4.13_A1_T6.js
+built-ins/String/prototype/slice/S15.5.4.13_A1_T7.js
+built-ins/String/prototype/slice/S15.5.4.13_A1_T8.js
+built-ins/String/prototype/slice/S15.5.4.13_A1_T9.js
+built-ins/String/prototype/slice/S15.5.4.13_A10.js
+built-ins/String/prototype/slice/S15.5.4.13_A11.js
+built-ins/String/prototype/slice/S15.5.4.13_A2_T1.js
+built-ins/String/prototype/slice/S15.5.4.13_A2_T2.js
+built-ins/String/prototype/slice/S15.5.4.13_A2_T3.js
+built-ins/String/prototype/slice/S15.5.4.13_A2_T4.js
+built-ins/String/prototype/slice/S15.5.4.13_A2_T5.js
+built-ins/String/prototype/slice/S15.5.4.13_A2_T6.js
+built-ins/String/prototype/slice/S15.5.4.13_A2_T7.js
+built-ins/String/prototype/slice/S15.5.4.13_A2_T8.js
+built-ins/String/prototype/slice/S15.5.4.13_A2_T9.js
+built-ins/String/prototype/slice/S15.5.4.13_A3_T1.js
+built-ins/String/prototype/slice/S15.5.4.13_A3_T2.js
+built-ins/String/prototype/slice/S15.5.4.13_A3_T3.js
+built-ins/String/prototype/slice/S15.5.4.13_A3_T4.js
+built-ins/String/prototype/slice/S15.5.4.13_A6.js
+built-ins/String/prototype/slice/S15.5.4.13_A7.js
+built-ins/String/prototype/slice/S15.5.4.13_A8.js
+built-ins/String/prototype/slice/S15.5.4.13_A9.js
+built-ins/String/prototype/split/argument-is-function-and-instance-is-string-object-object-have-overrided-to-string-and-value-of-functions.js
+built-ins/String/prototype/split/argument-is-new-reg-exp-and-instance-is-string-hello.js
+built-ins/String/prototype/split/argument-is-null-and-instance-is-function-call-that-returned-string.js
+built-ins/String/prototype/split/argument-is-object-and-instance-is-number-object-have-overrided-to-string-function-that-return-regexp.js
+built-ins/String/prototype/split/argument-is-regexp-and-instance-is-number.js
+built-ins/String/prototype/split/argument-is-regexp-a-z-and-instance-is-string-abc.js
+built-ins/String/prototype/split/argument-is-reg-exp-a-z-and-instance-is-string-abc.js
+built-ins/String/prototype/split/argument-is-regexp-d-and-instance-is-string-dfe23iu-34-65.js
+built-ins/String/prototype/split/argument-is-regexp-l-and-instance-is-string-hello.js
+built-ins/String/prototype/split/argument-is-regexp-reg-exp-d-and-instance-is-string-dfe23iu-34-65.js
+built-ins/String/prototype/split/argument-is-regexp-s-and-instance-is-string-a-b-c-de-f.js
+built-ins/String/prototype/split/argument-is-regexp-x-and-instance-is-string-a-b-c-de-f.js
+built-ins/String/prototype/split/argument-is-undefined-and-instance-is-string.js
+built-ins/String/prototype/split/argument-is-void-0-and-instance-is-string-object-object-have-overrided-to-string-function.js
+built-ins/String/prototype/split/arguments-are-boolean-expression-function-call-and-null-and-instance-is-boolean.js
+built-ins/String/prototype/split/arguments-are-false-and-true-and-instance-is-object.js
+built-ins/String/prototype/split/arguments-are-new-reg-exp-and-0-and-instance-is-string-hello.js
+built-ins/String/prototype/split/arguments-are-new-reg-exp-and-1-and-instance-is-string-hello.js
+built-ins/String/prototype/split/arguments-are-new-reg-exp-and-2-and-instance-is-string-hello.js
+built-ins/String/prototype/split/arguments-are-new-reg-exp-and-3-and-instance-is-string-hello.js
+built-ins/String/prototype/split/arguments-are-new-reg-exp-and-4-and-instance-is-string-hello.js
+built-ins/String/prototype/split/arguments-are-new-reg-exp-and-hi-and-instance-is-string-hello.js
+built-ins/String/prototype/split/arguments-are-new-reg-exp-and-undefined-and-instance-is-string-hello.js
+built-ins/String/prototype/split/arguments-are-new-reg-exp-and-void-0-and-instance-is-string-hello.js
+built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-and-value-of-function-that-throw-exception-second-object-have-overrided-value-of-function-that-throw-exception.js
+built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-second-object-have-overrided-value-of-and-to-string-functions.js
+built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-second-object-have-overrided-value-of-function.js
+built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-second-object-have-overrided-value-of-function-and-to-string-function-that-throw-exception.js
+built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-second-object-have-overrided-value-of-function-that-throw-exception.js
+built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-that-throw-exception-second-object-have-overrided-value-of-function-that-throw-exception.js
+built-ins/String/prototype/split/arguments-are-regexp-l-and-0-and-instance-is-string-hello.js
+built-ins/String/prototype/split/arguments-are-regexp-l-and-1-and-instance-is-string-hello.js
+built-ins/String/prototype/split/arguments-are-regexp-l-and-2-and-instance-is-string-hello.js
+built-ins/String/prototype/split/arguments-are-regexp-l-and-3-and-instance-is-string-hello.js
+built-ins/String/prototype/split/arguments-are-regexp-l-and-4-and-instance-is-string-hello.js
+built-ins/String/prototype/split/arguments-are-regexp-l-and-hi-and-instance-is-string-hello.js
+built-ins/String/prototype/split/arguments-are-regexp-l-and-undefined-and-instance-is-string-hello.js
+built-ins/String/prototype/split/arguments-are-regexp-l-and-void-0-and-instance-is-string-hello.js
+built-ins/String/prototype/split/arguments-are-regexp-s-and-3-and-instance-is-string-a-b-c-de-f.js
+built-ins/String/prototype/split/call-split-1-0-instance-is-number.js
+built-ins/String/prototype/split/call-split-1-100-instance-is-number.js
+built-ins/String/prototype/split/call-split-1-1-instance-is-number.js
+built-ins/String/prototype/split/call-split-123-instance-is-this123is123a123string123object.js
+built-ins/String/prototype/split/call-split-1-2-instance-is-number.js
+built-ins/String/prototype/split/call-split-1-boo-instance-is-number.js
+built-ins/String/prototype/split/call-split-1-instance-is-number.js
+built-ins/String/prototype/split/call-split-1-math-pow-2-32-1-instance-is-number.js
+built-ins/String/prototype/split/call-split-1-void-0-instance-is-number.js
+built-ins/String/prototype/split/call-split-2-instance-is-string-one-two-three-four-five.js
+built-ins/String/prototype/split/call-split-4-instance-is-string-one-1-two-2-four-4.js
+built-ins/String/prototype/split/call-split-hello-instance-is-string-hello.js
+built-ins/String/prototype/split/call-split-hellothere-instance-is-string-hello.js
+built-ins/String/prototype/split/call-split-h-instance-is-string-hello.js
+built-ins/String/prototype/split/call-split-instance-is-empty-string-object.js
+built-ins/String/prototype/split/call-split-instance-is-string.js
+built-ins/String/prototype/split/call-split-instance-is-string-one-1-two-2-four-4.js
+built-ins/String/prototype/split/call-split-instance-is-string-one-two-three.js
+built-ins/String/prototype/split/call-split-instance-is-string-one-two-three-four-five.js
+built-ins/String/prototype/split/call-split-l-0-instance-is-string-hello.js
+built-ins/String/prototype/split/call-split-l-1-instance-is-string-hello.js
+built-ins/String/prototype/split/call-split-l-2-instance-is-string-hello.js
+built-ins/String/prototype/split/call-split-l-3-instance-is-string-hello.js
+built-ins/String/prototype/split/call-split-l-4-instance-is-string-hello.js
+built-ins/String/prototype/split/call-split-l-instance-is-string-hello.js
+built-ins/String/prototype/split/call-split-ll-instance-is-string-hello.js
+built-ins/String/prototype/split/call-split-l-na-n-instance-is-string-hello.js
+built-ins/String/prototype/split/call-split-new-reg-exp.js
+built-ins/String/prototype/split/call-split-null-instance-is-thisnullisnullanullstringnullobject.js
+built-ins/String/prototype/split/call-split-o-instance-is-string-hello.js
+built-ins/String/prototype/split/call-split-on-instance-is-string-one-1-two-2-four-4.js
+built-ins/String/prototype/split/call-split-r-42-instance-is-string-one-1-two-2-four-4.js
+built-ins/String/prototype/split/call-split-true-instance-is-thistrueistrueatruestringtrueobject.js
+built-ins/String/prototype/split/call-split-undefined-instance-is-string-hello.js
+built-ins/String/prototype/split/call-split-void-0-instance-is-thisundefinedisundefinedaundefinedstringundefinedobject.js
+built-ins/String/prototype/split/call-split-without-arguments-and-instance-is-empty-string.js
+built-ins/String/prototype/split/call-split-x-instance-is-empty-string.js
+built-ins/String/prototype/split/call-split-x-instance-is-string-hello.js
+built-ins/String/prototype/split/checking-by-using-eval.js
+built-ins/String/prototype/split/checking-if-creating-the-string-prototype-split-object-fails.js
+built-ins/String/prototype/split/checking-if-deleting-the-string-prototype-split-length-property-fails.js
+built-ins/String/prototype/split/checking-if-enumerating-the-string-prototype-split-length-property-fails.js
+built-ins/String/prototype/split/checking-if-varying-the-string-prototype-split-length-property-fails.js
+built-ins/String/prototype/split/checking-string-prototype-split-length.js
+built-ins/String/prototype/split/checking-string-prototype-split-prototype.js
+built-ins/String/prototype/split/instance-is-array-1-2-3-4-5.js
+built-ins/String/prototype/split/instance-is-boolean.js
+built-ins/String/prototype/split/instance-is-function.js
+built-ins/String/prototype/split/instance-is-math.js
+built-ins/String/prototype/split/instance-is-new-string.js
+built-ins/String/prototype/split/instance-is-number-1234567890.js
+built-ins/String/prototype/split/instance-is-number-1e21.js
+built-ins/String/prototype/split/instance-is-number-na-n.js
+built-ins/String/prototype/split/instance-is-object.js
+built-ins/String/prototype/split/instance-is-string.js
+built-ins/String/prototype/split/instance-is-string-one-two-three-four-five.js
+built-ins/String/prototype/split/separator-colon-instance-is-string-one-1-two-2-four-4.js
+built-ins/String/prototype/split/separator-comma-instance-is-string-one-two-three-four-five.js
+built-ins/String/prototype/split/separator-empty-string-instance-is-string.js
+built-ins/String/prototype/split/separator-number-limit-math-pow-2-32-1-instance-is-number.js
+built-ins/String/prototype/split/separator-regexp-comma-instance-is-string-one-1-two-2-four-4.js
+built-ins/String/prototype/split/separator-regexp-limit-string-via-eval.js
+built-ins/String/prototype/split/separator-string-instance-is-empty-string-object.js
+built-ins/String/prototype/substring/S15.5.4.15_A1_T1.js
+built-ins/String/prototype/substring/S15.5.4.15_A1_T10.js
+built-ins/String/prototype/substring/S15.5.4.15_A1_T11.js
+built-ins/String/prototype/substring/S15.5.4.15_A1_T12.js
+built-ins/String/prototype/substring/S15.5.4.15_A1_T13.js
+built-ins/String/prototype/substring/S15.5.4.15_A1_T14.js
+built-ins/String/prototype/substring/S15.5.4.15_A1_T15.js
+built-ins/String/prototype/substring/S15.5.4.15_A1_T2.js
+built-ins/String/prototype/substring/S15.5.4.15_A1_T4.js
+built-ins/String/prototype/substring/S15.5.4.15_A1_T5.js
+built-ins/String/prototype/substring/S15.5.4.15_A1_T6.js
+built-ins/String/prototype/substring/S15.5.4.15_A1_T7.js
+built-ins/String/prototype/substring/S15.5.4.15_A1_T8.js
+built-ins/String/prototype/substring/S15.5.4.15_A1_T9.js
+built-ins/String/prototype/substring/S15.5.4.15_A10.js
+built-ins/String/prototype/substring/S15.5.4.15_A11.js
+built-ins/String/prototype/substring/S15.5.4.15_A2_T1.js
+built-ins/String/prototype/substring/S15.5.4.15_A2_T10.js
+built-ins/String/prototype/substring/S15.5.4.15_A2_T2.js
+built-ins/String/prototype/substring/S15.5.4.15_A2_T3.js
+built-ins/String/prototype/substring/S15.5.4.15_A2_T4.js
+built-ins/String/prototype/substring/S15.5.4.15_A2_T5.js
+built-ins/String/prototype/substring/S15.5.4.15_A2_T6.js
+built-ins/String/prototype/substring/S15.5.4.15_A2_T7.js
+built-ins/String/prototype/substring/S15.5.4.15_A2_T8.js
+built-ins/String/prototype/substring/S15.5.4.15_A2_T9.js
+built-ins/String/prototype/substring/S15.5.4.15_A3_T1.js
+built-ins/String/prototype/substring/S15.5.4.15_A3_T10.js
+built-ins/String/prototype/substring/S15.5.4.15_A3_T11.js
+built-ins/String/prototype/substring/S15.5.4.15_A3_T2.js
+built-ins/String/prototype/substring/S15.5.4.15_A3_T3.js
+built-ins/String/prototype/substring/S15.5.4.15_A3_T4.js
+built-ins/String/prototype/substring/S15.5.4.15_A3_T5.js
+built-ins/String/prototype/substring/S15.5.4.15_A3_T6.js
+built-ins/String/prototype/substring/S15.5.4.15_A3_T7.js
+built-ins/String/prototype/substring/S15.5.4.15_A3_T8.js
+built-ins/String/prototype/substring/S15.5.4.15_A3_T9.js
+built-ins/String/prototype/substring/S15.5.4.15_A6.js
+built-ins/String/prototype/substring/S15.5.4.15_A7.js
+built-ins/String/prototype/substring/S15.5.4.15_A8.js
+built-ins/String/prototype/substring/S15.5.4.15_A9.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T1.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T10.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T11.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T12.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T13.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T14.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T2.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T3.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T4.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T5.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T6.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T7.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T8.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T9.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A10.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A11.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A2_T1.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A6.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A7.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A8.js
+built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A9.js
+built-ins/String/prototype/toLocaleLowerCase/special_casing.js
+built-ins/String/prototype/toLocaleLowerCase/special_casing_conditional.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T1.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T10.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T11.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T12.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T13.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T14.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T2.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T3.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T4.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T5.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T6.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T7.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T8.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T9.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A10.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A11.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A2_T1.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A6.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A7.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A8.js
+built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A9.js
+built-ins/String/prototype/toLocaleUpperCase/special_casing.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A1_T1.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A1_T10.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A1_T11.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A1_T12.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A1_T13.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A1_T14.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A1_T2.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A1_T3.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A1_T4.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A1_T5.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A1_T6.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A1_T7.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A1_T8.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A1_T9.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A10.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A11.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A2_T1.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A6.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A7.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A8.js
+built-ins/String/prototype/toLowerCase/S15.5.4.16_A9.js
+built-ins/String/prototype/toLowerCase/special_casing.js
+built-ins/String/prototype/toLowerCase/special_casing_conditional.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A1_T1.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A1_T10.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A1_T11.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A1_T12.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A1_T13.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A1_T14.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A1_T2.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A1_T3.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A1_T4.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A1_T5.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A1_T6.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A1_T7.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A1_T8.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A1_T9.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A10.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A11.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A2_T1.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A6.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A7.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A8.js
+built-ins/String/prototype/toUpperCase/S15.5.4.18_A9.js
+built-ins/String/prototype/toUpperCase/special_casing.js
+built-ins/String/prototype/trim/15.5.4.20-0-1.js
+built-ins/String/prototype/trim/15.5.4.20-0-2.js
+built-ins/String/prototype/trim/15.5.4.20-1-1.js
+built-ins/String/prototype/trim/15.5.4.20-1-2.js
+built-ins/String/prototype/trim/15.5.4.20-1-3.js
+built-ins/String/prototype/trim/15.5.4.20-1-4.js
+built-ins/String/prototype/trim/15.5.4.20-1-5.js
+built-ins/String/prototype/trim/15.5.4.20-1-6.js
+built-ins/String/prototype/trim/15.5.4.20-1-7.js
+built-ins/String/prototype/trim/15.5.4.20-1-8.js
+built-ins/String/prototype/trim/15.5.4.20-1-9.js
+built-ins/String/prototype/trim/15.5.4.20-2-1.js
+built-ins/String/prototype/trim/15.5.4.20-2-10.js
+built-ins/String/prototype/trim/15.5.4.20-2-11.js
+built-ins/String/prototype/trim/15.5.4.20-2-12.js
+built-ins/String/prototype/trim/15.5.4.20-2-13.js
+built-ins/String/prototype/trim/15.5.4.20-2-14.js
+built-ins/String/prototype/trim/15.5.4.20-2-15.js
+built-ins/String/prototype/trim/15.5.4.20-2-16.js
+built-ins/String/prototype/trim/15.5.4.20-2-17.js
+built-ins/String/prototype/trim/15.5.4.20-2-18.js
+built-ins/String/prototype/trim/15.5.4.20-2-19.js
+built-ins/String/prototype/trim/15.5.4.20-2-2.js
+built-ins/String/prototype/trim/15.5.4.20-2-20.js
+built-ins/String/prototype/trim/15.5.4.20-2-21.js
+built-ins/String/prototype/trim/15.5.4.20-2-22.js
+built-ins/String/prototype/trim/15.5.4.20-2-23.js
+built-ins/String/prototype/trim/15.5.4.20-2-24.js
+built-ins/String/prototype/trim/15.5.4.20-2-25.js
+built-ins/String/prototype/trim/15.5.4.20-2-26.js
+built-ins/String/prototype/trim/15.5.4.20-2-27.js
+built-ins/String/prototype/trim/15.5.4.20-2-28.js
+built-ins/String/prototype/trim/15.5.4.20-2-29.js
+built-ins/String/prototype/trim/15.5.4.20-2-3.js
+built-ins/String/prototype/trim/15.5.4.20-2-30.js
+built-ins/String/prototype/trim/15.5.4.20-2-31.js
+built-ins/String/prototype/trim/15.5.4.20-2-32.js
+built-ins/String/prototype/trim/15.5.4.20-2-33.js
+built-ins/String/prototype/trim/15.5.4.20-2-34.js
+built-ins/String/prototype/trim/15.5.4.20-2-35.js
+built-ins/String/prototype/trim/15.5.4.20-2-36.js
+built-ins/String/prototype/trim/15.5.4.20-2-37.js
+built-ins/String/prototype/trim/15.5.4.20-2-38.js
+built-ins/String/prototype/trim/15.5.4.20-2-39.js
+built-ins/String/prototype/trim/15.5.4.20-2-4.js
+built-ins/String/prototype/trim/15.5.4.20-2-40.js
+built-ins/String/prototype/trim/15.5.4.20-2-41.js
+built-ins/String/prototype/trim/15.5.4.20-2-42.js
+built-ins/String/prototype/trim/15.5.4.20-2-43.js
+built-ins/String/prototype/trim/15.5.4.20-2-44.js
+built-ins/String/prototype/trim/15.5.4.20-2-45.js
+built-ins/String/prototype/trim/15.5.4.20-2-46.js
+built-ins/String/prototype/trim/15.5.4.20-2-47.js
+built-ins/String/prototype/trim/15.5.4.20-2-49.js
+built-ins/String/prototype/trim/15.5.4.20-2-5.js
+built-ins/String/prototype/trim/15.5.4.20-2-50.js
+built-ins/String/prototype/trim/15.5.4.20-2-51.js
+built-ins/String/prototype/trim/15.5.4.20-2-6.js
+built-ins/String/prototype/trim/15.5.4.20-2-7.js
+built-ins/String/prototype/trim/15.5.4.20-2-8.js
+built-ins/String/prototype/trim/15.5.4.20-2-9.js
+built-ins/String/prototype/trim/15.5.4.20-3-1.js
+built-ins/String/prototype/trim/15.5.4.20-3-10.js
+built-ins/String/prototype/trim/15.5.4.20-3-11.js
+built-ins/String/prototype/trim/15.5.4.20-3-12.js
+built-ins/String/prototype/trim/15.5.4.20-3-13.js
+built-ins/String/prototype/trim/15.5.4.20-3-14.js
+built-ins/String/prototype/trim/15.5.4.20-3-2.js
+built-ins/String/prototype/trim/15.5.4.20-3-3.js
+built-ins/String/prototype/trim/15.5.4.20-3-4.js
+built-ins/String/prototype/trim/15.5.4.20-3-5.js
+built-ins/String/prototype/trim/15.5.4.20-3-6.js
+built-ins/String/prototype/trim/15.5.4.20-3-7.js
+built-ins/String/prototype/trim/15.5.4.20-3-8.js
+built-ins/String/prototype/trim/15.5.4.20-3-9.js
+built-ins/String/prototype/trim/15.5.4.20-4-1.js
+built-ins/String/prototype/trim/15.5.4.20-4-10.js
+built-ins/String/prototype/trim/15.5.4.20-4-11.js
+built-ins/String/prototype/trim/15.5.4.20-4-12.js
+built-ins/String/prototype/trim/15.5.4.20-4-13.js
+built-ins/String/prototype/trim/15.5.4.20-4-14.js
+built-ins/String/prototype/trim/15.5.4.20-4-16.js
+built-ins/String/prototype/trim/15.5.4.20-4-18.js
+built-ins/String/prototype/trim/15.5.4.20-4-19.js
+built-ins/String/prototype/trim/15.5.4.20-4-2.js
+built-ins/String/prototype/trim/15.5.4.20-4-20.js
+built-ins/String/prototype/trim/15.5.4.20-4-21.js
+built-ins/String/prototype/trim/15.5.4.20-4-22.js
+built-ins/String/prototype/trim/15.5.4.20-4-24.js
+built-ins/String/prototype/trim/15.5.4.20-4-27.js
+built-ins/String/prototype/trim/15.5.4.20-4-28.js
+built-ins/String/prototype/trim/15.5.4.20-4-29.js
+built-ins/String/prototype/trim/15.5.4.20-4-3.js
+built-ins/String/prototype/trim/15.5.4.20-4-30.js
+built-ins/String/prototype/trim/15.5.4.20-4-32.js
+built-ins/String/prototype/trim/15.5.4.20-4-34.js
+built-ins/String/prototype/trim/15.5.4.20-4-35.js
+built-ins/String/prototype/trim/15.5.4.20-4-36.js
+built-ins/String/prototype/trim/15.5.4.20-4-37.js
+built-ins/String/prototype/trim/15.5.4.20-4-38.js
+built-ins/String/prototype/trim/15.5.4.20-4-39.js
+built-ins/String/prototype/trim/15.5.4.20-4-4.js
+built-ins/String/prototype/trim/15.5.4.20-4-40.js
+built-ins/String/prototype/trim/15.5.4.20-4-41.js
+built-ins/String/prototype/trim/15.5.4.20-4-42.js
+built-ins/String/prototype/trim/15.5.4.20-4-43.js
+built-ins/String/prototype/trim/15.5.4.20-4-44.js
+built-ins/String/prototype/trim/15.5.4.20-4-45.js
+built-ins/String/prototype/trim/15.5.4.20-4-46.js
+built-ins/String/prototype/trim/15.5.4.20-4-47.js
+built-ins/String/prototype/trim/15.5.4.20-4-48.js
+built-ins/String/prototype/trim/15.5.4.20-4-49.js
+built-ins/String/prototype/trim/15.5.4.20-4-5.js
+built-ins/String/prototype/trim/15.5.4.20-4-50.js
+built-ins/String/prototype/trim/15.5.4.20-4-51.js
+built-ins/String/prototype/trim/15.5.4.20-4-52.js
+built-ins/String/prototype/trim/15.5.4.20-4-53.js
+built-ins/String/prototype/trim/15.5.4.20-4-54.js
+built-ins/String/prototype/trim/15.5.4.20-4-55.js
+built-ins/String/prototype/trim/15.5.4.20-4-56.js
+built-ins/String/prototype/trim/15.5.4.20-4-57.js
+built-ins/String/prototype/trim/15.5.4.20-4-58.js
+built-ins/String/prototype/trim/15.5.4.20-4-59.js
+built-ins/String/prototype/trim/15.5.4.20-4-6.js
+built-ins/String/prototype/trim/15.5.4.20-4-60.js
+built-ins/String/prototype/trim/15.5.4.20-4-8.js
+built-ins/String/S15.5.1.1_A1_T1.js
+built-ins/String/S15.5.1.1_A1_T10.js
+built-ins/String/S15.5.1.1_A1_T11.js
+built-ins/String/S15.5.1.1_A1_T12.js
+built-ins/String/S15.5.1.1_A1_T13.js
+built-ins/String/S15.5.1.1_A1_T14.js
+built-ins/String/S15.5.1.1_A1_T15.js
+built-ins/String/S15.5.1.1_A1_T16.js
+built-ins/String/S15.5.1.1_A1_T17.js
+built-ins/String/S15.5.1.1_A1_T18.js
+built-ins/String/S15.5.1.1_A1_T19.js
+built-ins/String/S15.5.1.1_A1_T2.js
+built-ins/String/S15.5.1.1_A1_T3.js
+built-ins/String/S15.5.1.1_A1_T4.js
+built-ins/String/S15.5.1.1_A1_T5.js
+built-ins/String/S15.5.1.1_A1_T6.js
+built-ins/String/S15.5.1.1_A1_T7.js
+built-ins/String/S15.5.1.1_A1_T8.js
+built-ins/String/S15.5.1.1_A1_T9.js
+built-ins/String/S15.5.1.1_A2_T1.js
+built-ins/String/S15.5.2.1_A1_T1.js
+built-ins/String/S15.5.2.1_A1_T10.js
+built-ins/String/S15.5.2.1_A1_T11.js
+built-ins/String/S15.5.2.1_A1_T12.js
+built-ins/String/S15.5.2.1_A1_T13.js
+built-ins/String/S15.5.2.1_A1_T16.js
+built-ins/String/S15.5.2.1_A1_T17.js
+built-ins/String/S15.5.2.1_A1_T18.js
+built-ins/String/S15.5.2.1_A1_T19.js
+built-ins/String/S15.5.2.1_A1_T2.js
+built-ins/String/S15.5.2.1_A1_T3.js
+built-ins/String/S15.5.2.1_A1_T4.js
+built-ins/String/S15.5.2.1_A1_T5.js
+built-ins/String/S15.5.2.1_A1_T6.js
+built-ins/String/S15.5.2.1_A1_T7.js
+built-ins/String/S15.5.2.1_A1_T8.js
+built-ins/String/S15.5.2.1_A1_T9.js
+built-ins/String/S15.5.2.1_A2_T1.js
+built-ins/String/S15.5.2.1_A2_T2.js
+built-ins/String/S15.5.2.1_A3.js
+built-ins/String/S15.5.3_A1.js
+built-ins/String/S15.5.3_A2_T1.js
+built-ins/String/S15.5.3_A2_T2.js
+built-ins/String/S15.5.5.1_A1.js
+built-ins/String/S15.5.5.1_A2.js
+built-ins/String/S15.5.5.1_A3.js
+built-ins/String/S15.5.5.1_A4_T1.js
+built-ins/String/S15.5.5.1_A4_T2.js
+built-ins/String/S15.5.5.1_A5.js
+built-ins/String/S15.5.5_A1_T1.js
+built-ins/String/S15.5.5_A1_T2.js
+built-ins/String/S15.5.5_A2_T1.js
+built-ins/String/S15.5.5_A2_T2.js
+built-ins/String/S8.12.8_A1.js
+built-ins/String/S8.12.8_A2.js
+built-ins/String/S9.1_A1_T2.js
+built-ins/String/S9.8.1_A1.js
+built-ins/String/S9.8.1_A10.js
+built-ins/String/S9.8.1_A2.js
+built-ins/String/S9.8.1_A3.js
+built-ins/String/S9.8.1_A4.js
+built-ins/String/S9.8.1_A6.js
+built-ins/String/S9.8.1_A7.js
+built-ins/String/S9.8.1_A8.js
+built-ins/String/S9.8.1_A9_T1.js
+built-ins/String/S9.8.1_A9_T2.js
+built-ins/String/S9.8_A1_T1.js
+built-ins/String/S9.8_A2_T1.js
+built-ins/String/S9.8_A3_T1.js
+built-ins/String/S9.8_A4_T1.js
+built-ins/String/S9.8_A5_T1.js
+language/arguments-object/10.5-1gs.js
+language/arguments-object/10.5-1-s.js
+language/arguments-object/10.5-7-b-1-s.js
+language/arguments-object/10.5-7-b-2-s.js
+language/arguments-object/10.5-7-b-3-s.js
+language/arguments-object/10.5-7-b-4-s.js
+language/arguments-object/10.6-10-c-ii-1.js
+language/arguments-object/10.6-10-c-ii-1-s.js
+language/arguments-object/10.6-10-c-ii-2.js
+language/arguments-object/10.6-11-b-1.js
+language/arguments-object/10.6-12-1.js
+language/arguments-object/10.6-12-2.js
+language/arguments-object/10.6-13-a-1.js
+language/arguments-object/10.6-13-a-2.js
+language/arguments-object/10.6-13-a-3.js
+language/arguments-object/10.6-13-c-1-s.js
+language/arguments-object/10.6-13-c-2-s.js
+language/arguments-object/10.6-13-c-3-s.js
+language/arguments-object/10.6-14-c-1-s.js
+language/arguments-object/10.6-14-c-4-s.js
+language/arguments-object/10.6-2gs.js
+language/arguments-object/10.6-5-1.js
+language/arguments-object/10.6-6-1.js
+language/arguments-object/10.6-6-2.js
+language/arguments-object/10.6-6-3.js
+language/arguments-object/10.6-6-3-s.js
+language/arguments-object/10.6-6-4.js
+language/arguments-object/10.6-6-4-s.js
+language/arguments-object/10.6-7-1.js
+language/arguments-object/S10.1.6_A1_T2.js
+language/arguments-object/S10.6_A1.js
+language/arguments-object/S10.6_A2.js
+language/arguments-object/S10.6_A3_T1.js
+language/arguments-object/S10.6_A3_T2.js
+language/arguments-object/S10.6_A3_T3.js
+language/arguments-object/S10.6_A3_T4.js
+language/arguments-object/S10.6_A4.js
+language/arguments-object/S10.6_A5_T1.js
+language/arguments-object/S10.6_A5_T2.js
+language/arguments-object/S10.6_A5_T3.js
+language/arguments-object/S10.6_A5_T4.js
+language/arguments-object/S10.6_A6.js
+language/arguments-object/S10.6_A7.js
+language/arguments-object/unmapped/via-strict.js
+language/asi/S7.9.2_A1_T1.js
+language/asi/S7.9.2_A1_T2.js
+language/asi/S7.9.2_A1_T3.js
+language/asi/S7.9.2_A1_T4.js
+language/asi/S7.9.2_A1_T5.js
+language/asi/S7.9.2_A1_T6.js
+language/asi/S7.9.2_A1_T7.js
+language/asi/S7.9_A1.js
+language/asi/S7.9_A10_T1.js
+language/asi/S7.9_A10_T10.js
+language/asi/S7.9_A10_T11.js
+language/asi/S7.9_A10_T12.js
+language/asi/S7.9_A10_T2.js
+language/asi/S7.9_A10_T3.js
+language/asi/S7.9_A10_T4.js
+language/asi/S7.9_A10_T5.js
+language/asi/S7.9_A10_T6.js
+language/asi/S7.9_A10_T7.js
+language/asi/S7.9_A10_T8.js
+language/asi/S7.9_A10_T9.js
+language/asi/S7.9_A11_T1.js
+language/asi/S7.9_A11_T10.js
+language/asi/S7.9_A11_T11.js
+language/asi/S7.9_A11_T2.js
+language/asi/S7.9_A11_T3.js
+language/asi/S7.9_A11_T4.js
+language/asi/S7.9_A11_T5.js
+language/asi/S7.9_A11_T6.js
+language/asi/S7.9_A11_T7.js
+language/asi/S7.9_A11_T8.js
+language/asi/S7.9_A11_T9.js
+language/asi/S7.9_A2.js
+language/asi/S7.9_A3.js
+language/asi/S7.9_A4.js
+language/asi/S7.9_A5.1_T1.js
+language/asi/S7.9_A5.2_T1.js
+language/asi/S7.9_A5.3_T1.js
+language/asi/S7.9_A5.4_T1.js
+language/asi/S7.9_A5.5_T1.js
+language/asi/S7.9_A5.5_T2.js
+language/asi/S7.9_A5.5_T3.js
+language/asi/S7.9_A5.5_T4.js
+language/asi/S7.9_A5.5_T5.js
+language/asi/S7.9_A5.6_T1.js
+language/asi/S7.9_A5.6_T2.js
+language/asi/S7.9_A5.7_T1.js
+language/asi/S7.9_A5.8_T1.js
+language/asi/S7.9_A5.9_T1.js
+language/asi/S7.9_A6.1_T1.js
+language/asi/S7.9_A6.1_T10.js
+language/asi/S7.9_A6.1_T11.js
+language/asi/S7.9_A6.1_T12.js
+language/asi/S7.9_A6.1_T13.js
+language/asi/S7.9_A6.1_T2.js
+language/asi/S7.9_A6.1_T3.js
+language/asi/S7.9_A6.1_T4.js
+language/asi/S7.9_A6.1_T5.js
+language/asi/S7.9_A6.1_T6.js
+language/asi/S7.9_A6.1_T7.js
+language/asi/S7.9_A6.1_T8.js
+language/asi/S7.9_A6.1_T9.js
+language/asi/S7.9_A6.2_T1.js
+language/asi/S7.9_A6.2_T10.js
+language/asi/S7.9_A6.2_T2.js
+language/asi/S7.9_A6.2_T3.js
+language/asi/S7.9_A6.2_T4.js
+language/asi/S7.9_A6.2_T5.js
+language/asi/S7.9_A6.2_T6.js
+language/asi/S7.9_A6.2_T7.js
+language/asi/S7.9_A6.2_T8.js
+language/asi/S7.9_A6.2_T9.js
+language/asi/S7.9_A6.3_T1.js
+language/asi/S7.9_A6.3_T2.js
+language/asi/S7.9_A6.3_T3.js
+language/asi/S7.9_A6.3_T4.js
+language/asi/S7.9_A6.3_T5.js
+language/asi/S7.9_A6.3_T6.js
+language/asi/S7.9_A6.3_T7.js
+language/asi/S7.9_A6.4_T1.js
+language/asi/S7.9_A6.4_T2.js
+language/asi/S7.9_A7_T1.js
+language/asi/S7.9_A7_T2.js
+language/asi/S7.9_A7_T3.js
+language/asi/S7.9_A7_T4.js
+language/asi/S7.9_A7_T5.js
+language/asi/S7.9_A7_T6.js
+language/asi/S7.9_A7_T7.js
+language/asi/S7.9_A7_T8.js
+language/asi/S7.9_A7_T9.js
+language/asi/S7.9_A8_T1.js
+language/asi/S7.9_A8_T2.js
+language/asi/S7.9_A8_T3.js
+language/asi/S7.9_A8_T4.js
+language/asi/S7.9_A8_T5.js
+language/asi/S7.9_A9_T1.js
+language/asi/S7.9_A9_T2.js
+language/asi/S7.9_A9_T5.js
+language/asi/S7.9_A9_T6.js
+language/asi/S7.9_A9_T7.js
+language/asi/S7.9_A9_T8.js
+language/asi/S7.9_A9_T9.js
+language/comments/multi-line-asi-carriage-return.js
+language/comments/multi-line-asi-line-feed.js
+language/comments/multi-line-asi-line-separator.js
+language/comments/multi-line-asi-paragraph-separator.js
+language/comments/S7.4_A1_T1.js
+language/comments/S7.4_A1_T2.js
+language/comments/S7.4_A2_T1.js
+language/comments/S7.4_A2_T2.js
+language/comments/S7.4_A3.js
+language/comments/S7.4_A4_T1.js
+language/comments/S7.4_A4_T2.js
+language/comments/S7.4_A4_T3.js
+language/comments/S7.4_A4_T4.js
+language/comments/S7.4_A4_T5.js
+language/comments/S7.4_A4_T6.js
+language/comments/S7.4_A4_T7.js
+language/comments/S7.4_A5.js
+language/comments/S7.4_A6.js
+language/directive-prologue/10.1.1-10-s.js
+language/directive-prologue/10.1.1-11-s.js
+language/directive-prologue/10.1.1-12-s.js
+language/directive-prologue/10.1.1-13-s.js
+language/directive-prologue/10.1.1-14-s.js
+language/directive-prologue/10.1.1-1-s.js
+language/directive-prologue/10.1.1-28-s.js
+language/directive-prologue/10.1.1-29-s.js
+language/directive-prologue/10.1.1-2gs.js
+language/directive-prologue/10.1.1-30-s.js
+language/directive-prologue/10.1.1-31-s.js
+language/directive-prologue/10.1.1-32-s.js
+language/directive-prologue/10.1.1-3-s.js
+language/directive-prologue/10.1.1-4-s.js
+language/directive-prologue/10.1.1-5gs.js
+language/directive-prologue/10.1.1-5-s.js
+language/directive-prologue/10.1.1-6-s.js
+language/directive-prologue/10.1.1-7-s.js
+language/directive-prologue/10.1.1-8gs.js
+language/directive-prologue/10.1.1-8-s.js
+language/directive-prologue/10.1.1-9-s.js
+language/directive-prologue/14.1-10-s.js
+language/directive-prologue/14.1-11-s.js
+language/directive-prologue/14.1-12-s.js
+language/directive-prologue/14.1-13-s.js
+language/directive-prologue/14.1-14-s.js
+language/directive-prologue/14.1-15-s.js
+language/directive-prologue/14.1-16-s.js
+language/directive-prologue/14.1-17-s.js
+language/directive-prologue/14.1-1-s.js
+language/directive-prologue/14.1-2-s.js
+language/directive-prologue/14.1-3-s.js
+language/directive-prologue/14.1-4gs.js
+language/directive-prologue/14.1-4-s.js
+language/directive-prologue/14.1-5gs.js
+language/directive-prologue/14.1-5-s.js
+language/directive-prologue/14.1-6-s.js
+language/directive-prologue/14.1-7-s.js
+language/directive-prologue/14.1-8-s.js
+language/directive-prologue/14.1-9-s.js
+language/directive-prologue/func-decl-final-runtime.js
+language/directive-prologue/func-decl-inside-func-decl-parse.js
+language/directive-prologue/func-decl-inside-func-decl-runtime.js
+language/directive-prologue/func-decl-no-semi-parse.js
+language/directive-prologue/func-decl-no-semi-runtime.js
+language/directive-prologue/func-decl-not-first-runtime.js
+language/directive-prologue/func-decl-parse.js
+language/directive-prologue/func-decl-runtime.js
+language/directive-prologue/func-expr-final-runtime.js
+language/directive-prologue/func-expr-inside-func-decl-parse.js
+language/directive-prologue/func-expr-inside-func-decl-runtime.js
+language/directive-prologue/func-expr-no-semi-parse.js
+language/directive-prologue/func-expr-no-semi-runtime.js
+language/directive-prologue/func-expr-not-first-runtime.js
+language/directive-prologue/func-expr-parse.js
+language/directive-prologue/func-expr-runtime.js
+language/directive-prologue/get-accsr-inside-func-expr-runtime.js
+language/directive-prologue/get-accsr-not-first-runtime.js
+language/directive-prologue/get-accsr-runtime.js
+language/directive-prologue/set-accsr-inside-func-expr-runtime.js
+language/directive-prologue/set-accsr-not-first-runtime.js
+language/directive-prologue/set-accsr-runtime.js
+language/eval-code/direct/cptn-nrml-empty-block.js
+language/eval-code/direct/cptn-nrml-empty-do-while.js
+language/eval-code/direct/cptn-nrml-empty-empty.js
+language/eval-code/direct/cptn-nrml-empty-for.js
+language/eval-code/direct/cptn-nrml-empty-if.js
+language/eval-code/direct/cptn-nrml-empty-switch.js
+language/eval-code/direct/cptn-nrml-empty-var.js
+language/eval-code/direct/cptn-nrml-empty-while.js
+language/eval-code/direct/cptn-nrml-expr-obj.js
+language/eval-code/direct/cptn-nrml-expr-prim.js
+language/eval-code/direct/cptn-thrw-prim.js
+language/eval-code/direct/global-env-rec.js
+language/eval-code/direct/global-env-rec-catch.js
+language/eval-code/direct/global-env-rec-eval.js
+language/eval-code/direct/global-env-rec-fun.js
+language/eval-code/direct/global-env-rec-with.js
+language/eval-code/direct/non-string-object.js
+language/eval-code/direct/non-string-primitive.js
+language/eval-code/direct/parse-failure-1.js
+language/eval-code/direct/parse-failure-2.js
+language/eval-code/direct/parse-failure-3.js
+language/eval-code/direct/parse-failure-4.js
+language/eval-code/direct/parse-failure-5.js
+language/eval-code/direct/var-env-func-non-strict.js
+language/eval-code/direct/var-env-func-strict-caller.js
+language/eval-code/direct/var-env-func-strict-caller-2.js
+language/eval-code/direct/var-env-func-strict-source.js
+language/eval-code/direct/var-env-var-non-strict.js
+language/eval-code/direct/var-env-var-strict-caller.js
+language/eval-code/direct/var-env-var-strict-caller-2.js
+language/eval-code/direct/var-env-var-strict-caller-3.js
+language/eval-code/direct/var-env-var-strict-source.js
+language/eval-code/indirect/cptn-nrml-empty-block.js
+language/eval-code/indirect/cptn-nrml-empty-do-while.js
+language/eval-code/indirect/cptn-nrml-empty-empty.js
+language/eval-code/indirect/cptn-nrml-empty-for.js
+language/eval-code/indirect/cptn-nrml-empty-if.js
+language/eval-code/indirect/cptn-nrml-empty-switch.js
+language/eval-code/indirect/cptn-nrml-empty-var.js
+language/eval-code/indirect/cptn-nrml-empty-while.js
+language/eval-code/indirect/cptn-nrml-expr-obj.js
+language/eval-code/indirect/cptn-nrml-expr-prim.js
+language/eval-code/indirect/global-env-rec.js
+language/eval-code/indirect/global-env-rec-catch.js
+language/eval-code/indirect/global-env-rec-eval.js
+language/eval-code/indirect/global-env-rec-fun.js
+language/eval-code/indirect/global-env-rec-with.js
+language/eval-code/indirect/non-string-object.js
+language/eval-code/indirect/non-string-primitive.js
+language/eval-code/indirect/parse-failure-1.js
+language/eval-code/indirect/parse-failure-2.js
+language/eval-code/indirect/parse-failure-3.js
+language/eval-code/indirect/parse-failure-4.js
+language/eval-code/indirect/parse-failure-5.js
+language/eval-code/indirect/var-env-func-non-strict.js
+language/eval-code/indirect/var-env-func-strict.js
+language/eval-code/indirect/var-env-var-non-strict.js
+language/eval-code/indirect/var-env-var-strict.js
+language/expressions/addition/S11.6.1_A1.js
+language/expressions/addition/S11.6.1_A2.1_T1.js
+language/expressions/addition/S11.6.1_A2.1_T2.js
+language/expressions/addition/S11.6.1_A2.1_T3.js
+language/expressions/addition/S11.6.1_A2.2_T1.js
+language/expressions/addition/S11.6.1_A2.2_T2.js
+language/expressions/addition/S11.6.1_A2.2_T3.js
+language/expressions/addition/S11.6.1_A2.3_T1.js
+language/expressions/addition/S11.6.1_A2.4_T1.js
+language/expressions/addition/S11.6.1_A2.4_T2.js
+language/expressions/addition/S11.6.1_A2.4_T3.js
+language/expressions/addition/S11.6.1_A2.4_T4.js
+language/expressions/addition/S11.6.1_A3.1_T1.1.js
+language/expressions/addition/S11.6.1_A3.1_T1.2.js
+language/expressions/addition/S11.6.1_A3.1_T1.3.js
+language/expressions/addition/S11.6.1_A3.1_T2.1.js
+language/expressions/addition/S11.6.1_A3.1_T2.2.js
+language/expressions/addition/S11.6.1_A3.1_T2.3.js
+language/expressions/addition/S11.6.1_A3.1_T2.4.js
+language/expressions/addition/S11.6.1_A3.1_T2.5.js
+language/expressions/addition/S11.6.1_A3.2_T1.1.js
+language/expressions/addition/S11.6.1_A3.2_T1.2.js
+language/expressions/addition/S11.6.1_A3.2_T2.1.js
+language/expressions/addition/S11.6.1_A3.2_T2.2.js
+language/expressions/addition/S11.6.1_A3.2_T2.3.js
+language/expressions/addition/S11.6.1_A3.2_T2.4.js
+language/expressions/addition/S11.6.1_A4_T1.js
+language/expressions/addition/S11.6.1_A4_T2.js
+language/expressions/addition/S11.6.1_A4_T3.js
+language/expressions/addition/S11.6.1_A4_T4.js
+language/expressions/addition/S11.6.1_A4_T5.js
+language/expressions/addition/S11.6.1_A4_T6.js
+language/expressions/addition/S11.6.1_A4_T7.js
+language/expressions/addition/S11.6.1_A4_T8.js
+language/expressions/addition/S11.6.1_A4_T9.js
+language/expressions/array/11.1.4_4-5-1.js
+language/expressions/array/11.1.4_5-6-1.js
+language/expressions/array/11.1.4-0.js
+language/expressions/array/S11.1.4_A1.1.js
+language/expressions/array/S11.1.4_A1.2.js
+language/expressions/array/S11.1.4_A1.3.js
+language/expressions/array/S11.1.4_A1.4.js
+language/expressions/array/S11.1.4_A1.5.js
+language/expressions/array/S11.1.4_A1.6.js
+language/expressions/array/S11.1.4_A1.7.js
+language/expressions/array/S11.1.4_A2.js
+language/expressions/assignment/11.13.1-1-6-s.js
+language/expressions/assignment/11.13.1-1-s.js
+language/expressions/assignment/11.13.1-2-s.js
+language/expressions/assignment/11.13.1-3-s.js
+language/expressions/assignment/11.13.1-4-1.js
+language/expressions/assignment/11.13.1-4-14-s.js
+language/expressions/assignment/11.13.1-4-27-s.js
+language/expressions/assignment/11.13.1-4-28gs.js
+language/expressions/assignment/11.13.1-4-29gs.js
+language/expressions/assignment/11.13.1-4-3-s.js
+language/expressions/assignment/11.13.1-4-6-s.js
+language/expressions/assignment/8.12.5-3-b_1.js
+language/expressions/assignment/8.12.5-3-b_2.js
+language/expressions/assignment/8.12.5-5-b_1.js
+language/expressions/assignment/8.14.4-8-b_1.js
+language/expressions/assignment/8.14.4-8-b_2.js
+language/expressions/assignment/id-arguments-strict.js
+language/expressions/assignment/id-eval-strict.js
+language/expressions/assignment/line-terminator.js
+language/expressions/assignment/S11.13.1_A2.1_T1.js
+language/expressions/assignment/S11.13.1_A2.1_T2.js
+language/expressions/assignment/S11.13.1_A3.1.js
+language/expressions/assignment/S11.13.1_A3.2.js
+language/expressions/assignment/S11.13.1_A4_T1.js
+language/expressions/assignment/S11.13.1_A4_T2.js
+language/expressions/assignment/S11.13.1_A5_T1.js
+language/expressions/assignment/S11.13.1_A5_T2.js
+language/expressions/assignment/S11.13.1_A5_T3.js
+language/expressions/assignment/S11.13.1_A6_T1.js
+language/expressions/assignment/S11.13.1_A6_T2.js
+language/expressions/assignment/S11.13.1_A6_T3.js
+language/expressions/assignment/S8.12.4_A1.js
+language/expressions/assignment/S8.12.5_A1.js
+language/expressions/assignment/S8.12.5_A2.js
+language/expressions/assignment/target-cover-id.js
+language/expressions/assignment/white-space.js
+language/expressions/bitwise-and/S11.10.1_A1.js
+language/expressions/bitwise-and/S11.10.1_A2.1_T1.js
+language/expressions/bitwise-and/S11.10.1_A2.1_T2.js
+language/expressions/bitwise-and/S11.10.1_A2.1_T3.js
+language/expressions/bitwise-and/S11.10.1_A2.2_T1.js
+language/expressions/bitwise-and/S11.10.1_A2.3_T1.js
+language/expressions/bitwise-and/S11.10.1_A2.4_T1.js
+language/expressions/bitwise-and/S11.10.1_A2.4_T2.js
+language/expressions/bitwise-and/S11.10.1_A2.4_T3.js
+language/expressions/bitwise-and/S11.10.1_A3_T1.1.js
+language/expressions/bitwise-and/S11.10.1_A3_T1.2.js
+language/expressions/bitwise-and/S11.10.1_A3_T1.3.js
+language/expressions/bitwise-and/S11.10.1_A3_T1.4.js
+language/expressions/bitwise-and/S11.10.1_A3_T1.5.js
+language/expressions/bitwise-and/S11.10.1_A3_T2.1.js
+language/expressions/bitwise-and/S11.10.1_A3_T2.2.js
+language/expressions/bitwise-and/S11.10.1_A3_T2.3.js
+language/expressions/bitwise-and/S11.10.1_A3_T2.4.js
+language/expressions/bitwise-and/S11.10.1_A3_T2.5.js
+language/expressions/bitwise-and/S11.10.1_A3_T2.6.js
+language/expressions/bitwise-and/S11.10.1_A3_T2.7.js
+language/expressions/bitwise-and/S11.10.1_A3_T2.8.js
+language/expressions/bitwise-and/S11.10.1_A3_T2.9.js
+language/expressions/bitwise-not/S11.4.8_A1.js
+language/expressions/bitwise-not/S11.4.8_A2.1_T1.js
+language/expressions/bitwise-not/S11.4.8_A2.1_T2.js
+language/expressions/bitwise-not/S11.4.8_A2.2_T1.js
+language/expressions/bitwise-not/S11.4.8_A3_T1.js
+language/expressions/bitwise-not/S11.4.8_A3_T2.js
+language/expressions/bitwise-not/S11.4.8_A3_T3.js
+language/expressions/bitwise-not/S11.4.8_A3_T4.js
+language/expressions/bitwise-not/S11.4.8_A3_T5.js
+language/expressions/bitwise-not/S9.5_A2.1_T2.js
+language/expressions/bitwise-not/S9.5_A2.2_T2.js
+language/expressions/bitwise-not/S9.5_A2.3_T2.js
+language/expressions/bitwise-not/S9.5_A3.1_T4.js
+language/expressions/bitwise-not/S9.5_A3.2_T2.js
+language/expressions/bitwise-or/S11.10.3_A1.js
+language/expressions/bitwise-or/S11.10.3_A2.1_T1.js
+language/expressions/bitwise-or/S11.10.3_A2.1_T2.js
+language/expressions/bitwise-or/S11.10.3_A2.1_T3.js
+language/expressions/bitwise-or/S11.10.3_A2.2_T1.js
+language/expressions/bitwise-or/S11.10.3_A2.3_T1.js
+language/expressions/bitwise-or/S11.10.3_A2.4_T1.js
+language/expressions/bitwise-or/S11.10.3_A2.4_T2.js
+language/expressions/bitwise-or/S11.10.3_A2.4_T3.js
+language/expressions/bitwise-or/S11.10.3_A3_T1.1.js
+language/expressions/bitwise-or/S11.10.3_A3_T1.2.js
+language/expressions/bitwise-or/S11.10.3_A3_T1.3.js
+language/expressions/bitwise-or/S11.10.3_A3_T1.4.js
+language/expressions/bitwise-or/S11.10.3_A3_T1.5.js
+language/expressions/bitwise-or/S11.10.3_A3_T2.1.js
+language/expressions/bitwise-or/S11.10.3_A3_T2.2.js
+language/expressions/bitwise-or/S11.10.3_A3_T2.3.js
+language/expressions/bitwise-or/S11.10.3_A3_T2.4.js
+language/expressions/bitwise-or/S11.10.3_A3_T2.5.js
+language/expressions/bitwise-or/S11.10.3_A3_T2.6.js
+language/expressions/bitwise-or/S11.10.3_A3_T2.7.js
+language/expressions/bitwise-or/S11.10.3_A3_T2.8.js
+language/expressions/bitwise-or/S11.10.3_A3_T2.9.js
+language/expressions/bitwise-xor/S11.10.2_A1.js
+language/expressions/bitwise-xor/S11.10.2_A2.1_T1.js
+language/expressions/bitwise-xor/S11.10.2_A2.1_T2.js
+language/expressions/bitwise-xor/S11.10.2_A2.1_T3.js
+language/expressions/bitwise-xor/S11.10.2_A2.2_T1.js
+language/expressions/bitwise-xor/S11.10.2_A2.3_T1.js
+language/expressions/bitwise-xor/S11.10.2_A2.4_T1.js
+language/expressions/bitwise-xor/S11.10.2_A2.4_T2.js
+language/expressions/bitwise-xor/S11.10.2_A2.4_T3.js
+language/expressions/bitwise-xor/S11.10.2_A3_T1.1.js
+language/expressions/bitwise-xor/S11.10.2_A3_T1.2.js
+language/expressions/bitwise-xor/S11.10.2_A3_T1.3.js
+language/expressions/bitwise-xor/S11.10.2_A3_T1.4.js
+language/expressions/bitwise-xor/S11.10.2_A3_T1.5.js
+language/expressions/bitwise-xor/S11.10.2_A3_T2.1.js
+language/expressions/bitwise-xor/S11.10.2_A3_T2.2.js
+language/expressions/bitwise-xor/S11.10.2_A3_T2.3.js
+language/expressions/bitwise-xor/S11.10.2_A3_T2.4.js
+language/expressions/bitwise-xor/S11.10.2_A3_T2.5.js
+language/expressions/bitwise-xor/S11.10.2_A3_T2.6.js
+language/expressions/bitwise-xor/S11.10.2_A3_T2.7.js
+language/expressions/bitwise-xor/S11.10.2_A3_T2.8.js
+language/expressions/bitwise-xor/S11.10.2_A3_T2.9.js
+language/expressions/call/11.2.3-3_1.js
+language/expressions/call/11.2.3-3_2.js
+language/expressions/call/11.2.3-3_3.js
+language/expressions/call/11.2.3-3_4.js
+language/expressions/call/11.2.3-3_5.js
+language/expressions/call/11.2.3-3_6.js
+language/expressions/call/11.2.3-3_7.js
+language/expressions/call/11.2.3-3_8.js
+language/expressions/call/eval-first-arg.js
+language/expressions/call/S11.2.3_A1.js
+language/expressions/call/S11.2.3_A2.js
+language/expressions/call/S11.2.3_A3_T1.js
+language/expressions/call/S11.2.3_A3_T2.js
+language/expressions/call/S11.2.3_A3_T3.js
+language/expressions/call/S11.2.3_A3_T4.js
+language/expressions/call/S11.2.3_A3_T5.js
+language/expressions/call/S11.2.3_A4_T1.js
+language/expressions/call/S11.2.3_A4_T2.js
+language/expressions/call/S11.2.3_A4_T3.js
+language/expressions/call/S11.2.3_A4_T4.js
+language/expressions/call/S11.2.3_A4_T5.js
+language/expressions/call/S11.2.4_A1.1_T1.js
+language/expressions/call/S11.2.4_A1.1_T2.js
+language/expressions/call/S11.2.4_A1.2_T1.js
+language/expressions/call/S11.2.4_A1.2_T2.js
+language/expressions/call/S11.2.4_A1.3_T1.js
+language/expressions/call/S11.2.4_A1.4_T1.js
+language/expressions/call/S11.2.4_A1.4_T2.js
+language/expressions/call/S11.2.4_A1.4_T3.js
+language/expressions/call/S11.2.4_A1.4_T4.js
+language/expressions/comma/S11.14_A1.js
+language/expressions/comma/S11.14_A2.1_T1.js
+language/expressions/comma/S11.14_A2.1_T2.js
+language/expressions/comma/S11.14_A2.1_T3.js
+language/expressions/comma/S11.14_A3.js
+language/expressions/compound-assignment/11.13.2-10-s.js
+language/expressions/compound-assignment/11.13.2-11-s.js
+language/expressions/compound-assignment/11.13.2-12-s.js
+language/expressions/compound-assignment/11.13.2-13-s.js
+language/expressions/compound-assignment/11.13.2-14-s.js
+language/expressions/compound-assignment/11.13.2-15-s.js
+language/expressions/compound-assignment/11.13.2-16-s.js
+language/expressions/compound-assignment/11.13.2-17-s.js
+language/expressions/compound-assignment/11.13.2-18-s.js
+language/expressions/compound-assignment/11.13.2-19-s.js
+language/expressions/compound-assignment/11.13.2-1-s.js
+language/expressions/compound-assignment/11.13.2-20-s.js
+language/expressions/compound-assignment/11.13.2-21-s.js
+language/expressions/compound-assignment/11.13.2-22-s.js
+language/expressions/compound-assignment/11.13.2-23-s.js
+language/expressions/compound-assignment/11.13.2-24-s.js
+language/expressions/compound-assignment/11.13.2-25-s.js
+language/expressions/compound-assignment/11.13.2-26-s.js
+language/expressions/compound-assignment/11.13.2-27-s.js
+language/expressions/compound-assignment/11.13.2-28-s.js
+language/expressions/compound-assignment/11.13.2-29-s.js
+language/expressions/compound-assignment/11.13.2-2-s.js
+language/expressions/compound-assignment/11.13.2-30-s.js
+language/expressions/compound-assignment/11.13.2-31-s.js
+language/expressions/compound-assignment/11.13.2-32-s.js
+language/expressions/compound-assignment/11.13.2-33-s.js
+language/expressions/compound-assignment/11.13.2-34-s.js
+language/expressions/compound-assignment/11.13.2-35-s.js
+language/expressions/compound-assignment/11.13.2-36-s.js
+language/expressions/compound-assignment/11.13.2-37-s.js
+language/expressions/compound-assignment/11.13.2-38-s.js
+language/expressions/compound-assignment/11.13.2-39-s.js
+language/expressions/compound-assignment/11.13.2-40-s.js
+language/expressions/compound-assignment/11.13.2-41-s.js
+language/expressions/compound-assignment/11.13.2-42-s.js
+language/expressions/compound-assignment/11.13.2-43-s.js
+language/expressions/compound-assignment/11.13.2-44-s.js
+language/expressions/compound-assignment/11.13.2-45-s.js
+language/expressions/compound-assignment/11.13.2-46-s.js
+language/expressions/compound-assignment/11.13.2-47-s.js
+language/expressions/compound-assignment/11.13.2-48-s.js
+language/expressions/compound-assignment/11.13.2-49-s.js
+language/expressions/compound-assignment/11.13.2-4-s.js
+language/expressions/compound-assignment/11.13.2-50-s.js
+language/expressions/compound-assignment/11.13.2-51-s.js
+language/expressions/compound-assignment/11.13.2-52-s.js
+language/expressions/compound-assignment/11.13.2-53-s.js
+language/expressions/compound-assignment/11.13.2-54-s.js
+language/expressions/compound-assignment/11.13.2-55-s.js
+language/expressions/compound-assignment/11.13.2-5-s.js
+language/expressions/compound-assignment/11.13.2-6-1gs.js
+language/expressions/compound-assignment/11.13.2-6-s.js
+language/expressions/compound-assignment/11.13.2-8-s.js
+language/expressions/compound-assignment/11.13.2-9-s.js
+language/expressions/compound-assignment/add-arguments-strict.js
+language/expressions/compound-assignment/add-eval-strict.js
+language/expressions/compound-assignment/add-whitespace.js
+language/expressions/compound-assignment/and-arguments-strict.js
+language/expressions/compound-assignment/and-eval-strict.js
+language/expressions/compound-assignment/and-whitespace.js
+language/expressions/compound-assignment/div-arguments-strict.js
+language/expressions/compound-assignment/div-eval-strict.js
+language/expressions/compound-assignment/div-whitespace.js
+language/expressions/compound-assignment/lshift-arguments-strict.js
+language/expressions/compound-assignment/lshift-eval-strict.js
+language/expressions/compound-assignment/lshift-whitespace.js
+language/expressions/compound-assignment/mod-arguments-strict.js
+language/expressions/compound-assignment/mod-eval-strict.js
+language/expressions/compound-assignment/mod-whitespace.js
+language/expressions/compound-assignment/mult-arguments-strict.js
+language/expressions/compound-assignment/mult-eval-strict.js
+language/expressions/compound-assignment/mult-whitespace.js
+language/expressions/compound-assignment/or-arguments-strict.js
+language/expressions/compound-assignment/or-eval-strict.js
+language/expressions/compound-assignment/or-whitespace.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T1.1.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T1.10.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T1.11.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T1.2.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T1.3.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T1.4.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T1.5.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T1.6.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T1.7.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T1.8.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T1.9.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T2.1.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T2.10.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T2.11.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T2.2.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T2.3.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T2.4.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T2.5.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T2.6.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T2.7.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T2.8.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T2.9.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T3.1.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T3.10.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T3.11.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T3.2.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T3.3.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T3.4.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T3.5.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T3.6.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T3.7.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T3.8.js
+language/expressions/compound-assignment/S11.13.2_A2.1_T3.9.js
+language/expressions/compound-assignment/S11.13.2_A3.1_T1.js
+language/expressions/compound-assignment/S11.13.2_A3.1_T10.js
+language/expressions/compound-assignment/S11.13.2_A3.1_T11.js
+language/expressions/compound-assignment/S11.13.2_A3.1_T2.js
+language/expressions/compound-assignment/S11.13.2_A3.1_T3.js
+language/expressions/compound-assignment/S11.13.2_A3.1_T4.js
+language/expressions/compound-assignment/S11.13.2_A3.1_T5.js
+language/expressions/compound-assignment/S11.13.2_A3.1_T6.js
+language/expressions/compound-assignment/S11.13.2_A3.1_T7.js
+language/expressions/compound-assignment/S11.13.2_A3.1_T8.js
+language/expressions/compound-assignment/S11.13.2_A3.1_T9.js
+language/expressions/compound-assignment/S11.13.2_A3.2_T1.js
+language/expressions/compound-assignment/S11.13.2_A3.2_T10.js
+language/expressions/compound-assignment/S11.13.2_A3.2_T11.js
+language/expressions/compound-assignment/S11.13.2_A3.2_T2.js
+language/expressions/compound-assignment/S11.13.2_A3.2_T3.js
+language/expressions/compound-assignment/S11.13.2_A3.2_T4.js
+language/expressions/compound-assignment/S11.13.2_A3.2_T5.js
+language/expressions/compound-assignment/S11.13.2_A3.2_T6.js
+language/expressions/compound-assignment/S11.13.2_A3.2_T7.js
+language/expressions/compound-assignment/S11.13.2_A3.2_T8.js
+language/expressions/compound-assignment/S11.13.2_A3.2_T9.js
+language/expressions/compound-assignment/S11.13.2_A4.1_T1.1.js
+language/expressions/compound-assignment/S11.13.2_A4.1_T1.2.js
+language/expressions/compound-assignment/S11.13.2_A4.1_T1.3.js
+language/expressions/compound-assignment/S11.13.2_A4.1_T1.4.js
+language/expressions/compound-assignment/S11.13.2_A4.1_T2.1.js
+language/expressions/compound-assignment/S11.13.2_A4.1_T2.2.js
+language/expressions/compound-assignment/S11.13.2_A4.1_T2.3.js
+language/expressions/compound-assignment/S11.13.2_A4.1_T2.4.js
+language/expressions/compound-assignment/S11.13.2_A4.1_T2.5.js
+language/expressions/compound-assignment/S11.13.2_A4.1_T2.6.js
+language/expressions/compound-assignment/S11.13.2_A4.1_T2.7.js
+language/expressions/compound-assignment/S11.13.2_A4.1_T2.8.js
+language/expressions/compound-assignment/S11.13.2_A4.1_T2.9.js
+language/expressions/compound-assignment/S11.13.2_A4.10_T1.1.js
+language/expressions/compound-assignment/S11.13.2_A4.10_T1.2.js
+language/expressions/compound-assignment/S11.13.2_A4.10_T1.3.js
+language/expressions/compound-assignment/S11.13.2_A4.10_T1.4.js
+language/expressions/compound-assignment/S11.13.2_A4.10_T2.1.js
+language/expressions/compound-assignment/S11.13.2_A4.10_T2.2.js
+language/expressions/compound-assignment/S11.13.2_A4.10_T2.3.js
+language/expressions/compound-assignment/S11.13.2_A4.10_T2.4.js
+language/expressions/compound-assignment/S11.13.2_A4.10_T2.5.js
+language/expressions/compound-assignment/S11.13.2_A4.10_T2.6.js
+language/expressions/compound-assignment/S11.13.2_A4.10_T2.7.js
+language/expressions/compound-assignment/S11.13.2_A4.10_T2.8.js
+language/expressions/compound-assignment/S11.13.2_A4.10_T2.9.js
+language/expressions/compound-assignment/S11.13.2_A4.11_T1.1.js
+language/expressions/compound-assignment/S11.13.2_A4.11_T1.2.js
+language/expressions/compound-assignment/S11.13.2_A4.11_T1.3.js
+language/expressions/compound-assignment/S11.13.2_A4.11_T1.4.js
+language/expressions/compound-assignment/S11.13.2_A4.11_T2.1.js
+language/expressions/compound-assignment/S11.13.2_A4.11_T2.2.js
+language/expressions/compound-assignment/S11.13.2_A4.11_T2.3.js
+language/expressions/compound-assignment/S11.13.2_A4.11_T2.4.js
+language/expressions/compound-assignment/S11.13.2_A4.11_T2.5.js
+language/expressions/compound-assignment/S11.13.2_A4.11_T2.6.js
+language/expressions/compound-assignment/S11.13.2_A4.11_T2.7.js
+language/expressions/compound-assignment/S11.13.2_A4.11_T2.8.js
+language/expressions/compound-assignment/S11.13.2_A4.11_T2.9.js
+language/expressions/compound-assignment/S11.13.2_A4.2_T1.1.js
+language/expressions/compound-assignment/S11.13.2_A4.2_T1.2.js
+language/expressions/compound-assignment/S11.13.2_A4.2_T1.3.js
+language/expressions/compound-assignment/S11.13.2_A4.2_T1.4.js
+language/expressions/compound-assignment/S11.13.2_A4.2_T2.1.js
+language/expressions/compound-assignment/S11.13.2_A4.2_T2.2.js
+language/expressions/compound-assignment/S11.13.2_A4.2_T2.3.js
+language/expressions/compound-assignment/S11.13.2_A4.2_T2.4.js
+language/expressions/compound-assignment/S11.13.2_A4.2_T2.5.js
+language/expressions/compound-assignment/S11.13.2_A4.2_T2.6.js
+language/expressions/compound-assignment/S11.13.2_A4.2_T2.7.js
+language/expressions/compound-assignment/S11.13.2_A4.2_T2.8.js
+language/expressions/compound-assignment/S11.13.2_A4.2_T2.9.js
+language/expressions/compound-assignment/S11.13.2_A4.3_T1.1.js
+language/expressions/compound-assignment/S11.13.2_A4.3_T1.2.js
+language/expressions/compound-assignment/S11.13.2_A4.3_T1.3.js
+language/expressions/compound-assignment/S11.13.2_A4.3_T1.4.js
+language/expressions/compound-assignment/S11.13.2_A4.3_T2.1.js
+language/expressions/compound-assignment/S11.13.2_A4.3_T2.2.js
+language/expressions/compound-assignment/S11.13.2_A4.3_T2.3.js
+language/expressions/compound-assignment/S11.13.2_A4.3_T2.4.js
+language/expressions/compound-assignment/S11.13.2_A4.3_T2.5.js
+language/expressions/compound-assignment/S11.13.2_A4.3_T2.6.js
+language/expressions/compound-assignment/S11.13.2_A4.3_T2.7.js
+language/expressions/compound-assignment/S11.13.2_A4.3_T2.8.js
+language/expressions/compound-assignment/S11.13.2_A4.3_T2.9.js
+language/expressions/compound-assignment/S11.13.2_A4.4_T1.1.js
+language/expressions/compound-assignment/S11.13.2_A4.4_T1.2.js
+language/expressions/compound-assignment/S11.13.2_A4.4_T1.3.js
+language/expressions/compound-assignment/S11.13.2_A4.4_T1.4.js
+language/expressions/compound-assignment/S11.13.2_A4.4_T2.1.js
+language/expressions/compound-assignment/S11.13.2_A4.4_T2.2.js
+language/expressions/compound-assignment/S11.13.2_A4.4_T2.3.js
+language/expressions/compound-assignment/S11.13.2_A4.4_T2.4.js
+language/expressions/compound-assignment/S11.13.2_A4.4_T2.5.js
+language/expressions/compound-assignment/S11.13.2_A4.4_T2.6.js
+language/expressions/compound-assignment/S11.13.2_A4.4_T2.7.js
+language/expressions/compound-assignment/S11.13.2_A4.4_T2.8.js
+language/expressions/compound-assignment/S11.13.2_A4.4_T2.9.js
+language/expressions/compound-assignment/S11.13.2_A4.5_T1.1.js
+language/expressions/compound-assignment/S11.13.2_A4.5_T1.2.js
+language/expressions/compound-assignment/S11.13.2_A4.5_T1.3.js
+language/expressions/compound-assignment/S11.13.2_A4.5_T1.4.js
+language/expressions/compound-assignment/S11.13.2_A4.5_T2.1.js
+language/expressions/compound-assignment/S11.13.2_A4.5_T2.2.js
+language/expressions/compound-assignment/S11.13.2_A4.5_T2.3.js
+language/expressions/compound-assignment/S11.13.2_A4.5_T2.4.js
+language/expressions/compound-assignment/S11.13.2_A4.5_T2.5.js
+language/expressions/compound-assignment/S11.13.2_A4.5_T2.6.js
+language/expressions/compound-assignment/S11.13.2_A4.5_T2.7.js
+language/expressions/compound-assignment/S11.13.2_A4.5_T2.8.js
+language/expressions/compound-assignment/S11.13.2_A4.5_T2.9.js
+language/expressions/compound-assignment/S11.13.2_A4.6_T1.1.js
+language/expressions/compound-assignment/S11.13.2_A4.6_T1.2.js
+language/expressions/compound-assignment/S11.13.2_A4.6_T1.3.js
+language/expressions/compound-assignment/S11.13.2_A4.6_T1.4.js
+language/expressions/compound-assignment/S11.13.2_A4.6_T2.1.js
+language/expressions/compound-assignment/S11.13.2_A4.6_T2.2.js
+language/expressions/compound-assignment/S11.13.2_A4.6_T2.3.js
+language/expressions/compound-assignment/S11.13.2_A4.6_T2.4.js
+language/expressions/compound-assignment/S11.13.2_A4.6_T2.5.js
+language/expressions/compound-assignment/S11.13.2_A4.6_T2.6.js
+language/expressions/compound-assignment/S11.13.2_A4.6_T2.7.js
+language/expressions/compound-assignment/S11.13.2_A4.6_T2.8.js
+language/expressions/compound-assignment/S11.13.2_A4.6_T2.9.js
+language/expressions/compound-assignment/S11.13.2_A4.7_T1.1.js
+language/expressions/compound-assignment/S11.13.2_A4.7_T1.2.js
+language/expressions/compound-assignment/S11.13.2_A4.7_T1.3.js
+language/expressions/compound-assignment/S11.13.2_A4.7_T1.4.js
+language/expressions/compound-assignment/S11.13.2_A4.7_T2.1.js
+language/expressions/compound-assignment/S11.13.2_A4.7_T2.2.js
+language/expressions/compound-assignment/S11.13.2_A4.7_T2.3.js
+language/expressions/compound-assignment/S11.13.2_A4.7_T2.4.js
+language/expressions/compound-assignment/S11.13.2_A4.7_T2.5.js
+language/expressions/compound-assignment/S11.13.2_A4.7_T2.6.js
+language/expressions/compound-assignment/S11.13.2_A4.7_T2.7.js
+language/expressions/compound-assignment/S11.13.2_A4.7_T2.8.js
+language/expressions/compound-assignment/S11.13.2_A4.7_T2.9.js
+language/expressions/compound-assignment/S11.13.2_A4.8_T1.1.js
+language/expressions/compound-assignment/S11.13.2_A4.8_T1.2.js
+language/expressions/compound-assignment/S11.13.2_A4.8_T1.3.js
+language/expressions/compound-assignment/S11.13.2_A4.8_T1.4.js
+language/expressions/compound-assignment/S11.13.2_A4.8_T2.1.js
+language/expressions/compound-assignment/S11.13.2_A4.8_T2.2.js
+language/expressions/compound-assignment/S11.13.2_A4.8_T2.3.js
+language/expressions/compound-assignment/S11.13.2_A4.8_T2.4.js
+language/expressions/compound-assignment/S11.13.2_A4.8_T2.5.js
+language/expressions/compound-assignment/S11.13.2_A4.8_T2.6.js
+language/expressions/compound-assignment/S11.13.2_A4.8_T2.7.js
+language/expressions/compound-assignment/S11.13.2_A4.8_T2.8.js
+language/expressions/compound-assignment/S11.13.2_A4.8_T2.9.js
+language/expressions/compound-assignment/S11.13.2_A4.9_T1.1.js
+language/expressions/compound-assignment/S11.13.2_A4.9_T1.2.js
+language/expressions/compound-assignment/S11.13.2_A4.9_T1.3.js
+language/expressions/compound-assignment/S11.13.2_A4.9_T1.4.js
+language/expressions/compound-assignment/S11.13.2_A4.9_T2.1.js
+language/expressions/compound-assignment/S11.13.2_A4.9_T2.2.js
+language/expressions/compound-assignment/S11.13.2_A4.9_T2.3.js
+language/expressions/compound-assignment/S11.13.2_A4.9_T2.4.js
+language/expressions/compound-assignment/S11.13.2_A4.9_T2.5.js
+language/expressions/compound-assignment/S11.13.2_A4.9_T2.6.js
+language/expressions/compound-assignment/S11.13.2_A4.9_T2.7.js
+language/expressions/compound-assignment/S11.13.2_A4.9_T2.8.js
+language/expressions/compound-assignment/S11.13.2_A4.9_T2.9.js
+language/expressions/compound-assignment/S11.13.2_A5.1_T1.js
+language/expressions/compound-assignment/S11.13.2_A5.1_T2.js
+language/expressions/compound-assignment/S11.13.2_A5.1_T3.js
+language/expressions/compound-assignment/S11.13.2_A5.10_T1.js
+language/expressions/compound-assignment/S11.13.2_A5.10_T2.js
+language/expressions/compound-assignment/S11.13.2_A5.10_T3.js
+language/expressions/compound-assignment/S11.13.2_A5.11_T1.js
+language/expressions/compound-assignment/S11.13.2_A5.11_T2.js
+language/expressions/compound-assignment/S11.13.2_A5.11_T3.js
+language/expressions/compound-assignment/S11.13.2_A5.2_T1.js
+language/expressions/compound-assignment/S11.13.2_A5.2_T2.js
+language/expressions/compound-assignment/S11.13.2_A5.2_T3.js
+language/expressions/compound-assignment/S11.13.2_A5.3_T1.js
+language/expressions/compound-assignment/S11.13.2_A5.3_T2.js
+language/expressions/compound-assignment/S11.13.2_A5.3_T3.js
+language/expressions/compound-assignment/S11.13.2_A5.4_T1.js
+language/expressions/compound-assignment/S11.13.2_A5.4_T2.js
+language/expressions/compound-assignment/S11.13.2_A5.4_T3.js
+language/expressions/compound-assignment/S11.13.2_A5.5_T1.js
+language/expressions/compound-assignment/S11.13.2_A5.5_T2.js
+language/expressions/compound-assignment/S11.13.2_A5.5_T3.js
+language/expressions/compound-assignment/S11.13.2_A5.6_T1.js
+language/expressions/compound-assignment/S11.13.2_A5.6_T2.js
+language/expressions/compound-assignment/S11.13.2_A5.6_T3.js
+language/expressions/compound-assignment/S11.13.2_A5.7_T1.js
+language/expressions/compound-assignment/S11.13.2_A5.7_T2.js
+language/expressions/compound-assignment/S11.13.2_A5.7_T3.js
+language/expressions/compound-assignment/S11.13.2_A5.8_T1.js
+language/expressions/compound-assignment/S11.13.2_A5.8_T2.js
+language/expressions/compound-assignment/S11.13.2_A5.8_T3.js
+language/expressions/compound-assignment/S11.13.2_A5.9_T1.js
+language/expressions/compound-assignment/S11.13.2_A5.9_T2.js
+language/expressions/compound-assignment/S11.13.2_A5.9_T3.js
+language/expressions/compound-assignment/S11.13.2_A6.1_T1.js
+language/expressions/compound-assignment/S11.13.2_A6.10_T1.js
+language/expressions/compound-assignment/S11.13.2_A6.11_T1.js
+language/expressions/compound-assignment/S11.13.2_A6.2_T1.js
+language/expressions/compound-assignment/S11.13.2_A6.3_T1.js
+language/expressions/compound-assignment/S11.13.2_A6.4_T1.js
+language/expressions/compound-assignment/S11.13.2_A6.5_T1.js
+language/expressions/compound-assignment/S11.13.2_A6.6_T1.js
+language/expressions/compound-assignment/S11.13.2_A6.7_T1.js
+language/expressions/compound-assignment/S11.13.2_A6.8_T1.js
+language/expressions/compound-assignment/S11.13.2_A6.9_T1.js
+language/expressions/compound-assignment/srshift-arguments-strict.js
+language/expressions/compound-assignment/srshift-eval-strict.js
+language/expressions/compound-assignment/srshift-whitespace.js
+language/expressions/compound-assignment/sub-arguments-strict.js
+language/expressions/compound-assignment/sub-eval-strict.js
+language/expressions/compound-assignment/sub-whitespace.js
+language/expressions/compound-assignment/urshift-arguments-strict.js
+language/expressions/compound-assignment/urshift-eval-strict.js
+language/expressions/compound-assignment/urshift-whitespace.js
+language/expressions/compound-assignment/xor-arguments-strict.js
+language/expressions/compound-assignment/xor-eval-strict.js
+language/expressions/compound-assignment/xor-whitespace.js
+language/expressions/concatenation/S9.8_A1_T2.js
+language/expressions/concatenation/S9.8_A2_T2.js
+language/expressions/concatenation/S9.8_A3_T2.js
+language/expressions/concatenation/S9.8_A4_T2.js
+language/expressions/concatenation/S9.8_A5_T2.js
+language/expressions/conditional/S11.12_A1.js
+language/expressions/conditional/S11.12_A2.1_T1.js
+language/expressions/conditional/S11.12_A2.1_T2.js
+language/expressions/conditional/S11.12_A2.1_T3.js
+language/expressions/conditional/S11.12_A2.1_T4.js
+language/expressions/conditional/S11.12_A2.1_T5.js
+language/expressions/conditional/S11.12_A2.1_T6.js
+language/expressions/conditional/S11.12_A3_T1.js
+language/expressions/conditional/S11.12_A3_T2.js
+language/expressions/conditional/S11.12_A3_T3.js
+language/expressions/conditional/S11.12_A3_T4.js
+language/expressions/conditional/S11.12_A4_T1.js
+language/expressions/conditional/S11.12_A4_T2.js
+language/expressions/conditional/S11.12_A4_T3.js
+language/expressions/conditional/S11.12_A4_T4.js
+language/expressions/division/S11.5.2_A1.js
+language/expressions/division/S11.5.2_A2.1_T1.js
+language/expressions/division/S11.5.2_A2.1_T2.js
+language/expressions/division/S11.5.2_A2.1_T3.js
+language/expressions/division/S11.5.2_A2.2_T1.js
+language/expressions/division/S11.5.2_A2.3_T1.js
+language/expressions/division/S11.5.2_A2.4_T1.js
+language/expressions/division/S11.5.2_A2.4_T2.js
+language/expressions/division/S11.5.2_A2.4_T3.js
+language/expressions/division/S11.5.2_A2.4_T4.js
+language/expressions/division/S11.5.2_A3_T1.1.js
+language/expressions/division/S11.5.2_A3_T1.2.js
+language/expressions/division/S11.5.2_A3_T1.3.js
+language/expressions/division/S11.5.2_A3_T1.4.js
+language/expressions/division/S11.5.2_A3_T1.5.js
+language/expressions/division/S11.5.2_A3_T2.1.js
+language/expressions/division/S11.5.2_A3_T2.2.js
+language/expressions/division/S11.5.2_A3_T2.3.js
+language/expressions/division/S11.5.2_A3_T2.4.js
+language/expressions/division/S11.5.2_A3_T2.5.js
+language/expressions/division/S11.5.2_A3_T2.6.js
+language/expressions/division/S11.5.2_A3_T2.7.js
+language/expressions/division/S11.5.2_A3_T2.8.js
+language/expressions/division/S11.5.2_A3_T2.9.js
+language/expressions/division/S11.5.2_A4_T1.1.js
+language/expressions/division/S11.5.2_A4_T1.2.js
+language/expressions/division/S11.5.2_A4_T10.js
+language/expressions/division/S11.5.2_A4_T2.js
+language/expressions/division/S11.5.2_A4_T3.js
+language/expressions/division/S11.5.2_A4_T4.js
+language/expressions/division/S11.5.2_A4_T5.js
+language/expressions/division/S11.5.2_A4_T6.js
+language/expressions/division/S11.5.2_A4_T7.js
+language/expressions/division/S11.5.2_A4_T8.js
+language/expressions/division/S11.5.2_A4_T9.js
+language/expressions/does-not-equals/S11.9.2_A1.js
+language/expressions/does-not-equals/S11.9.2_A2.1_T1.js
+language/expressions/does-not-equals/S11.9.2_A2.1_T2.js
+language/expressions/does-not-equals/S11.9.2_A2.1_T3.js
+language/expressions/does-not-equals/S11.9.2_A2.4_T1.js
+language/expressions/does-not-equals/S11.9.2_A2.4_T2.js
+language/expressions/does-not-equals/S11.9.2_A2.4_T3.js
+language/expressions/does-not-equals/S11.9.2_A2.4_T4.js
+language/expressions/does-not-equals/S11.9.2_A3.1.js
+language/expressions/does-not-equals/S11.9.2_A3.2.js
+language/expressions/does-not-equals/S11.9.2_A3.3.js
+language/expressions/does-not-equals/S11.9.2_A4.1_T1.js
+language/expressions/does-not-equals/S11.9.2_A4.1_T2.js
+language/expressions/does-not-equals/S11.9.2_A4.2.js
+language/expressions/does-not-equals/S11.9.2_A4.3.js
+language/expressions/does-not-equals/S11.9.2_A5.1.js
+language/expressions/does-not-equals/S11.9.2_A5.2.js
+language/expressions/does-not-equals/S11.9.2_A5.3.js
+language/expressions/does-not-equals/S11.9.2_A6.1.js
+language/expressions/does-not-equals/S11.9.2_A6.2_T1.js
+language/expressions/does-not-equals/S11.9.2_A6.2_T2.js
+language/expressions/does-not-equals/S11.9.2_A7.1.js
+language/expressions/does-not-equals/S11.9.2_A7.2.js
+language/expressions/does-not-equals/S11.9.2_A7.3.js
+language/expressions/does-not-equals/S11.9.2_A7.4.js
+language/expressions/does-not-equals/S11.9.2_A7.5.js
+language/expressions/does-not-equals/S11.9.2_A7.6.js
+language/expressions/does-not-equals/S11.9.2_A7.7.js
+language/expressions/does-not-equals/S11.9.2_A7.8.js
+language/expressions/does-not-equals/S11.9.2_A7.9.js
+language/expressions/equals/S11.9.1_A1.js
+language/expressions/equals/S11.9.1_A2.1_T1.js
+language/expressions/equals/S11.9.1_A2.1_T2.js
+language/expressions/equals/S11.9.1_A2.1_T3.js
+language/expressions/equals/S11.9.1_A2.4_T1.js
+language/expressions/equals/S11.9.1_A2.4_T2.js
+language/expressions/equals/S11.9.1_A2.4_T3.js
+language/expressions/equals/S11.9.1_A2.4_T4.js
+language/expressions/equals/S11.9.1_A3.1.js
+language/expressions/equals/S11.9.1_A3.2.js
+language/expressions/equals/S11.9.1_A3.3.js
+language/expressions/equals/S11.9.1_A4.1_T1.js
+language/expressions/equals/S11.9.1_A4.1_T2.js
+language/expressions/equals/S11.9.1_A4.2.js
+language/expressions/equals/S11.9.1_A4.3.js
+language/expressions/equals/S11.9.1_A5.1.js
+language/expressions/equals/S11.9.1_A5.2.js
+language/expressions/equals/S11.9.1_A5.3.js
+language/expressions/equals/S11.9.1_A6.1.js
+language/expressions/equals/S11.9.1_A6.2_T1.js
+language/expressions/equals/S11.9.1_A6.2_T2.js
+language/expressions/equals/S11.9.1_A7.1.js
+language/expressions/equals/S11.9.1_A7.2.js
+language/expressions/equals/S11.9.1_A7.3.js
+language/expressions/equals/S11.9.1_A7.4.js
+language/expressions/equals/S11.9.1_A7.5.js
+language/expressions/equals/S11.9.1_A7.6.js
+language/expressions/equals/S11.9.1_A7.7.js
+language/expressions/equals/S11.9.1_A7.8.js
+language/expressions/equals/S11.9.1_A7.9.js
+language/expressions/equals/S9.1_A1_T3.js
+language/expressions/function/name-arguments-non-strict.js
+language/expressions/function/name-arguments-strict.js
+language/expressions/function/name-arguments-strict-body.js
+language/expressions/function/name-eval-non-strict.js
+language/expressions/function/name-eval-strict.js
+language/expressions/function/name-eval-strict-body.js
+language/expressions/function/name-eval-stricteval.js
+language/expressions/function/param-arguments-non-strict.js
+language/expressions/function/param-duplicated-non-strict.js
+language/expressions/function/param-duplicated-strict-1.js
+language/expressions/function/param-duplicated-strict-2.js
+language/expressions/function/param-duplicated-strict-3.js
+language/expressions/function/param-duplicated-strict-body-1.js
+language/expressions/function/param-duplicated-strict-body-2.js
+language/expressions/function/param-duplicated-strict-body-3.js
+language/expressions/function/param-eval-non-strict.js
+language/expressions/function/param-eval-strict-body.js
+language/expressions/function/param-eval-stricteval.js
+language/expressions/function/S10.1.1_A1_T2.js
+language/expressions/greater-than/11.8.2-1.js
+language/expressions/greater-than/11.8.2-2.js
+language/expressions/greater-than/11.8.2-3.js
+language/expressions/greater-than/11.8.2-4.js
+language/expressions/greater-than/S11.8.2_A1.js
+language/expressions/greater-than/S11.8.2_A2.1_T1.js
+language/expressions/greater-than/S11.8.2_A2.1_T2.js
+language/expressions/greater-than/S11.8.2_A2.1_T3.js
+language/expressions/greater-than/S11.8.2_A2.2_T1.js
+language/expressions/greater-than/S11.8.2_A2.3_T1.js
+language/expressions/greater-than/S11.8.2_A2.4_T1.js
+language/expressions/greater-than/S11.8.2_A2.4_T2.js
+language/expressions/greater-than/S11.8.2_A2.4_T3.js
+language/expressions/greater-than/S11.8.2_A2.4_T4.js
+language/expressions/greater-than/S11.8.2_A3.1_T1.1.js
+language/expressions/greater-than/S11.8.2_A3.1_T1.2.js
+language/expressions/greater-than/S11.8.2_A3.1_T1.3.js
+language/expressions/greater-than/S11.8.2_A3.1_T2.1.js
+language/expressions/greater-than/S11.8.2_A3.1_T2.2.js
+language/expressions/greater-than/S11.8.2_A3.1_T2.3.js
+language/expressions/greater-than/S11.8.2_A3.1_T2.4.js
+language/expressions/greater-than/S11.8.2_A3.1_T2.5.js
+language/expressions/greater-than/S11.8.2_A3.1_T2.6.js
+language/expressions/greater-than/S11.8.2_A3.1_T2.7.js
+language/expressions/greater-than/S11.8.2_A3.1_T2.8.js
+language/expressions/greater-than/S11.8.2_A3.1_T2.9.js
+language/expressions/greater-than/S11.8.2_A3.2_T1.1.js
+language/expressions/greater-than/S11.8.2_A3.2_T1.2.js
+language/expressions/greater-than/S11.8.2_A4.1.js
+language/expressions/greater-than/S11.8.2_A4.10.js
+language/expressions/greater-than/S11.8.2_A4.11.js
+language/expressions/greater-than/S11.8.2_A4.12_T1.js
+language/expressions/greater-than/S11.8.2_A4.12_T2.js
+language/expressions/greater-than/S11.8.2_A4.2.js
+language/expressions/greater-than/S11.8.2_A4.3.js
+language/expressions/greater-than/S11.8.2_A4.4.js
+language/expressions/greater-than/S11.8.2_A4.5.js
+language/expressions/greater-than/S11.8.2_A4.6.js
+language/expressions/greater-than/S11.8.2_A4.7.js
+language/expressions/greater-than/S11.8.2_A4.8.js
+language/expressions/greater-than/S11.8.2_A4.9.js
+language/expressions/greater-than-or-equal/S11.8.4_A1.js
+language/expressions/greater-than-or-equal/S11.8.4_A2.1_T1.js
+language/expressions/greater-than-or-equal/S11.8.4_A2.1_T2.js
+language/expressions/greater-than-or-equal/S11.8.4_A2.1_T3.js
+language/expressions/greater-than-or-equal/S11.8.4_A2.2_T1.js
+language/expressions/greater-than-or-equal/S11.8.4_A2.3_T1.js
+language/expressions/greater-than-or-equal/S11.8.4_A2.4_T1.js
+language/expressions/greater-than-or-equal/S11.8.4_A2.4_T2.js
+language/expressions/greater-than-or-equal/S11.8.4_A2.4_T3.js
+language/expressions/greater-than-or-equal/S11.8.4_A2.4_T4.js
+language/expressions/greater-than-or-equal/S11.8.4_A3.1_T1.1.js
+language/expressions/greater-than-or-equal/S11.8.4_A3.1_T1.2.js
+language/expressions/greater-than-or-equal/S11.8.4_A3.1_T1.3.js
+language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.1.js
+language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.2.js
+language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.3.js
+language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.4.js
+language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.5.js
+language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.6.js
+language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.7.js
+language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.8.js
+language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.9.js
+language/expressions/greater-than-or-equal/S11.8.4_A3.2_T1.1.js
+language/expressions/greater-than-or-equal/S11.8.4_A3.2_T1.2.js
+language/expressions/greater-than-or-equal/S11.8.4_A4.1.js
+language/expressions/greater-than-or-equal/S11.8.4_A4.10.js
+language/expressions/greater-than-or-equal/S11.8.4_A4.11.js
+language/expressions/greater-than-or-equal/S11.8.4_A4.12_T1.js
+language/expressions/greater-than-or-equal/S11.8.4_A4.12_T2.js
+language/expressions/greater-than-or-equal/S11.8.4_A4.2.js
+language/expressions/greater-than-or-equal/S11.8.4_A4.3.js
+language/expressions/greater-than-or-equal/S11.8.4_A4.4.js
+language/expressions/greater-than-or-equal/S11.8.4_A4.5.js
+language/expressions/greater-than-or-equal/S11.8.4_A4.6.js
+language/expressions/greater-than-or-equal/S11.8.4_A4.7.js
+language/expressions/greater-than-or-equal/S11.8.4_A4.8.js
+language/expressions/greater-than-or-equal/S11.8.4_A4.9.js
+language/expressions/grouping/S11.1.6_A1.js
+language/expressions/grouping/S11.1.6_A2_T1.js
+language/expressions/grouping/S11.1.6_A2_T2.js
+language/expressions/grouping/S11.1.6_A3_T1.js
+language/expressions/grouping/S11.1.6_A3_T2.js
+language/expressions/grouping/S11.1.6_A3_T3.js
+language/expressions/grouping/S11.1.6_A3_T4.js
+language/expressions/grouping/S11.1.6_A3_T6.js
+language/expressions/grouping/S11.1.6_A3_T7.js
+language/expressions/in/S11.8.7_A1.js
+language/expressions/in/S11.8.7_A2.1_T1.js
+language/expressions/in/S11.8.7_A2.1_T2.js
+language/expressions/in/S11.8.7_A2.1_T3.js
+language/expressions/in/S11.8.7_A2.4_T1.js
+language/expressions/in/S11.8.7_A2.4_T2.js
+language/expressions/in/S11.8.7_A2.4_T3.js
+language/expressions/in/S11.8.7_A2.4_T4.js
+language/expressions/in/S11.8.7_A3.js
+language/expressions/in/S11.8.7_A4.js
+language/expressions/in/S8.12.6_A1.js
+language/expressions/in/S8.12.6_A2_T1.js
+language/expressions/in/S8.12.6_A2_T2.js
+language/expressions/in/S8.12.6_A3.js
+language/expressions/instanceof/S11.8.6_A1.js
+language/expressions/instanceof/S11.8.6_A2.1_T1.js
+language/expressions/instanceof/S11.8.6_A2.1_T2.js
+language/expressions/instanceof/S11.8.6_A2.1_T3.js
+language/expressions/instanceof/S11.8.6_A2.4_T1.js
+language/expressions/instanceof/S11.8.6_A2.4_T2.js
+language/expressions/instanceof/S11.8.6_A2.4_T3.js
+language/expressions/instanceof/S11.8.6_A2.4_T4.js
+language/expressions/instanceof/S11.8.6_A3.js
+language/expressions/instanceof/S11.8.6_A4_T1.js
+language/expressions/instanceof/S11.8.6_A4_T2.js
+language/expressions/instanceof/S11.8.6_A4_T3.js
+language/expressions/instanceof/S11.8.6_A5_T1.js
+language/expressions/instanceof/S11.8.6_A5_T2.js
+language/expressions/instanceof/S11.8.6_A6_T1.js
+language/expressions/instanceof/S11.8.6_A6_T2.js
+language/expressions/instanceof/S11.8.6_A6_T3.js
+language/expressions/instanceof/S11.8.6_A6_T4.js
+language/expressions/instanceof/S11.8.6_A7_T1.js
+language/expressions/instanceof/S11.8.6_A7_T2.js
+language/expressions/instanceof/S11.8.6_A7_T3.js
+language/expressions/instanceof/S15.3.5.3_A1_T1.js
+language/expressions/instanceof/S15.3.5.3_A1_T2.js
+language/expressions/instanceof/S15.3.5.3_A1_T3.js
+language/expressions/instanceof/S15.3.5.3_A1_T4.js
+language/expressions/instanceof/S15.3.5.3_A1_T5.js
+language/expressions/instanceof/S15.3.5.3_A1_T6.js
+language/expressions/instanceof/S15.3.5.3_A1_T7.js
+language/expressions/instanceof/S15.3.5.3_A1_T8.js
+language/expressions/instanceof/S15.3.5.3_A2_T2.js
+language/expressions/instanceof/S15.3.5.3_A2_T5.js
+language/expressions/instanceof/S15.3.5.3_A2_T6.js
+language/expressions/instanceof/S15.3.5.3_A3_T1.js
+language/expressions/instanceof/S15.3.5.3_A3_T2.js
+language/expressions/left-shift/S11.7.1_A1.js
+language/expressions/left-shift/S11.7.1_A2.1_T1.js
+language/expressions/left-shift/S11.7.1_A2.1_T2.js
+language/expressions/left-shift/S11.7.1_A2.1_T3.js
+language/expressions/left-shift/S11.7.1_A2.2_T1.js
+language/expressions/left-shift/S11.7.1_A2.3_T1.js
+language/expressions/left-shift/S11.7.1_A2.4_T1.js
+language/expressions/left-shift/S11.7.1_A2.4_T2.js
+language/expressions/left-shift/S11.7.1_A2.4_T3.js
+language/expressions/left-shift/S11.7.1_A2.4_T4.js
+language/expressions/left-shift/S11.7.1_A3_T1.1.js
+language/expressions/left-shift/S11.7.1_A3_T1.2.js
+language/expressions/left-shift/S11.7.1_A3_T1.3.js
+language/expressions/left-shift/S11.7.1_A3_T1.4.js
+language/expressions/left-shift/S11.7.1_A3_T1.5.js
+language/expressions/left-shift/S11.7.1_A3_T2.1.js
+language/expressions/left-shift/S11.7.1_A3_T2.2.js
+language/expressions/left-shift/S11.7.1_A3_T2.3.js
+language/expressions/left-shift/S11.7.1_A3_T2.4.js
+language/expressions/left-shift/S11.7.1_A3_T2.5.js
+language/expressions/left-shift/S11.7.1_A3_T2.6.js
+language/expressions/left-shift/S11.7.1_A3_T2.7.js
+language/expressions/left-shift/S11.7.1_A3_T2.8.js
+language/expressions/left-shift/S11.7.1_A3_T2.9.js
+language/expressions/left-shift/S11.7.1_A4_T1.js
+language/expressions/left-shift/S11.7.1_A4_T2.js
+language/expressions/left-shift/S11.7.1_A4_T3.js
+language/expressions/left-shift/S11.7.1_A4_T4.js
+language/expressions/left-shift/S11.7.1_A5.1_T1.js
+language/expressions/left-shift/S11.7.1_A5.2_T1.js
+language/expressions/left-shift/S9.5_A1_T1.js
+language/expressions/left-shift/S9.5_A2.1_T1.js
+language/expressions/left-shift/S9.5_A2.2_T1.js
+language/expressions/left-shift/S9.5_A2.3_T1.js
+language/expressions/left-shift/S9.5_A3.1_T1.js
+language/expressions/left-shift/S9.5_A3.1_T2.js
+language/expressions/left-shift/S9.5_A3.1_T3.js
+language/expressions/left-shift/S9.5_A3.2_T1.js
+language/expressions/less-than/S11.8.1_A1.js
+language/expressions/less-than/S11.8.1_A2.1_T1.js
+language/expressions/less-than/S11.8.1_A2.1_T2.js
+language/expressions/less-than/S11.8.1_A2.1_T3.js
+language/expressions/less-than/S11.8.1_A2.2_T1.js
+language/expressions/less-than/S11.8.1_A2.3_T1.js
+language/expressions/less-than/S11.8.1_A2.4_T1.js
+language/expressions/less-than/S11.8.1_A2.4_T2.js
+language/expressions/less-than/S11.8.1_A2.4_T3.js
+language/expressions/less-than/S11.8.1_A2.4_T4.js
+language/expressions/less-than/S11.8.1_A3.1_T1.1.js
+language/expressions/less-than/S11.8.1_A3.1_T1.2.js
+language/expressions/less-than/S11.8.1_A3.1_T1.3.js
+language/expressions/less-than/S11.8.1_A3.1_T2.1.js
+language/expressions/less-than/S11.8.1_A3.1_T2.2.js
+language/expressions/less-than/S11.8.1_A3.1_T2.3.js
+language/expressions/less-than/S11.8.1_A3.1_T2.4.js
+language/expressions/less-than/S11.8.1_A3.1_T2.5.js
+language/expressions/less-than/S11.8.1_A3.1_T2.6.js
+language/expressions/less-than/S11.8.1_A3.1_T2.7.js
+language/expressions/less-than/S11.8.1_A3.1_T2.8.js
+language/expressions/less-than/S11.8.1_A3.1_T2.9.js
+language/expressions/less-than/S11.8.1_A3.2_T1.1.js
+language/expressions/less-than/S11.8.1_A3.2_T1.2.js
+language/expressions/less-than/S11.8.1_A4.1.js
+language/expressions/less-than/S11.8.1_A4.10.js
+language/expressions/less-than/S11.8.1_A4.11.js
+language/expressions/less-than/S11.8.1_A4.12_T1.js
+language/expressions/less-than/S11.8.1_A4.12_T2.js
+language/expressions/less-than/S11.8.1_A4.2.js
+language/expressions/less-than/S11.8.1_A4.3.js
+language/expressions/less-than/S11.8.1_A4.4.js
+language/expressions/less-than/S11.8.1_A4.5.js
+language/expressions/less-than/S11.8.1_A4.6.js
+language/expressions/less-than/S11.8.1_A4.7.js
+language/expressions/less-than/S11.8.1_A4.8.js
+language/expressions/less-than/S11.8.1_A4.9.js
+language/expressions/less-than-or-equal/11.8.3-1.js
+language/expressions/less-than-or-equal/11.8.3-2.js
+language/expressions/less-than-or-equal/11.8.3-3.js
+language/expressions/less-than-or-equal/11.8.3-4.js
+language/expressions/less-than-or-equal/S11.8.3_A1.js
+language/expressions/less-than-or-equal/S11.8.3_A2.1_T1.js
+language/expressions/less-than-or-equal/S11.8.3_A2.1_T2.js
+language/expressions/less-than-or-equal/S11.8.3_A2.1_T3.js
+language/expressions/less-than-or-equal/S11.8.3_A2.2_T1.js
+language/expressions/less-than-or-equal/S11.8.3_A2.3_T1.js
+language/expressions/less-than-or-equal/S11.8.3_A2.4_T1.js
+language/expressions/less-than-or-equal/S11.8.3_A2.4_T2.js
+language/expressions/less-than-or-equal/S11.8.3_A2.4_T3.js
+language/expressions/less-than-or-equal/S11.8.3_A2.4_T4.js
+language/expressions/less-than-or-equal/S11.8.3_A3.1_T1.1.js
+language/expressions/less-than-or-equal/S11.8.3_A3.1_T1.2.js
+language/expressions/less-than-or-equal/S11.8.3_A3.1_T1.3.js
+language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.1.js
+language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.2.js
+language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.3.js
+language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.4.js
+language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.5.js
+language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.6.js
+language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.7.js
+language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.8.js
+language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.9.js
+language/expressions/less-than-or-equal/S11.8.3_A3.2_T1.1.js
+language/expressions/less-than-or-equal/S11.8.3_A3.2_T1.2.js
+language/expressions/less-than-or-equal/S11.8.3_A4.1.js
+language/expressions/less-than-or-equal/S11.8.3_A4.10.js
+language/expressions/less-than-or-equal/S11.8.3_A4.11.js
+language/expressions/less-than-or-equal/S11.8.3_A4.12_T1.js
+language/expressions/less-than-or-equal/S11.8.3_A4.12_T2.js
+language/expressions/less-than-or-equal/S11.8.3_A4.2.js
+language/expressions/less-than-or-equal/S11.8.3_A4.3.js
+language/expressions/less-than-or-equal/S11.8.3_A4.4.js
+language/expressions/less-than-or-equal/S11.8.3_A4.5.js
+language/expressions/less-than-or-equal/S11.8.3_A4.6.js
+language/expressions/less-than-or-equal/S11.8.3_A4.7.js
+language/expressions/less-than-or-equal/S11.8.3_A4.8.js
+language/expressions/less-than-or-equal/S11.8.3_A4.9.js
+language/expressions/logical-and/S11.11.1_A1.js
+language/expressions/logical-and/S11.11.1_A2.1_T1.js
+language/expressions/logical-and/S11.11.1_A2.1_T2.js
+language/expressions/logical-and/S11.11.1_A2.1_T3.js
+language/expressions/logical-and/S11.11.1_A2.1_T4.js
+language/expressions/logical-and/S11.11.1_A2.4_T1.js
+language/expressions/logical-and/S11.11.1_A2.4_T2.js
+language/expressions/logical-and/S11.11.1_A2.4_T3.js
+language/expressions/logical-and/S11.11.1_A3_T1.js
+language/expressions/logical-and/S11.11.1_A3_T2.js
+language/expressions/logical-and/S11.11.1_A3_T3.js
+language/expressions/logical-and/S11.11.1_A3_T4.js
+language/expressions/logical-and/S11.11.1_A4_T1.js
+language/expressions/logical-and/S11.11.1_A4_T2.js
+language/expressions/logical-and/S11.11.1_A4_T3.js
+language/expressions/logical-and/S11.11.1_A4_T4.js
+language/expressions/logical-not/S11.4.9_A1.js
+language/expressions/logical-not/S11.4.9_A2.1_T1.js
+language/expressions/logical-not/S11.4.9_A2.1_T2.js
+language/expressions/logical-not/S11.4.9_A2.2_T1.js
+language/expressions/logical-not/S11.4.9_A3_T1.js
+language/expressions/logical-not/S11.4.9_A3_T2.js
+language/expressions/logical-not/S11.4.9_A3_T3.js
+language/expressions/logical-not/S11.4.9_A3_T4.js
+language/expressions/logical-not/S11.4.9_A3_T5.js
+language/expressions/logical-not/S9.2_A1_T2.js
+language/expressions/logical-not/S9.2_A2_T2.js
+language/expressions/logical-not/S9.2_A3_T2.js
+language/expressions/logical-not/S9.2_A4_T2.js
+language/expressions/logical-not/S9.2_A4_T4.js
+language/expressions/logical-not/S9.2_A5_T2.js
+language/expressions/logical-not/S9.2_A5_T4.js
+language/expressions/logical-not/S9.2_A6_T2.js
+language/expressions/logical-or/S11.11.2_A1.js
+language/expressions/logical-or/S11.11.2_A2.1_T1.js
+language/expressions/logical-or/S11.11.2_A2.1_T2.js
+language/expressions/logical-or/S11.11.2_A2.1_T3.js
+language/expressions/logical-or/S11.11.2_A2.1_T4.js
+language/expressions/logical-or/S11.11.2_A2.4_T1.js
+language/expressions/logical-or/S11.11.2_A2.4_T2.js
+language/expressions/logical-or/S11.11.2_A2.4_T3.js
+language/expressions/logical-or/S11.11.2_A3_T1.js
+language/expressions/logical-or/S11.11.2_A3_T2.js
+language/expressions/logical-or/S11.11.2_A3_T3.js
+language/expressions/logical-or/S11.11.2_A3_T4.js
+language/expressions/logical-or/S11.11.2_A4_T1.js
+language/expressions/logical-or/S11.11.2_A4_T2.js
+language/expressions/logical-or/S11.11.2_A4_T3.js
+language/expressions/logical-or/S11.11.2_A4_T4.js
+language/expressions/modulus/S11.5.3_A1.js
+language/expressions/modulus/S11.5.3_A2.1_T1.js
+language/expressions/modulus/S11.5.3_A2.1_T2.js
+language/expressions/modulus/S11.5.3_A2.1_T3.js
+language/expressions/modulus/S11.5.3_A2.2_T1.js
+language/expressions/modulus/S11.5.3_A2.3_T1.js
+language/expressions/modulus/S11.5.3_A2.4_T1.js
+language/expressions/modulus/S11.5.3_A2.4_T2.js
+language/expressions/modulus/S11.5.3_A2.4_T3.js
+language/expressions/modulus/S11.5.3_A2.4_T4.js
+language/expressions/modulus/S11.5.3_A3_T1.1.js
+language/expressions/modulus/S11.5.3_A3_T1.2.js
+language/expressions/modulus/S11.5.3_A3_T1.3.js
+language/expressions/modulus/S11.5.3_A3_T1.4.js
+language/expressions/modulus/S11.5.3_A3_T1.5.js
+language/expressions/modulus/S11.5.3_A3_T2.1.js
+language/expressions/modulus/S11.5.3_A3_T2.2.js
+language/expressions/modulus/S11.5.3_A3_T2.3.js
+language/expressions/modulus/S11.5.3_A3_T2.4.js
+language/expressions/modulus/S11.5.3_A3_T2.5.js
+language/expressions/modulus/S11.5.3_A3_T2.6.js
+language/expressions/modulus/S11.5.3_A3_T2.7.js
+language/expressions/modulus/S11.5.3_A3_T2.8.js
+language/expressions/modulus/S11.5.3_A3_T2.9.js
+language/expressions/modulus/S11.5.3_A4_T1.1.js
+language/expressions/modulus/S11.5.3_A4_T1.2.js
+language/expressions/modulus/S11.5.3_A4_T2.js
+language/expressions/modulus/S11.5.3_A4_T3.js
+language/expressions/modulus/S11.5.3_A4_T4.js
+language/expressions/modulus/S11.5.3_A4_T5.js
+language/expressions/modulus/S11.5.3_A4_T6.js
+language/expressions/modulus/S11.5.3_A4_T7.js
+language/expressions/multiplication/S11.5.1_A1.js
+language/expressions/multiplication/S11.5.1_A2.1_T1.js
+language/expressions/multiplication/S11.5.1_A2.1_T2.js
+language/expressions/multiplication/S11.5.1_A2.1_T3.js
+language/expressions/multiplication/S11.5.1_A2.2_T1.js
+language/expressions/multiplication/S11.5.1_A2.3_T1.js
+language/expressions/multiplication/S11.5.1_A2.4_T1.js
+language/expressions/multiplication/S11.5.1_A2.4_T2.js
+language/expressions/multiplication/S11.5.1_A2.4_T3.js
+language/expressions/multiplication/S11.5.1_A2.4_T4.js
+language/expressions/multiplication/S11.5.1_A3_T1.1.js
+language/expressions/multiplication/S11.5.1_A3_T1.2.js
+language/expressions/multiplication/S11.5.1_A3_T1.3.js
+language/expressions/multiplication/S11.5.1_A3_T1.4.js
+language/expressions/multiplication/S11.5.1_A3_T1.5.js
+language/expressions/multiplication/S11.5.1_A3_T2.1.js
+language/expressions/multiplication/S11.5.1_A3_T2.2.js
+language/expressions/multiplication/S11.5.1_A3_T2.3.js
+language/expressions/multiplication/S11.5.1_A3_T2.4.js
+language/expressions/multiplication/S11.5.1_A3_T2.5.js
+language/expressions/multiplication/S11.5.1_A3_T2.6.js
+language/expressions/multiplication/S11.5.1_A3_T2.7.js
+language/expressions/multiplication/S11.5.1_A3_T2.8.js
+language/expressions/multiplication/S11.5.1_A3_T2.9.js
+language/expressions/multiplication/S11.5.1_A4_T1.1.js
+language/expressions/multiplication/S11.5.1_A4_T1.2.js
+language/expressions/multiplication/S11.5.1_A4_T2.js
+language/expressions/multiplication/S11.5.1_A4_T3.js
+language/expressions/multiplication/S11.5.1_A4_T4.js
+language/expressions/multiplication/S11.5.1_A4_T5.js
+language/expressions/multiplication/S11.5.1_A4_T6.js
+language/expressions/multiplication/S11.5.1_A4_T7.js
+language/expressions/multiplication/S11.5.1_A4_T8.js
+language/expressions/new/S11.2.2_A1.1.js
+language/expressions/new/S11.2.2_A1.2.js
+language/expressions/new/S11.2.2_A2.js
+language/expressions/new/S11.2.2_A3_T1.js
+language/expressions/new/S11.2.2_A3_T2.js
+language/expressions/new/S11.2.2_A3_T3.js
+language/expressions/new/S11.2.2_A3_T4.js
+language/expressions/new/S11.2.2_A3_T5.js
+language/expressions/new/S11.2.2_A4_T1.js
+language/expressions/new/S11.2.2_A4_T2.js
+language/expressions/new/S11.2.2_A4_T3.js
+language/expressions/new/S11.2.2_A4_T4.js
+language/expressions/new/S11.2.2_A4_T5.js
+language/expressions/object/11.1.5_3-3-1.js
+language/expressions/object/11.1.5_4-4-a-3.js
+language/expressions/object/11.1.5_4-4-b-1.js
+language/expressions/object/11.1.5_4-5-1.js
+language/expressions/object/11.1.5_5-4-1.js
+language/expressions/object/11.1.5_6-3-1.js
+language/expressions/object/11.1.5_6-3-2.js
+language/expressions/object/11.1.5_7-3-1.js
+language/expressions/object/11.1.5_7-3-2.js
+language/expressions/object/11.1.5-0-1.js
+language/expressions/object/11.1.5-0-2.js
+language/expressions/object/11.1.5-1gs.js
+language/expressions/object/11.1.5-2gs.js
+language/expressions/object/getter-body-strict-inside.js
+language/expressions/object/getter-body-strict-outside.js
+language/expressions/object/prop-dup-data-data.js
+language/expressions/object/prop-dup-data-set.js
+language/expressions/object/prop-dup-get-data.js
+language/expressions/object/prop-dup-get-get.js
+language/expressions/object/prop-dup-get-set-get.js
+language/expressions/object/prop-dup-set-data.js
+language/expressions/object/prop-dup-set-get-set.js
+language/expressions/object/prop-dup-set-set.js
+language/expressions/object/S11.1.5_A1.1.js
+language/expressions/object/S11.1.5_A1.2.js
+language/expressions/object/S11.1.5_A1.3.js
+language/expressions/object/S11.1.5_A1.4.js
+language/expressions/object/S11.1.5_A2.js
+language/expressions/object/S11.1.5_A3.js
+language/expressions/object/S11.1.5_A4.1.js
+language/expressions/object/S11.1.5_A4.2.js
+language/expressions/object/S11.1.5_A4.3.js
+language/expressions/object/setter-body-strict-inside.js
+language/expressions/object/setter-body-strict-outside.js
+language/expressions/object/setter-param-arguments-strict-inside.js
+language/expressions/object/setter-param-arguments-strict-outside.js
+language/expressions/object/setter-param-eval-strict-inside.js
+language/expressions/object/setter-param-eval-strict-outside.js
+language/expressions/postfix-decrement/11.3.2-2-3-s.js
+language/expressions/postfix-decrement/line-terminator-carriage-return.js
+language/expressions/postfix-decrement/line-terminator-line-feed.js
+language/expressions/postfix-decrement/line-terminator-line-separator.js
+language/expressions/postfix-decrement/line-terminator-paragraph-separator.js
+language/expressions/postfix-decrement/S11.3.2_A2.1_T1.js
+language/expressions/postfix-decrement/S11.3.2_A2.1_T2.js
+language/expressions/postfix-decrement/S11.3.2_A2.2_T1.js
+language/expressions/postfix-decrement/S11.3.2_A3_T1.js
+language/expressions/postfix-decrement/S11.3.2_A3_T2.js
+language/expressions/postfix-decrement/S11.3.2_A3_T3.js
+language/expressions/postfix-decrement/S11.3.2_A3_T4.js
+language/expressions/postfix-decrement/S11.3.2_A3_T5.js
+language/expressions/postfix-decrement/S11.3.2_A4_T1.js
+language/expressions/postfix-decrement/S11.3.2_A4_T2.js
+language/expressions/postfix-decrement/S11.3.2_A4_T3.js
+language/expressions/postfix-decrement/S11.3.2_A4_T4.js
+language/expressions/postfix-decrement/S11.3.2_A4_T5.js
+language/expressions/postfix-decrement/S11.3.2_A5_T1.js
+language/expressions/postfix-decrement/S11.3.2_A5_T2.js
+language/expressions/postfix-decrement/S11.3.2_A5_T3.js
+language/expressions/postfix-decrement/target-cover-id.js
+language/expressions/postfix-decrement/whitespace.js
+language/expressions/postfix-increment/11.3.1-2-1gs.js
+language/expressions/postfix-increment/11.3.1-2-3.js
+language/expressions/postfix-increment/line-terminator-carriage-return.js
+language/expressions/postfix-increment/line-terminator-line-feed.js
+language/expressions/postfix-increment/line-terminator-line-separator.js
+language/expressions/postfix-increment/line-terminator-paragraph-separator.js
+language/expressions/postfix-increment/S11.3.1_A2.1_T1.js
+language/expressions/postfix-increment/S11.3.1_A2.1_T2.js
+language/expressions/postfix-increment/S11.3.1_A2.2_T1.js
+language/expressions/postfix-increment/S11.3.1_A3_T1.js
+language/expressions/postfix-increment/S11.3.1_A3_T2.js
+language/expressions/postfix-increment/S11.3.1_A3_T3.js
+language/expressions/postfix-increment/S11.3.1_A3_T4.js
+language/expressions/postfix-increment/S11.3.1_A3_T5.js
+language/expressions/postfix-increment/S11.3.1_A4_T1.js
+language/expressions/postfix-increment/S11.3.1_A4_T2.js
+language/expressions/postfix-increment/S11.3.1_A4_T3.js
+language/expressions/postfix-increment/S11.3.1_A4_T4.js
+language/expressions/postfix-increment/S11.3.1_A4_T5.js
+language/expressions/postfix-increment/S11.3.1_A5_T1.js
+language/expressions/postfix-increment/S11.3.1_A5_T2.js
+language/expressions/postfix-increment/S11.3.1_A5_T3.js
+language/expressions/postfix-increment/target-cover-id.js
+language/expressions/postfix-increment/whitespace.js
+language/expressions/prefix-decrement/11.4.5-2-2gs.js
+language/expressions/prefix-decrement/11.4.5-2-3-s.js
+language/expressions/prefix-decrement/S11.4.5_A2.1_T1.js
+language/expressions/prefix-decrement/S11.4.5_A2.1_T2.js
+language/expressions/prefix-decrement/S11.4.5_A2.2_T1.js
+language/expressions/prefix-decrement/S11.4.5_A3_T1.js
+language/expressions/prefix-decrement/S11.4.5_A3_T2.js
+language/expressions/prefix-decrement/S11.4.5_A3_T3.js
+language/expressions/prefix-decrement/S11.4.5_A3_T4.js
+language/expressions/prefix-decrement/S11.4.5_A3_T5.js
+language/expressions/prefix-decrement/S11.4.5_A4_T1.js
+language/expressions/prefix-decrement/S11.4.5_A4_T2.js
+language/expressions/prefix-decrement/S11.4.5_A4_T3.js
+language/expressions/prefix-decrement/S11.4.5_A4_T4.js
+language/expressions/prefix-decrement/S11.4.5_A4_T5.js
+language/expressions/prefix-decrement/S11.4.5_A5_T1.js
+language/expressions/prefix-decrement/S11.4.5_A5_T2.js
+language/expressions/prefix-decrement/S11.4.5_A5_T3.js
+language/expressions/prefix-decrement/target-cover-id.js
+language/expressions/prefix-decrement/whitespace.js
+language/expressions/prefix-increment/11.4.4-2-3-s.js
+language/expressions/prefix-increment/S11.4.4_A2.1_T1.js
+language/expressions/prefix-increment/S11.4.4_A2.1_T2.js
+language/expressions/prefix-increment/S11.4.4_A2.2_T1.js
+language/expressions/prefix-increment/S11.4.4_A3_T1.js
+language/expressions/prefix-increment/S11.4.4_A3_T2.js
+language/expressions/prefix-increment/S11.4.4_A3_T3.js
+language/expressions/prefix-increment/S11.4.4_A3_T4.js
+language/expressions/prefix-increment/S11.4.4_A3_T5.js
+language/expressions/prefix-increment/S11.4.4_A4_T1.js
+language/expressions/prefix-increment/S11.4.4_A4_T2.js
+language/expressions/prefix-increment/S11.4.4_A4_T3.js
+language/expressions/prefix-increment/S11.4.4_A4_T4.js
+language/expressions/prefix-increment/S11.4.4_A4_T5.js
+language/expressions/prefix-increment/S11.4.4_A5_T1.js
+language/expressions/prefix-increment/S11.4.4_A5_T2.js
+language/expressions/prefix-increment/S11.4.4_A5_T3.js
+language/expressions/prefix-increment/target-cover-id.js
+language/expressions/prefix-increment/whitespace.js
+language/expressions/property-accessors/S11.2.1_A1.1.js
+language/expressions/property-accessors/S11.2.1_A1.2.js
+language/expressions/property-accessors/S11.2.1_A2.js
+language/expressions/property-accessors/S11.2.1_A3_T1.js
+language/expressions/property-accessors/S11.2.1_A3_T2.js
+language/expressions/property-accessors/S11.2.1_A3_T3.js
+language/expressions/property-accessors/S11.2.1_A3_T4.js
+language/expressions/property-accessors/S11.2.1_A3_T5.js
+language/expressions/property-accessors/S11.2.1_A4_T1.js
+language/expressions/property-accessors/S11.2.1_A4_T2.js
+language/expressions/property-accessors/S11.2.1_A4_T3.js
+language/expressions/property-accessors/S11.2.1_A4_T4.js
+language/expressions/property-accessors/S11.2.1_A4_T5.js
+language/expressions/property-accessors/S11.2.1_A4_T6.js
+language/expressions/property-accessors/S11.2.1_A4_T7.js
+language/expressions/property-accessors/S11.2.1_A4_T8.js
+language/expressions/property-accessors/S11.2.1_A4_T9.js
+language/expressions/property-accessors/S8.12.3_A1.js
+language/expressions/property-accessors/S8.12.3_A2.js
+language/expressions/property-accessors/S8.12.3_A3.js
+language/expressions/relational/S9.1_A1_T4.js
+language/expressions/right-shift/S11.7.2_A1.js
+language/expressions/right-shift/S11.7.2_A2.1_T1.js
+language/expressions/right-shift/S11.7.2_A2.1_T2.js
+language/expressions/right-shift/S11.7.2_A2.1_T3.js
+language/expressions/right-shift/S11.7.2_A2.2_T1.js
+language/expressions/right-shift/S11.7.2_A2.3_T1.js
+language/expressions/right-shift/S11.7.2_A2.4_T1.js
+language/expressions/right-shift/S11.7.2_A2.4_T2.js
+language/expressions/right-shift/S11.7.2_A2.4_T3.js
+language/expressions/right-shift/S11.7.2_A2.4_T4.js
+language/expressions/right-shift/S11.7.2_A3_T1.1.js
+language/expressions/right-shift/S11.7.2_A3_T1.2.js
+language/expressions/right-shift/S11.7.2_A3_T1.3.js
+language/expressions/right-shift/S11.7.2_A3_T1.4.js
+language/expressions/right-shift/S11.7.2_A3_T1.5.js
+language/expressions/right-shift/S11.7.2_A3_T2.1.js
+language/expressions/right-shift/S11.7.2_A3_T2.2.js
+language/expressions/right-shift/S11.7.2_A3_T2.3.js
+language/expressions/right-shift/S11.7.2_A3_T2.4.js
+language/expressions/right-shift/S11.7.2_A3_T2.5.js
+language/expressions/right-shift/S11.7.2_A3_T2.6.js
+language/expressions/right-shift/S11.7.2_A3_T2.7.js
+language/expressions/right-shift/S11.7.2_A3_T2.8.js
+language/expressions/right-shift/S11.7.2_A3_T2.9.js
+language/expressions/right-shift/S11.7.2_A4_T1.js
+language/expressions/right-shift/S11.7.2_A4_T2.js
+language/expressions/right-shift/S11.7.2_A4_T3.js
+language/expressions/right-shift/S11.7.2_A4_T4.js
+language/expressions/right-shift/S11.7.2_A5.1_T1.js
+language/expressions/right-shift/S11.7.2_A5.2_T1.js
+language/expressions/strict-does-not-equals/S11.9.5_A1.js
+language/expressions/strict-does-not-equals/S11.9.5_A2.1_T1.js
+language/expressions/strict-does-not-equals/S11.9.5_A2.1_T2.js
+language/expressions/strict-does-not-equals/S11.9.5_A2.1_T3.js
+language/expressions/strict-does-not-equals/S11.9.5_A2.4_T1.js
+language/expressions/strict-does-not-equals/S11.9.5_A2.4_T2.js
+language/expressions/strict-does-not-equals/S11.9.5_A2.4_T3.js
+language/expressions/strict-does-not-equals/S11.9.5_A2.4_T4.js
+language/expressions/strict-does-not-equals/S11.9.5_A3.js
+language/expressions/strict-does-not-equals/S11.9.5_A4.1_T1.js
+language/expressions/strict-does-not-equals/S11.9.5_A4.1_T2.js
+language/expressions/strict-does-not-equals/S11.9.5_A4.2.js
+language/expressions/strict-does-not-equals/S11.9.5_A4.3.js
+language/expressions/strict-does-not-equals/S11.9.5_A5.js
+language/expressions/strict-does-not-equals/S11.9.5_A6.1.js
+language/expressions/strict-does-not-equals/S11.9.5_A6.2.js
+language/expressions/strict-does-not-equals/S11.9.5_A7.js
+language/expressions/strict-does-not-equals/S11.9.5_A8_T1.js
+language/expressions/strict-does-not-equals/S11.9.5_A8_T2.js
+language/expressions/strict-does-not-equals/S11.9.5_A8_T3.js
+language/expressions/strict-does-not-equals/S11.9.5_A8_T4.js
+language/expressions/strict-does-not-equals/S11.9.5_A8_T5.js
+language/expressions/strict-equals/S11.9.4_A1.js
+language/expressions/strict-equals/S11.9.4_A2.1_T1.js
+language/expressions/strict-equals/S11.9.4_A2.1_T2.js
+language/expressions/strict-equals/S11.9.4_A2.1_T3.js
+language/expressions/strict-equals/S11.9.4_A2.4_T1.js
+language/expressions/strict-equals/S11.9.4_A2.4_T2.js
+language/expressions/strict-equals/S11.9.4_A2.4_T3.js
+language/expressions/strict-equals/S11.9.4_A2.4_T4.js
+language/expressions/strict-equals/S11.9.4_A3.js
+language/expressions/strict-equals/S11.9.4_A4.1_T1.js
+language/expressions/strict-equals/S11.9.4_A4.1_T2.js
+language/expressions/strict-equals/S11.9.4_A4.2.js
+language/expressions/strict-equals/S11.9.4_A4.3.js
+language/expressions/strict-equals/S11.9.4_A5.js
+language/expressions/strict-equals/S11.9.4_A6.1.js
+language/expressions/strict-equals/S11.9.4_A6.2.js
+language/expressions/strict-equals/S11.9.4_A7.js
+language/expressions/strict-equals/S11.9.4_A8_T1.js
+language/expressions/strict-equals/S11.9.4_A8_T2.js
+language/expressions/strict-equals/S11.9.4_A8_T3.js
+language/expressions/strict-equals/S11.9.4_A8_T4.js
+language/expressions/strict-equals/S11.9.4_A8_T5.js
+language/expressions/subtraction/S11.6.2_A1.js
+language/expressions/subtraction/S11.6.2_A2.1_T1.js
+language/expressions/subtraction/S11.6.2_A2.1_T2.js
+language/expressions/subtraction/S11.6.2_A2.1_T3.js
+language/expressions/subtraction/S11.6.2_A2.2_T1.js
+language/expressions/subtraction/S11.6.2_A2.3_T1.js
+language/expressions/subtraction/S11.6.2_A2.4_T1.js
+language/expressions/subtraction/S11.6.2_A2.4_T2.js
+language/expressions/subtraction/S11.6.2_A2.4_T3.js
+language/expressions/subtraction/S11.6.2_A2.4_T4.js
+language/expressions/subtraction/S11.6.2_A3_T1.1.js
+language/expressions/subtraction/S11.6.2_A3_T1.2.js
+language/expressions/subtraction/S11.6.2_A3_T1.3.js
+language/expressions/subtraction/S11.6.2_A3_T1.4.js
+language/expressions/subtraction/S11.6.2_A3_T1.5.js
+language/expressions/subtraction/S11.6.2_A3_T2.1.js
+language/expressions/subtraction/S11.6.2_A3_T2.2.js
+language/expressions/subtraction/S11.6.2_A3_T2.3.js
+language/expressions/subtraction/S11.6.2_A3_T2.4.js
+language/expressions/subtraction/S11.6.2_A3_T2.5.js
+language/expressions/subtraction/S11.6.2_A3_T2.6.js
+language/expressions/subtraction/S11.6.2_A3_T2.7.js
+language/expressions/subtraction/S11.6.2_A3_T2.8.js
+language/expressions/subtraction/S11.6.2_A3_T2.9.js
+language/expressions/subtraction/S11.6.2_A4_T1.js
+language/expressions/subtraction/S11.6.2_A4_T2.js
+language/expressions/subtraction/S11.6.2_A4_T3.js
+language/expressions/subtraction/S11.6.2_A4_T4.js
+language/expressions/subtraction/S11.6.2_A4_T5.js
+language/expressions/subtraction/S11.6.2_A4_T6.js
+language/expressions/subtraction/S11.6.2_A4_T7.js
+language/expressions/subtraction/S11.6.2_A4_T8.js
+language/expressions/this/11.1.1-1.js
+language/expressions/this/S11.1.1_A1.js
+language/expressions/this/S11.1.1_A3.1.js
+language/expressions/this/S11.1.1_A3.2.js
+language/expressions/this/S11.1.1_A4.1.js
+language/expressions/this/S11.1.1_A4.2.js
+language/expressions/typeof/syntax.js
+language/expressions/unary-minus/11.4.7-4-1.js
+language/expressions/unary-minus/S11.4.7_A1.js
+language/expressions/unary-minus/S11.4.7_A2.1_T1.js
+language/expressions/unary-minus/S11.4.7_A2.1_T2.js
+language/expressions/unary-minus/S11.4.7_A2.2_T1.js
+language/expressions/unary-minus/S11.4.7_A3_T1.js
+language/expressions/unary-minus/S11.4.7_A3_T2.js
+language/expressions/unary-minus/S11.4.7_A3_T3.js
+language/expressions/unary-minus/S11.4.7_A3_T4.js
+language/expressions/unary-minus/S11.4.7_A3_T5.js
+language/expressions/unary-minus/S11.4.7_A4.1.js
+language/expressions/unary-minus/S11.4.7_A4.2.js
+language/expressions/unary-plus/11.4.6-2-1.js
+language/expressions/unary-plus/S11.4.6_A1.js
+language/expressions/unary-plus/S11.4.6_A2.1_T1.js
+language/expressions/unary-plus/S11.4.6_A2.1_T2.js
+language/expressions/unary-plus/S11.4.6_A2.2_T1.js
+language/expressions/unary-plus/S11.4.6_A3_T1.js
+language/expressions/unary-plus/S11.4.6_A3_T2.js
+language/expressions/unary-plus/S11.4.6_A3_T3.js
+language/expressions/unary-plus/S11.4.6_A3_T4.js
+language/expressions/unary-plus/S11.4.6_A3_T5.js
+language/expressions/unary-plus/S9.3_A1_T2.js
+language/expressions/unary-plus/S9.3_A2_T2.js
+language/expressions/unary-plus/S9.3_A3_T2.js
+language/expressions/unary-plus/S9.3_A4.1_T2.js
+language/expressions/unary-plus/S9.3_A4.2_T2.js
+language/expressions/unary-plus/S9.3_A5_T2.js
+language/expressions/unsigned-right-shift/S11.7.3_A1.js
+language/expressions/unsigned-right-shift/S11.7.3_A2.1_T1.js
+language/expressions/unsigned-right-shift/S11.7.3_A2.1_T2.js
+language/expressions/unsigned-right-shift/S11.7.3_A2.1_T3.js
+language/expressions/unsigned-right-shift/S11.7.3_A2.2_T1.js
+language/expressions/unsigned-right-shift/S11.7.3_A2.3_T1.js
+language/expressions/unsigned-right-shift/S11.7.3_A2.4_T1.js
+language/expressions/unsigned-right-shift/S11.7.3_A2.4_T2.js
+language/expressions/unsigned-right-shift/S11.7.3_A2.4_T3.js
+language/expressions/unsigned-right-shift/S11.7.3_A2.4_T4.js
+language/expressions/unsigned-right-shift/S11.7.3_A3_T1.1.js
+language/expressions/unsigned-right-shift/S11.7.3_A3_T1.2.js
+language/expressions/unsigned-right-shift/S11.7.3_A3_T1.3.js
+language/expressions/unsigned-right-shift/S11.7.3_A3_T1.4.js
+language/expressions/unsigned-right-shift/S11.7.3_A3_T1.5.js
+language/expressions/unsigned-right-shift/S11.7.3_A3_T2.1.js
+language/expressions/unsigned-right-shift/S11.7.3_A3_T2.2.js
+language/expressions/unsigned-right-shift/S11.7.3_A3_T2.3.js
+language/expressions/unsigned-right-shift/S11.7.3_A3_T2.4.js
+language/expressions/unsigned-right-shift/S11.7.3_A3_T2.5.js
+language/expressions/unsigned-right-shift/S11.7.3_A3_T2.6.js
+language/expressions/unsigned-right-shift/S11.7.3_A3_T2.7.js
+language/expressions/unsigned-right-shift/S11.7.3_A3_T2.8.js
+language/expressions/unsigned-right-shift/S11.7.3_A3_T2.9.js
+language/expressions/unsigned-right-shift/S11.7.3_A4_T1.js
+language/expressions/unsigned-right-shift/S11.7.3_A4_T2.js
+language/expressions/unsigned-right-shift/S11.7.3_A4_T3.js
+language/expressions/unsigned-right-shift/S11.7.3_A4_T4.js
+language/expressions/unsigned-right-shift/S11.7.3_A5.1_T1.js
+language/expressions/unsigned-right-shift/S11.7.3_A5.2_T1.js
+language/expressions/unsigned-right-shift/S9.6_A1.js
+language/expressions/unsigned-right-shift/S9.6_A2.1.js
+language/expressions/unsigned-right-shift/S9.6_A2.2.js
+language/expressions/unsigned-right-shift/S9.6_A3.1_T1.js
+language/expressions/unsigned-right-shift/S9.6_A3.1_T2.js
+language/expressions/unsigned-right-shift/S9.6_A3.1_T3.js
+language/expressions/unsigned-right-shift/S9.6_A3.1_T4.js
+language/expressions/unsigned-right-shift/S9.6_A3.2_T1.js
+language/expressions/void/S11.4.2_A1.js
+language/expressions/void/S11.4.2_A2_T1.js
+language/expressions/void/S11.4.2_A2_T2.js
+language/expressions/void/S11.4.2_A4_T1.js
+language/expressions/void/S11.4.2_A4_T2.js
+language/expressions/void/S11.4.2_A4_T3.js
+language/expressions/void/S11.4.2_A4_T4.js
+language/expressions/void/S11.4.2_A4_T5.js
+language/expressions/void/S11.4.2_A4_T6.js
+language/function-code/10.4.3-1-100gs.js
+language/function-code/10.4.3-1-100-s.js
+language/function-code/10.4.3-1-101gs.js
+language/function-code/10.4.3-1-101-s.js
+language/function-code/10.4.3-1-102gs.js
+language/function-code/10.4.3-1-102-s.js
+language/function-code/10.4.3-1-103.js
+language/function-code/10.4.3-1-104.js
+language/function-code/10.4.3-1-105.js
+language/function-code/10.4.3-1-106.js
+language/function-code/10.4.3-1-10gs.js
+language/function-code/10.4.3-1-10-s.js
+language/function-code/10.4.3-1-11gs.js
+language/function-code/10.4.3-1-11-s.js
+language/function-code/10.4.3-1-12gs.js
+language/function-code/10.4.3-1-12-s.js
+language/function-code/10.4.3-1-13gs.js
+language/function-code/10.4.3-1-13-s.js
+language/function-code/10.4.3-1-14gs.js
+language/function-code/10.4.3-1-14-s.js
+language/function-code/10.4.3-1-15gs.js
+language/function-code/10.4.3-1-15-s.js
+language/function-code/10.4.3-1-16gs.js
+language/function-code/10.4.3-1-16-s.js
+language/function-code/10.4.3-1-17gs.js
+language/function-code/10.4.3-1-17-s.js
+language/function-code/10.4.3-1-18gs.js
+language/function-code/10.4.3-1-19gs.js
+language/function-code/10.4.3-1-19-s.js
+language/function-code/10.4.3-1-1-s.js
+language/function-code/10.4.3-1-20gs.js
+language/function-code/10.4.3-1-20-s.js
+language/function-code/10.4.3-1-21gs.js
+language/function-code/10.4.3-1-21-s.js
+language/function-code/10.4.3-1-22gs.js
+language/function-code/10.4.3-1-22-s.js
+language/function-code/10.4.3-1-23gs.js
+language/function-code/10.4.3-1-23-s.js
+language/function-code/10.4.3-1-24gs.js
+language/function-code/10.4.3-1-24-s.js
+language/function-code/10.4.3-1-25gs.js
+language/function-code/10.4.3-1-25-s.js
+language/function-code/10.4.3-1-26gs.js
+language/function-code/10.4.3-1-26-s.js
+language/function-code/10.4.3-1-27gs.js
+language/function-code/10.4.3-1-27-s.js
+language/function-code/10.4.3-1-28gs.js
+language/function-code/10.4.3-1-28-s.js
+language/function-code/10.4.3-1-29gs.js
+language/function-code/10.4.3-1-29-s.js
+language/function-code/10.4.3-1-2-s.js
+language/function-code/10.4.3-1-30gs.js
+language/function-code/10.4.3-1-30-s.js
+language/function-code/10.4.3-1-31gs.js
+language/function-code/10.4.3-1-31-s.js
+language/function-code/10.4.3-1-32gs.js
+language/function-code/10.4.3-1-32-s.js
+language/function-code/10.4.3-1-33gs.js
+language/function-code/10.4.3-1-33-s.js
+language/function-code/10.4.3-1-34gs.js
+language/function-code/10.4.3-1-34-s.js
+language/function-code/10.4.3-1-35gs.js
+language/function-code/10.4.3-1-35-s.js
+language/function-code/10.4.3-1-36gs.js
+language/function-code/10.4.3-1-36-s.js
+language/function-code/10.4.3-1-37gs.js
+language/function-code/10.4.3-1-37-s.js
+language/function-code/10.4.3-1-38gs.js
+language/function-code/10.4.3-1-38-s.js
+language/function-code/10.4.3-1-39gs.js
+language/function-code/10.4.3-1-39-s.js
+language/function-code/10.4.3-1-3-s.js
+language/function-code/10.4.3-1-40gs.js
+language/function-code/10.4.3-1-40-s.js
+language/function-code/10.4.3-1-41gs.js
+language/function-code/10.4.3-1-41-s.js
+language/function-code/10.4.3-1-42gs.js
+language/function-code/10.4.3-1-42-s.js
+language/function-code/10.4.3-1-43gs.js
+language/function-code/10.4.3-1-43-s.js
+language/function-code/10.4.3-1-44gs.js
+language/function-code/10.4.3-1-44-s.js
+language/function-code/10.4.3-1-45gs.js
+language/function-code/10.4.3-1-45-s.js
+language/function-code/10.4.3-1-46gs.js
+language/function-code/10.4.3-1-46-s.js
+language/function-code/10.4.3-1-47gs.js
+language/function-code/10.4.3-1-47-s.js
+language/function-code/10.4.3-1-48gs.js
+language/function-code/10.4.3-1-48-s.js
+language/function-code/10.4.3-1-49gs.js
+language/function-code/10.4.3-1-49-s.js
+language/function-code/10.4.3-1-4-s.js
+language/function-code/10.4.3-1-50gs.js
+language/function-code/10.4.3-1-50-s.js
+language/function-code/10.4.3-1-51gs.js
+language/function-code/10.4.3-1-51-s.js
+language/function-code/10.4.3-1-52gs.js
+language/function-code/10.4.3-1-52-s.js
+language/function-code/10.4.3-1-53gs.js
+language/function-code/10.4.3-1-53-s.js
+language/function-code/10.4.3-1-54gs.js
+language/function-code/10.4.3-1-54-s.js
+language/function-code/10.4.3-1-55gs.js
+language/function-code/10.4.3-1-55-s.js
+language/function-code/10.4.3-1-56gs.js
+language/function-code/10.4.3-1-56-s.js
+language/function-code/10.4.3-1-57gs.js
+language/function-code/10.4.3-1-57-s.js
+language/function-code/10.4.3-1-58gs.js
+language/function-code/10.4.3-1-58-s.js
+language/function-code/10.4.3-1-59gs.js
+language/function-code/10.4.3-1-59-s.js
+language/function-code/10.4.3-1-5-s.js
+language/function-code/10.4.3-1-60gs.js
+language/function-code/10.4.3-1-60-s.js
+language/function-code/10.4.3-1-61gs.js
+language/function-code/10.4.3-1-61-s.js
+language/function-code/10.4.3-1-62gs.js
+language/function-code/10.4.3-1-62-s.js
+language/function-code/10.4.3-1-63gs.js
+language/function-code/10.4.3-1-63-s.js
+language/function-code/10.4.3-1-64gs.js
+language/function-code/10.4.3-1-64-s.js
+language/function-code/10.4.3-1-65gs.js
+language/function-code/10.4.3-1-65-s.js
+language/function-code/10.4.3-1-66gs.js
+language/function-code/10.4.3-1-66-s.js
+language/function-code/10.4.3-1-67gs.js
+language/function-code/10.4.3-1-67-s.js
+language/function-code/10.4.3-1-68gs.js
+language/function-code/10.4.3-1-68-s.js
+language/function-code/10.4.3-1-69gs.js
+language/function-code/10.4.3-1-69-s.js
+language/function-code/10.4.3-1-70gs.js
+language/function-code/10.4.3-1-70-s.js
+language/function-code/10.4.3-1-71gs.js
+language/function-code/10.4.3-1-71-s.js
+language/function-code/10.4.3-1-72gs.js
+language/function-code/10.4.3-1-72-s.js
+language/function-code/10.4.3-1-73gs.js
+language/function-code/10.4.3-1-73-s.js
+language/function-code/10.4.3-1-74gs.js
+language/function-code/10.4.3-1-74-s.js
+language/function-code/10.4.3-1-75gs.js
+language/function-code/10.4.3-1-75-s.js
+language/function-code/10.4.3-1-76gs.js
+language/function-code/10.4.3-1-76-s.js
+language/function-code/10.4.3-1-77gs.js
+language/function-code/10.4.3-1-77-s.js
+language/function-code/10.4.3-1-78gs.js
+language/function-code/10.4.3-1-78-s.js
+language/function-code/10.4.3-1-79gs.js
+language/function-code/10.4.3-1-79-s.js
+language/function-code/10.4.3-1-7gs.js
+language/function-code/10.4.3-1-7-s.js
+language/function-code/10.4.3-1-80gs.js
+language/function-code/10.4.3-1-80-s.js
+language/function-code/10.4.3-1-81gs.js
+language/function-code/10.4.3-1-81-s.js
+language/function-code/10.4.3-1-82gs.js
+language/function-code/10.4.3-1-82-s.js
+language/function-code/10.4.3-1-83gs.js
+language/function-code/10.4.3-1-83-s.js
+language/function-code/10.4.3-1-84gs.js
+language/function-code/10.4.3-1-84-s.js
+language/function-code/10.4.3-1-85gs.js
+language/function-code/10.4.3-1-85-s.js
+language/function-code/10.4.3-1-86gs.js
+language/function-code/10.4.3-1-86-s.js
+language/function-code/10.4.3-1-87gs.js
+language/function-code/10.4.3-1-87-s.js
+language/function-code/10.4.3-1-88gs.js
+language/function-code/10.4.3-1-88-s.js
+language/function-code/10.4.3-1-89gs.js
+language/function-code/10.4.3-1-89-s.js
+language/function-code/10.4.3-1-8gs.js
+language/function-code/10.4.3-1-8-s.js
+language/function-code/10.4.3-1-90gs.js
+language/function-code/10.4.3-1-90-s.js
+language/function-code/10.4.3-1-91gs.js
+language/function-code/10.4.3-1-91-s.js
+language/function-code/10.4.3-1-92gs.js
+language/function-code/10.4.3-1-92-s.js
+language/function-code/10.4.3-1-93gs.js
+language/function-code/10.4.3-1-93-s.js
+language/function-code/10.4.3-1-94gs.js
+language/function-code/10.4.3-1-94-s.js
+language/function-code/10.4.3-1-95gs.js
+language/function-code/10.4.3-1-95-s.js
+language/function-code/10.4.3-1-96gs.js
+language/function-code/10.4.3-1-96-s.js
+language/function-code/10.4.3-1-97gs.js
+language/function-code/10.4.3-1-97-s.js
+language/function-code/10.4.3-1-98gs.js
+language/function-code/10.4.3-1-98-s.js
+language/function-code/10.4.3-1-99gs.js
+language/function-code/10.4.3-1-99-s.js
+language/function-code/10.4.3-1-9gs.js
+language/function-code/10.4.3-1-9-s.js
+language/function-code/S10.1.6_A1_T1.js
+language/function-code/S10.2.1_A1.js
+language/function-code/S10.2.1_A2.js
+language/function-code/S10.2.1_A3.js
+language/function-code/S10.2.1_A4_T1.js
+language/function-code/S10.2.1_A4_T2.js
+language/function-code/S10.2.1_A5.1_T1.js
+language/function-code/S10.2.1_A5.1_T2.js
+language/function-code/S10.2.1_A5.2_T1.js
+language/function-code/S10.4.3_A1.js
+language/function-code/S10.4_A1.1_T1.js
+language/function-code/S10.4A1.1_T2.js
+language/future-reserved-words/_implements.js
+language/future-reserved-words/abstract.js
+language/future-reserved-words/boolean.js
+language/future-reserved-words/byte.js
+language/future-reserved-words/char.js
+language/future-reserved-words/class.js
+language/future-reserved-words/const.js
+language/future-reserved-words/debugger.js
+language/future-reserved-words/double.js
+language/future-reserved-words/enum.js
+language/future-reserved-words/export.js
+language/future-reserved-words/extends.js
+language/future-reserved-words/final.js
+language/future-reserved-words/float.js
+language/future-reserved-words/goto.js
+language/future-reserved-words/implement.js
+language/future-reserved-words/implements.js
+language/future-reserved-words/implements0.js
+language/future-reserved-words/implementss.js
+language/future-reserved-words/implements-strict.js
+language/future-reserved-words/implements-strict-escaped.js
+language/future-reserved-words/implements-titlecase.js
+language/future-reserved-words/implements-uppercase.js
+language/future-reserved-words/import.js
+language/future-reserved-words/int.js
+language/future-reserved-words/interface.js
+language/future-reserved-words/interface-strict.js
+language/future-reserved-words/interface-strict-escaped.js
+language/future-reserved-words/let-strict.js
+language/future-reserved-words/let-strict-escaped.js
+language/future-reserved-words/long.js
+language/future-reserved-words/native.js
+language/future-reserved-words/package.js
+language/future-reserved-words/package-strict.js
+language/future-reserved-words/package-strict-escaped.js
+language/future-reserved-words/private.js
+language/future-reserved-words/private-strict.js
+language/future-reserved-words/private-strict-escaped.js
+language/future-reserved-words/protected.js
+language/future-reserved-words/protected-strict.js
+language/future-reserved-words/protected-strict-escaped.js
+language/future-reserved-words/public.js
+language/future-reserved-words/public-strict.js
+language/future-reserved-words/public-strict-escaped.js
+language/future-reserved-words/short.js
+language/future-reserved-words/static.js
+language/future-reserved-words/static-strict.js
+language/future-reserved-words/static-strict-escaped.js
+language/future-reserved-words/super.js
+language/future-reserved-words/synchronized.js
+language/future-reserved-words/throws.js
+language/future-reserved-words/transient.js
+language/future-reserved-words/volatile.js
+language/future-reserved-words/yield-strict.js
+language/future-reserved-words/yield-strict-escaped.js
+language/global-code/S10.1.7_A1_T1.js
+language/global-code/S10.4.1_A1_T1.js
+language/global-code/S10.4.1_A1_T2.js
+language/identifier-resolution/S10.2.2_A1_T1.js
+language/identifier-resolution/S10.2.2_A1_T2.js
+language/identifier-resolution/S10.2.2_A1_T3.js
+language/identifier-resolution/S10.2.2_A1_T4.js
+language/identifier-resolution/S10.2.2_A1_T5.js
+language/identifier-resolution/S10.2.2_A1_T6.js
+language/identifier-resolution/S10.2.2_A1_T7.js
+language/identifier-resolution/S10.2.2_A1_T8.js
+language/identifier-resolution/S10.2.2_A1_T9.js
+language/identifier-resolution/S11.1.2_A1_T1.js
+language/identifier-resolution/S11.1.2_A1_T2.js
+language/identifiers/part-digits-via-escape-hex4.js
+language/identifiers/start-dollar-sign.js
+language/identifiers/start-escape-seq.js
+language/identifiers/start-underscore.js
+language/identifiers/start-unicode-ltr.js
+language/identifiers/val-break-via-escape-hex4.js
+language/identifiers/val-case-via-escape-hex4.js
+language/identifiers/val-catch-via-escape-hex4.js
+language/identifiers/val-class-via-escape-hex4.js
+language/identifiers/val-const-via-escape-hex4.js
+language/identifiers/val-continue-via-escape-hex4.js
+language/identifiers/val-debugger-via-escape-hex4.js
+language/identifiers/val-default-via-escape-hex4.js
+language/identifiers/val-delete-via-escape-hex4.js
+language/identifiers/val-dollar-sign.js
+language/identifiers/val-dollar-sign-via-escape-hex4.js
+language/identifiers/val-do-via-escape-hex4.js
+language/identifiers/val-else-via-escape-hex4.js
+language/identifiers/val-enum-via-escape-hex4.js
+language/identifiers/val-export-via-escape-hex4.js
+language/identifiers/val-extends-via-escape-hex4.js
+language/identifiers/val-false-via-escape-hex4.js
+language/identifiers/val-finally-via-escape-hex4.js
+language/identifiers/val-for-via-escape-hex4.js
+language/identifiers/val-function-via-escape-hex4.js
+language/identifiers/val-if-via-escape-hex4.js
+language/identifiers/val-import-via-escape-hex4.js
+language/identifiers/val-instanceof-via-escape-hex4.js
+language/identifiers/val-in-via-escape-hex4.js
+language/identifiers/val-new-via-escape-hex4.js
+language/identifiers/val-null-via-escape-hex4.js
+language/identifiers/val-return-via-escape-hex4.js
+language/identifiers/vals-eng-alpha-lower-via-escape-hex4.js
+language/identifiers/vals-eng-alpha-upper-via-escape-hex4.js
+language/identifiers/vals-rus-alpha-lower-via-escape-hex4.js
+language/identifiers/vals-rus-alpha-upper-via-escape-hex4.js
+language/identifiers/val-super-via-escape-hex4.js
+language/identifiers/val-switch-via-escape-hex4.js
+language/identifiers/val-this-via-escape-hex4.js
+language/identifiers/val-throw-via-escape-hex4.js
+language/identifiers/val-true-via-escape-hex4.js
+language/identifiers/val-try-via-escape-hex4.js
+language/identifiers/val-typeof-via-escape-hex4.js
+language/identifiers/val-underscore.js
+language/identifiers/val-underscore-via-escape-hex4.js
+language/identifiers/val-var-via-escape-hex4.js
+language/identifiers/val-void-via-escape-hex4.js
+language/identifiers/val-while-via-escape-hex4.js
+language/identifiers/val-with-via-escape-hex4.js
+language/keywords/ident-ref-break.js
+language/keywords/ident-ref-case.js
+language/keywords/ident-ref-catch.js
+language/keywords/ident-ref-continue.js
+language/keywords/ident-ref-default.js
+language/keywords/ident-ref-delete.js
+language/keywords/ident-ref-do.js
+language/keywords/ident-ref-else.js
+language/keywords/ident-ref-finally.js
+language/keywords/ident-ref-for.js
+language/keywords/ident-ref-function.js
+language/keywords/ident-ref-if.js
+language/keywords/ident-ref-in.js
+language/keywords/ident-ref-instanceof.js
+language/keywords/ident-ref-new.js
+language/keywords/ident-ref-return.js
+language/keywords/ident-ref-switch.js
+language/keywords/ident-ref-this.js
+language/keywords/ident-ref-throw.js
+language/keywords/ident-ref-try.js
+language/keywords/ident-ref-typeof.js
+language/keywords/ident-ref-var.js
+language/keywords/ident-ref-void.js
+language/keywords/ident-ref-while.js
+language/keywords/ident-ref-with.js
+language/line-terminators/7.3-15.js
+language/line-terminators/7.3-5.js
+language/line-terminators/7.3-6.js
+language/line-terminators/between-tokens-cr.js
+language/line-terminators/between-tokens-lf.js
+language/line-terminators/between-tokens-ls.js
+language/line-terminators/between-tokens-ps.js
+language/line-terminators/comment-multi-cr.js
+language/line-terminators/comment-multi-lf.js
+language/line-terminators/comment-multi-ls.js
+language/line-terminators/comment-multi-ps.js
+language/line-terminators/comment-single-cr.js
+language/line-terminators/comment-single-lf.js
+language/line-terminators/comment-single-ls.js
+language/line-terminators/comment-single-ps.js
+language/line-terminators/invalid-comment-single-cr.js
+language/line-terminators/invalid-comment-single-lf.js
+language/line-terminators/invalid-comment-single-ls.js
+language/line-terminators/invalid-comment-single-ps.js
+language/line-terminators/invalid-regexp-cr.js
+language/line-terminators/invalid-regexp-lf.js
+language/line-terminators/invalid-regexp-ls.js
+language/line-terminators/invalid-regexp-ps.js
+language/line-terminators/invalid-string-cr.js
+language/line-terminators/invalid-string-lf.js
+language/line-terminators/S7.3_A2.1_T2.js
+language/line-terminators/S7.3_A2.2_T2.js
+language/line-terminators/S7.3_A3.2_T1.js
+language/line-terminators/S7.3_A5.4.js
+language/line-terminators/S7.3_A6_T1.js
+language/line-terminators/S7.3_A6_T2.js
+language/line-terminators/S7.3_A6_T3.js
+language/line-terminators/S7.3_A6_T4.js
+language/line-terminators/S7.3_A7_T1.js
+language/line-terminators/S7.3_A7_T2.js
+language/line-terminators/S7.3_A7_T3.js
+language/line-terminators/S7.3_A7_T4.js
+language/line-terminators/S7.3_A7_T5.js
+language/line-terminators/S7.3_A7_T6.js
+language/line-terminators/S7.3_A7_T7.js
+language/line-terminators/S7.3_A7_T8.js
+language/literals/boolean/S7.8.2_A1_T1.js
+language/literals/boolean/S7.8.2_A1_T2.js
+language/literals/null/S7.8.1_A1_T1.js
+language/literals/null/S7.8.1_A1_T2.js
+language/literals/numeric/7.8.3-1gs.js
+language/literals/numeric/7.8.3-2gs.js
+language/literals/numeric/7.8.3-3gs.js
+language/literals/numeric/legacy-octal-integery-000-strict.js
+language/literals/numeric/legacy-octal-integery-005-strict.js
+language/literals/numeric/legacy-octal-integery-010-strict.js
+language/literals/numeric/legacy-octal-integery-01-strict.js
+language/literals/numeric/legacy-octal-integery-06-strict.js
+language/literals/numeric/legacy-octal-integery-07-strict.js
+language/literals/numeric/S7.8.3_A1.1_T1.js
+language/literals/numeric/S7.8.3_A1.1_T2.js
+language/literals/numeric/S7.8.3_A1.2_T1.js
+language/literals/numeric/S7.8.3_A1.2_T2.js
+language/literals/numeric/S7.8.3_A1.2_T3.js
+language/literals/numeric/S7.8.3_A1.2_T4.js
+language/literals/numeric/S7.8.3_A1.2_T5.js
+language/literals/numeric/S7.8.3_A1.2_T6.js
+language/literals/numeric/S7.8.3_A1.2_T7.js
+language/literals/numeric/S7.8.3_A1.2_T8.js
+language/literals/numeric/S7.8.3_A2.1_T1.js
+language/literals/numeric/S7.8.3_A2.1_T2.js
+language/literals/numeric/S7.8.3_A2.1_T3.js
+language/literals/numeric/S7.8.3_A2.2_T1.js
+language/literals/numeric/S7.8.3_A2.2_T2.js
+language/literals/numeric/S7.8.3_A2.2_T3.js
+language/literals/numeric/S7.8.3_A2.2_T4.js
+language/literals/numeric/S7.8.3_A2.2_T5.js
+language/literals/numeric/S7.8.3_A2.2_T6.js
+language/literals/numeric/S7.8.3_A2.2_T7.js
+language/literals/numeric/S7.8.3_A2.2_T8.js
+language/literals/numeric/S7.8.3_A3.1_T1.js
+language/literals/numeric/S7.8.3_A3.1_T2.js
+language/literals/numeric/S7.8.3_A3.2_T1.js
+language/literals/numeric/S7.8.3_A3.2_T2.js
+language/literals/numeric/S7.8.3_A3.2_T3.js
+language/literals/numeric/S7.8.3_A3.3_T1.js
+language/literals/numeric/S7.8.3_A3.3_T2.js
+language/literals/numeric/S7.8.3_A3.3_T3.js
+language/literals/numeric/S7.8.3_A3.3_T4.js
+language/literals/numeric/S7.8.3_A3.3_T5.js
+language/literals/numeric/S7.8.3_A3.3_T6.js
+language/literals/numeric/S7.8.3_A3.3_T7.js
+language/literals/numeric/S7.8.3_A3.3_T8.js
+language/literals/numeric/S7.8.3_A3.4_T1.js
+language/literals/numeric/S7.8.3_A3.4_T2.js
+language/literals/numeric/S7.8.3_A3.4_T3.js
+language/literals/numeric/S7.8.3_A3.4_T4.js
+language/literals/numeric/S7.8.3_A3.4_T5.js
+language/literals/numeric/S7.8.3_A3.4_T6.js
+language/literals/numeric/S7.8.3_A3.4_T7.js
+language/literals/numeric/S7.8.3_A3.4_T8.js
+language/literals/numeric/S7.8.3_A4.1_T1.js
+language/literals/numeric/S7.8.3_A4.1_T2.js
+language/literals/numeric/S7.8.3_A4.1_T3.js
+language/literals/numeric/S7.8.3_A4.1_T4.js
+language/literals/numeric/S7.8.3_A4.1_T5.js
+language/literals/numeric/S7.8.3_A4.1_T6.js
+language/literals/numeric/S7.8.3_A4.1_T7.js
+language/literals/numeric/S7.8.3_A4.1_T8.js
+language/literals/numeric/S7.8.3_A4.2_T1.js
+language/literals/numeric/S7.8.3_A4.2_T2.js
+language/literals/numeric/S7.8.3_A4.2_T3.js
+language/literals/numeric/S7.8.3_A4.2_T4.js
+language/literals/numeric/S7.8.3_A4.2_T5.js
+language/literals/numeric/S7.8.3_A4.2_T6.js
+language/literals/numeric/S7.8.3_A4.2_T7.js
+language/literals/numeric/S7.8.3_A4.2_T8.js
+language/literals/numeric/S7.8.3_A5.1_T1.js
+language/literals/numeric/S7.8.3_A5.1_T2.js
+language/literals/numeric/S7.8.3_A5.1_T3.js
+language/literals/numeric/S7.8.3_A5.1_T4.js
+language/literals/numeric/S7.8.3_A5.1_T5.js
+language/literals/numeric/S7.8.3_A5.1_T6.js
+language/literals/numeric/S7.8.3_A5.1_T7.js
+language/literals/numeric/S7.8.3_A5.1_T8.js
+language/literals/numeric/S7.8.3_A6.1_T1.js
+language/literals/numeric/S7.8.3_A6.1_T2.js
+language/literals/numeric/S7.8.3_A6.2_T1.js
+language/literals/numeric/S7.8.3_A6.2_T2.js
+language/literals/regexp/7.8.5-2gs.js
+language/literals/regexp/S7.8.5_A1.1_T1.js
+language/literals/regexp/S7.8.5_A1.1_T2.js
+language/literals/regexp/S7.8.5_A1.4_T1.js
+language/literals/regexp/S7.8.5_A1.4_T2.js
+language/literals/regexp/S7.8.5_A2.1_T1.js
+language/literals/regexp/S7.8.5_A2.1_T2.js
+language/literals/regexp/S7.8.5_A2.4_T1.js
+language/literals/regexp/S7.8.5_A2.4_T2.js
+language/literals/regexp/S7.8.5_A3.1_T1.js
+language/literals/regexp/S7.8.5_A3.1_T2.js
+language/literals/regexp/S7.8.5_A3.1_T3.js
+language/literals/regexp/S7.8.5_A3.1_T4.js
+language/literals/regexp/S7.8.5_A3.1_T5.js
+language/literals/regexp/S7.8.5_A3.1_T6.js
+language/literals/regexp/S7.8.5_A4.1.js
+language/literals/regexp/S7.8.5_A4.2.js
+language/literals/string/legacy-octal-escape-sequence-prologue-strict.js
+language/literals/string/S7.8.4_A1.1_T1.js
+language/literals/string/S7.8.4_A1.1_T2.js
+language/literals/string/S7.8.4_A1.2_T1.js
+language/literals/string/S7.8.4_A1.2_T2.js
+language/literals/string/S7.8.4_A2.1_T1.js
+language/literals/string/S7.8.4_A2.1_T2.js
+language/literals/string/S7.8.4_A2.2_T1.js
+language/literals/string/S7.8.4_A2.2_T2.js
+language/literals/string/S7.8.4_A2.3_T1.js
+language/literals/string/S7.8.4_A3.1_T1.js
+language/literals/string/S7.8.4_A3.1_T2.js
+language/literals/string/S7.8.4_A3.2_T1.js
+language/literals/string/S7.8.4_A3.2_T2.js
+language/literals/string/S7.8.4_A4.1_T1.js
+language/literals/string/S7.8.4_A4.1_T2.js
+language/literals/string/S7.8.4_A4.2_T1.js
+language/literals/string/S7.8.4_A4.2_T2.js
+language/literals/string/S7.8.4_A4.2_T3.js
+language/literals/string/S7.8.4_A4.2_T4.js
+language/literals/string/S7.8.4_A4.2_T5.js
+language/literals/string/S7.8.4_A4.2_T6.js
+language/literals/string/S7.8.4_A4.2_T7.js
+language/literals/string/S7.8.4_A4.2_T8.js
+language/literals/string/S7.8.4_A4.3_T1.js
+language/literals/string/S7.8.4_A4.3_T2.js
+language/literals/string/S7.8.4_A4.3_T7.js
+language/literals/string/S7.8.4_A5.1_T1.js
+language/literals/string/S7.8.4_A5.1_T2.js
+language/literals/string/S7.8.4_A5.1_T3.js
+language/literals/string/S7.8.4_A6.1_T1.js
+language/literals/string/S7.8.4_A6.1_T2.js
+language/literals/string/S7.8.4_A6.1_T3.js
+language/literals/string/S7.8.4_A6.3_T1.js
+language/literals/string/S7.8.4_A7.1_T1.js
+language/literals/string/S7.8.4_A7.1_T2.js
+language/literals/string/S7.8.4_A7.1_T3.js
+language/literals/string/S7.8.4_A7.1_T4.js
+language/literals/string/S7.8.4_A7.2_T1.js
+language/literals/string/S7.8.4_A7.2_T2.js
+language/literals/string/S7.8.4_A7.2_T3.js
+language/literals/string/S7.8.4_A7.2_T4.js
+language/literals/string/S7.8.4_A7.2_T5.js
+language/literals/string/S7.8.4_A7.2_T6.js
+language/literals/string/S7.8.4_A7.3_T1.js
+language/punctuators/S7.7_A1.js
+language/punctuators/S7.7_A2_T1.js
+language/punctuators/S7.7_A2_T10.js
+language/punctuators/S7.7_A2_T2.js
+language/punctuators/S7.7_A2_T3.js
+language/punctuators/S7.7_A2_T4.js
+language/punctuators/S7.7_A2_T5.js
+language/punctuators/S7.7_A2_T6.js
+language/punctuators/S7.7_A2_T7.js
+language/punctuators/S7.7_A2_T8.js
+language/punctuators/S7.7_A2_T9.js
+language/reserved-words/ident-name-global-property-accessor.js
+language/reserved-words/ident-name-global-property-memberexpr.js
+language/reserved-words/ident-name-global-property-memberexpr-str.js
+language/reserved-words/ident-name-global-property-prop-name.js
+language/reserved-words/ident-name-keyword-accessor.js
+language/reserved-words/ident-name-keyword-memberexpr.js
+language/reserved-words/ident-name-keyword-memberexpr-str.js
+language/reserved-words/ident-name-keyword-prop-name.js
+language/reserved-words/ident-name-reserved-word-literal-accessor.js
+language/reserved-words/ident-name-reserved-word-literal-memberexpr.js
+language/reserved-words/ident-name-reserved-word-literal-memberexpr-str.js
+language/reserved-words/ident-name-reserved-word-literal-prop-name.js
+language/reserved-words/unreserved-words.js
+language/source-text/6.1.js
+language/statements/block/12.1-1.js
+language/statements/block/12.1-2.js
+language/statements/block/12.1-3.js
+language/statements/block/12.1-4.js
+language/statements/block/12.1-5.js
+language/statements/block/12.1-6.js
+language/statements/block/12.1-7.js
+language/statements/block/S12.1_A2.js
+language/statements/block/S12.1_A4_T1.js
+language/statements/block/S12.1_A4_T2.js
+language/statements/block/S12.1_A5.js
+language/statements/break/12.8-1.js
+language/statements/break/line-terminators.js
+language/statements/break/S12.8_A1_T1.js
+language/statements/break/S12.8_A1_T2.js
+language/statements/break/S12.8_A1_T3.js
+language/statements/break/S12.8_A1_T4.js
+language/statements/break/S12.8_A3.js
+language/statements/break/S12.8_A4_T1.js
+language/statements/break/S12.8_A4_T2.js
+language/statements/break/S12.8_A4_T3.js
+language/statements/break/S12.8_A5_T1.js
+language/statements/break/S12.8_A5_T2.js
+language/statements/break/S12.8_A5_T3.js
+language/statements/break/S12.8_A6.js
+language/statements/break/S12.8_A7.js
+language/statements/break/S12.8_A8_T1.js
+language/statements/break/S12.8_A8_T2.js
+language/statements/break/S12.8_A9_T1.js
+language/statements/break/S12.8_A9_T2.js
+language/statements/continue/12.7-1.js
+language/statements/continue/line-terminators.js
+language/statements/continue/S12.7_A1_T1.js
+language/statements/continue/S12.7_A1_T2.js
+language/statements/continue/S12.7_A1_T3.js
+language/statements/continue/S12.7_A1_T4.js
+language/statements/continue/S12.7_A5_T1.js
+language/statements/continue/S12.7_A5_T2.js
+language/statements/continue/S12.7_A5_T3.js
+language/statements/continue/S12.7_A6.js
+language/statements/continue/S12.7_A7.js
+language/statements/continue/S12.7_A8_T1.js
+language/statements/continue/S12.7_A8_T2.js
+language/statements/continue/S12.7_A9_T1.js
+language/statements/continue/S12.7_A9_T2.js
+language/statements/do-while/S12.6.1_A1.js
+language/statements/do-while/S12.6.1_A10.js
+language/statements/do-while/S12.6.1_A11.js
+language/statements/do-while/S12.6.1_A12.js
+language/statements/do-while/S12.6.1_A14_T1.js
+language/statements/do-while/S12.6.1_A14_T2.js
+language/statements/do-while/S12.6.1_A15.js
+language/statements/do-while/S12.6.1_A2.js
+language/statements/do-while/S12.6.1_A3.js
+language/statements/do-while/S12.6.1_A4_T1.js
+language/statements/do-while/S12.6.1_A4_T2.js
+language/statements/do-while/S12.6.1_A4_T3.js
+language/statements/do-while/S12.6.1_A4_T4.js
+language/statements/do-while/S12.6.1_A4_T5.js
+language/statements/do-while/S12.6.1_A5.js
+language/statements/do-while/S12.6.1_A6_T1.js
+language/statements/do-while/S12.6.1_A6_T2.js
+language/statements/do-while/S12.6.1_A6_T3.js
+language/statements/do-while/S12.6.1_A6_T4.js
+language/statements/do-while/S12.6.1_A6_T5.js
+language/statements/do-while/S12.6.1_A6_T6.js
+language/statements/do-while/S12.6.1_A7.js
+language/statements/do-while/S12.6.1_A8.js
+language/statements/do-while/S12.6.1_A9.js
+language/statements/empty/S12.3_A1.js
+language/statements/expression/S12.4_A1.js
+language/statements/expression/S12.4_A2_T1.js
+language/statements/expression/S12.4_A2_T2.js
+language/statements/for/12.6.3_2-3-a-ii-1.js
+language/statements/for/12.6.3_2-3-a-ii-10.js
+language/statements/for/12.6.3_2-3-a-ii-11.js
+language/statements/for/12.6.3_2-3-a-ii-12.js
+language/statements/for/12.6.3_2-3-a-ii-13.js
+language/statements/for/12.6.3_2-3-a-ii-14.js
+language/statements/for/12.6.3_2-3-a-ii-15.js
+language/statements/for/12.6.3_2-3-a-ii-16.js
+language/statements/for/12.6.3_2-3-a-ii-17.js
+language/statements/for/12.6.3_2-3-a-ii-18.js
+language/statements/for/12.6.3_2-3-a-ii-19.js
+language/statements/for/12.6.3_2-3-a-ii-2.js
+language/statements/for/12.6.3_2-3-a-ii-20.js
+language/statements/for/12.6.3_2-3-a-ii-21.js
+language/statements/for/12.6.3_2-3-a-ii-3.js
+language/statements/for/12.6.3_2-3-a-ii-4.js
+language/statements/for/12.6.3_2-3-a-ii-5.js
+language/statements/for/12.6.3_2-3-a-ii-6.js
+language/statements/for/12.6.3_2-3-a-ii-7.js
+language/statements/for/12.6.3_2-3-a-ii-8.js
+language/statements/for/12.6.3_2-3-a-ii-9.js
+language/statements/for/head-init-expr-check-empty-inc-empty-completion.js
+language/statements/for/head-init-expr-check-empty-inc-empty-syntax.js
+language/statements/for/head-init-var-check-empty-inc-empty-completion.js
+language/statements/for/head-init-var-check-empty-inc-empty-syntax.js
+language/statements/for/S12.6.3_A1.js
+language/statements/for/S12.6.3_A10.1_T1.js
+language/statements/for/S12.6.3_A10.1_T2.js
+language/statements/for/S12.6.3_A10_T1.js
+language/statements/for/S12.6.3_A10_T2.js
+language/statements/for/S12.6.3_A11.1_T1.js
+language/statements/for/S12.6.3_A11.1_T2.js
+language/statements/for/S12.6.3_A11.1_T3.js
+language/statements/for/S12.6.3_A11_T1.js
+language/statements/for/S12.6.3_A11_T2.js
+language/statements/for/S12.6.3_A11_T3.js
+language/statements/for/S12.6.3_A12.1_T1.js
+language/statements/for/S12.6.3_A12.1_T2.js
+language/statements/for/S12.6.3_A12.1_T3.js
+language/statements/for/S12.6.3_A12_T1.js
+language/statements/for/S12.6.3_A12_T2.js
+language/statements/for/S12.6.3_A12_T3.js
+language/statements/for/S12.6.3_A13.js
+language/statements/for/S12.6.3_A14.js
+language/statements/for/S12.6.3_A15.js
+language/statements/for/S12.6.3_A2.1.js
+language/statements/for/S12.6.3_A2.2.js
+language/statements/for/S12.6.3_A2.js
+language/statements/for/S12.6.3_A3.js
+language/statements/for/S12.6.3_A4.1.js
+language/statements/for/S12.6.3_A4_T1.js
+language/statements/for/S12.6.3_A4_T2.js
+language/statements/for/S12.6.3_A5.js
+language/statements/for/S12.6.3_A6.js
+language/statements/for/S12.6.3_A7.1_T1.js
+language/statements/for/S12.6.3_A7.1_T2.js
+language/statements/for/S12.6.3_A7_T1.js
+language/statements/for/S12.6.3_A7_T2.js
+language/statements/for/S12.6.3_A8.1_T1.js
+language/statements/for/S12.6.3_A8.1_T2.js
+language/statements/for/S12.6.3_A8.1_T3.js
+language/statements/for/S12.6.3_A8_T1.js
+language/statements/for/S12.6.3_A8_T2.js
+language/statements/for/S12.6.3_A8_T3.js
+language/statements/for-in/12.6.4-1.js
+language/statements/for-in/12.6.4-2.js
+language/statements/for-in/S12.6.4_A1.js
+language/statements/for-in/S12.6.4_A14_T2.js
+language/statements/for-in/S12.6.4_A15.js
+language/statements/for-in/S12.6.4_A2.js
+language/statements/for-in/S12.6.4_A3.1.js
+language/statements/for-in/S12.6.4_A3.js
+language/statements/for-in/S12.6.4_A4.1.js
+language/statements/for-in/S12.6.4_A4.js
+language/statements/for-in/S12.6.4_A5.1.js
+language/statements/for-in/S12.6.4_A5.js
+language/statements/for-in/S12.6.4_A6.1.js
+language/statements/for-in/S12.6.4_A6.js
+language/statements/for-in/S12.6.4_A7_T1.js
+language/statements/for-in/S12.6.4_A7_T2.js
+language/statements/function/13.0_4-17gs.js
+language/statements/function/13.0_4-5gs.js
+language/statements/function/13.0-12-s.js
+language/statements/function/13.0-13-s.js
+language/statements/function/13.0-14-s.js
+language/statements/function/13.0-15-s.js
+language/statements/function/13.0-16-s.js
+language/statements/function/13.0-17-s.js
+language/statements/function/13.0-7-s.js
+language/statements/function/13.0-8-s.js
+language/statements/function/13.1-13gs.js
+language/statements/function/13.1-19-s.js
+language/statements/function/13.1-1gs.js
+language/statements/function/13.1-21-s.js
+language/statements/function/13.1-22-s.js
+language/statements/function/13.1-23-s.js
+language/statements/function/13.1-25-s.js
+language/statements/function/13.1-27-s.js
+language/statements/function/13.1-29-s.js
+language/statements/function/13.1-2-s.js
+language/statements/function/13.1-31-s.js
+language/statements/function/13.1-33-s.js
+language/statements/function/13.1-39-s.js
+language/statements/function/13.1-41-s.js
+language/statements/function/13.1-4gs.js
+language/statements/function/13.1-4-s.js
+language/statements/function/13.1-5gs.js
+language/statements/function/13.1-8gs.js
+language/statements/function/13.2-10-s.js
+language/statements/function/13.2-11-s.js
+language/statements/function/13.2-12-s.js
+language/statements/function/13.2-13-s.js
+language/statements/function/13.2-14-s.js
+language/statements/function/13.2-15-1.js
+language/statements/function/13.2-15-s.js
+language/statements/function/13.2-16-s.js
+language/statements/function/13.2-17-1.js
+language/statements/function/13.2-17-s.js
+language/statements/function/13.2-18-1.js
+language/statements/function/13.2-18-s.js
+language/statements/function/13.2-19-b-3gs.js
+language/statements/function/13.2-19-s.js
+language/statements/function/13.2-1-s.js
+language/statements/function/13.2-20-s.js
+language/statements/function/13.2-21-s.js
+language/statements/function/13.2-22-s.js
+language/statements/function/13.2-23-s.js
+language/statements/function/13.2-24-s.js
+language/statements/function/13.2-25-s.js
+language/statements/function/13.2-26-s.js
+language/statements/function/13.2-27-s.js
+language/statements/function/13.2-28-s.js
+language/statements/function/13.2-2-s.js
+language/statements/function/13.2-3-s.js
+language/statements/function/13.2-4-s.js
+language/statements/function/13.2-5-s.js
+language/statements/function/13.2-6-s.js
+language/statements/function/13.2-7-s.js
+language/statements/function/13.2-8-s.js
+language/statements/function/13.2-9-s.js
+language/statements/function/enable-strict-via-body.js
+language/statements/function/enable-strict-via-outer-body.js
+language/statements/function/enable-strict-via-outer-script.js
+language/statements/function/invalid-2-names.js
+language/statements/function/invalid-3-names.js
+language/statements/function/invalid-function-body-1.js
+language/statements/function/invalid-function-body-2.js
+language/statements/function/invalid-function-body-3.js
+language/statements/function/invalid-name-dot.js
+language/statements/function/invalid-name-two-dots.js
+language/statements/function/line-terminator.js
+language/statements/function/name-arguments-non-strict.js
+language/statements/function/name-arguments-strict.js
+language/statements/function/name-arguments-strict-body.js
+language/statements/function/name-eval-non-strict.js
+language/statements/function/name-eval-strict.js
+language/statements/function/name-eval-strict-body.js
+language/statements/function/name-eval-stricteval.js
+language/statements/function/name-unicode.js
+language/statements/function/param-arguments-non-strict.js
+language/statements/function/param-arguments-strict.js
+language/statements/function/param-arguments-strict-body.js
+language/statements/function/param-duplicated-non-strict.js
+language/statements/function/param-duplicated-strict-1.js
+language/statements/function/param-duplicated-strict-2.js
+language/statements/function/param-duplicated-strict-3.js
+language/statements/function/param-duplicated-strict-body-1.js
+language/statements/function/param-duplicated-strict-body-2.js
+language/statements/function/param-duplicated-strict-body-3.js
+language/statements/function/param-eval-non-strict.js
+language/statements/function/param-eval-strict.js
+language/statements/function/param-eval-strict-body.js
+language/statements/function/param-eval-stricteval.js
+language/statements/function/S10.1.1_A1_T1.js
+language/statements/function/S13.2.1_A1_T1.js
+language/statements/function/S13.2.1_A4_T1.js
+language/statements/function/S13.2.1_A4_T2.js
+language/statements/function/S13.2.1_A4_T3.js
+language/statements/function/S13.2.1_A4_T4.js
+language/statements/function/S13.2.1_A5_T1.js
+language/statements/function/S13.2.1_A5_T2.js
+language/statements/function/S13.2.1_A6_T1.js
+language/statements/function/S13.2.1_A6_T2.js
+language/statements/function/S13.2.1_A6_T3.js
+language/statements/function/S13.2.1_A6_T4.js
+language/statements/function/S13.2.1_A7_T1.js
+language/statements/function/S13.2.1_A7_T2.js
+language/statements/function/S13.2.1_A7_T3.js
+language/statements/function/S13.2.1_A7_T4.js
+language/statements/function/S13.2.1_A8_T1.js
+language/statements/function/S13.2.1_A8_T2.js
+language/statements/function/S13.2.1_A9.1_T1.js
+language/statements/function/S13.2.1_A9.1_T2.js
+language/statements/function/S13.2.1_A9_T1.js
+language/statements/function/S13.2.1_A9_T2.js
+language/statements/function/S13.2.2_A1_T1.js
+language/statements/function/S13.2.2_A1_T2.js
+language/statements/function/S13.2.2_A10.js
+language/statements/function/S13.2.2_A11.js
+language/statements/function/S13.2.2_A12.js
+language/statements/function/S13.2.2_A13.js
+language/statements/function/S13.2.2_A14.js
+language/statements/function/S13.2.2_A15_T1.js
+language/statements/function/S13.2.2_A15_T2.js
+language/statements/function/S13.2.2_A15_T3.js
+language/statements/function/S13.2.2_A15_T4.js
+language/statements/function/S13.2.2_A16_T1.js
+language/statements/function/S13.2.2_A16_T2.js
+language/statements/function/S13.2.2_A16_T3.js
+language/statements/function/S13.2.2_A17_T2.js
+language/statements/function/S13.2.2_A17_T3.js
+language/statements/function/S13.2.2_A18_T1.js
+language/statements/function/S13.2.2_A18_T2.js
+language/statements/function/S13.2.2_A19_T1.js
+language/statements/function/S13.2.2_A19_T2.js
+language/statements/function/S13.2.2_A19_T3.js
+language/statements/function/S13.2.2_A19_T4.js
+language/statements/function/S13.2.2_A19_T5.js
+language/statements/function/S13.2.2_A19_T6.js
+language/statements/function/S13.2.2_A19_T7.js
+language/statements/function/S13.2.2_A19_T8.js
+language/statements/function/S13.2.2_A2.js
+language/statements/function/S13.2.2_A3_T1.js
+language/statements/function/S13.2.2_A3_T2.js
+language/statements/function/S13.2.2_A4_T1.js
+language/statements/function/S13.2.2_A4_T2.js
+language/statements/function/S13.2.2_A5_T1.js
+language/statements/function/S13.2.2_A5_T2.js
+language/statements/function/S13.2.2_A6_T1.js
+language/statements/function/S13.2.2_A6_T2.js
+language/statements/function/S13.2.2_A7_T1.js
+language/statements/function/S13.2.2_A7_T2.js
+language/statements/function/S13.2.2_A8_T1.js
+language/statements/function/S13.2.2_A8_T2.js
+language/statements/function/S13.2.2_A8_T3.js
+language/statements/function/S13.2.2_A9.js
+language/statements/function/S13.2_A1_T1.js
+language/statements/function/S13.2_A1_T2.js
+language/statements/function/S13.2_A2_T1.js
+language/statements/function/S13.2_A2_T2.js
+language/statements/function/S13.2_A3.js
+language/statements/function/S13.2_A4_T1.js
+language/statements/function/S13.2_A4_T2.js
+language/statements/function/S13.2_A5.js
+language/statements/function/S13.2_A6_T1.js
+language/statements/function/S13.2_A6_T2.js
+language/statements/function/S13.2_A7_T1.js
+language/statements/function/S13.2_A7_T2.js
+language/statements/function/S13.2_A8_T1.js
+language/statements/function/S13.2_A8_T2.js
+language/statements/function/S13_A1.js
+language/statements/function/S13_A10.js
+language/statements/function/S13_A11_T1.js
+language/statements/function/S13_A11_T2.js
+language/statements/function/S13_A11_T3.js
+language/statements/function/S13_A11_T4.js
+language/statements/function/S13_A12_T1.js
+language/statements/function/S13_A12_T2.js
+language/statements/function/S13_A13_T1.js
+language/statements/function/S13_A13_T2.js
+language/statements/function/S13_A13_T3.js
+language/statements/function/S13_A14_T1.js
+language/statements/function/S13_A15_T1.js
+language/statements/function/S13_A15_T2.js
+language/statements/function/S13_A15_T3.js
+language/statements/function/S13_A15_T4.js
+language/statements/function/S13_A15_T5.js
+language/statements/function/S13_A17_T1.js
+language/statements/function/S13_A17_T2.js
+language/statements/function/S13_A18.js
+language/statements/function/S13_A19_T1.js
+language/statements/function/S13_A19_T2.js
+language/statements/function/S13_A2_T1.js
+language/statements/function/S13_A2_T2.js
+language/statements/function/S13_A2_T3.js
+language/statements/function/S13_A3_T1.js
+language/statements/function/S13_A3_T2.js
+language/statements/function/S13_A3_T3.js
+language/statements/function/S13_A4_T1.js
+language/statements/function/S13_A4_T2.js
+language/statements/function/S13_A4_T3.js
+language/statements/function/S13_A4_T4.js
+language/statements/function/S13_A6_T1.js
+language/statements/function/S13_A6_T2.js
+language/statements/function/S13_A7_T1.js
+language/statements/function/S13_A7_T3.js
+language/statements/function/S13_A8_T1.js
+language/statements/function/S13_A8_T2.js
+language/statements/function/S13_A9.js
+language/statements/function/S14_A2.js
+language/statements/function/S14_A3.js
+language/statements/function/S14_A5_T1.js
+language/statements/function/S14_A5_T2.js
+language/statements/if/cptn-empty-statement.js
+language/statements/if/empty-statement.js
+language/statements/if/S12.5_A1.1_T1.js
+language/statements/if/S12.5_A1.1_T2.js
+language/statements/if/S12.5_A1.2_T1.js
+language/statements/if/S12.5_A1.2_T2.js
+language/statements/if/S12.5_A1_T1.js
+language/statements/if/S12.5_A1_T2.js
+language/statements/if/S12.5_A10_T1.js
+language/statements/if/S12.5_A10_T2.js
+language/statements/if/S12.5_A11.js
+language/statements/if/S12.5_A12_T1.js
+language/statements/if/S12.5_A12_T2.js
+language/statements/if/S12.5_A12_T3.js
+language/statements/if/S12.5_A12_T4.js
+language/statements/if/S12.5_A2.js
+language/statements/if/S12.5_A3.js
+language/statements/if/S12.5_A4.js
+language/statements/if/S12.5_A5.js
+language/statements/if/S12.5_A6_T1.js
+language/statements/if/S12.5_A6_T2.js
+language/statements/if/S12.5_A8.js
+language/statements/labeled/S12.12_A1_T1.js
+language/statements/return/12.9-1.js
+language/statements/return/line-terminators.js
+language/statements/return/S12.9_A1_T1.js
+language/statements/return/S12.9_A1_T10.js
+language/statements/return/S12.9_A1_T2.js
+language/statements/return/S12.9_A1_T3.js
+language/statements/return/S12.9_A1_T4.js
+language/statements/return/S12.9_A1_T5.js
+language/statements/return/S12.9_A1_T6.js
+language/statements/return/S12.9_A1_T7.js
+language/statements/return/S12.9_A1_T8.js
+language/statements/return/S12.9_A1_T9.js
+language/statements/return/S12.9_A3.js
+language/statements/return/S12.9_A4.js
+language/statements/return/S12.9_A5.js
+language/statements/switch/S12.11_A1_T1.js
+language/statements/switch/S12.11_A1_T2.js
+language/statements/switch/S12.11_A1_T3.js
+language/statements/switch/S12.11_A1_T4.js
+language/statements/switch/S12.11_A2_T1.js
+language/statements/switch/S12.11_A3_T1.js
+language/statements/switch/S12.11_A3_T2.js
+language/statements/switch/S12.11_A3_T3.js
+language/statements/switch/S12.11_A3_T4.js
+language/statements/switch/S12.11_A3_T5.js
+language/statements/switch/S12.11_A4_T1.js
+language/statements/throw/S12.13_A1.js
+language/statements/throw/S12.13_A2_T1.js
+language/statements/throw/S12.13_A2_T2.js
+language/statements/throw/S12.13_A2_T3.js
+language/statements/throw/S12.13_A2_T4.js
+language/statements/throw/S12.13_A2_T5.js
+language/statements/throw/S12.13_A2_T6.js
+language/statements/throw/S12.13_A2_T7.js
+language/statements/throw/S12.13_A3_T1.js
+language/statements/throw/S12.13_A3_T2.js
+language/statements/throw/S12.13_A3_T3.js
+language/statements/throw/S12.13_A3_T4.js
+language/statements/throw/S12.13_A3_T5.js
+language/statements/throw/S12.13_A3_T6.js
+language/statements/try/12.14-10.js
+language/statements/try/12.14-11.js
+language/statements/try/12.14-12.js
+language/statements/try/12.14-13.js
+language/statements/try/12.14-14.js
+language/statements/try/12.14-15.js
+language/statements/try/12.14-16.js
+language/statements/try/12.14-3.js
+language/statements/try/12.14-4.js
+language/statements/try/12.14-6.js
+language/statements/try/12.14-7.js
+language/statements/try/12.14-8.js
+language/statements/try/12.14-9.js
+language/statements/try/S12.14_A1.js
+language/statements/try/S12.14_A10_T1.js
+language/statements/try/S12.14_A10_T2.js
+language/statements/try/S12.14_A10_T3.js
+language/statements/try/S12.14_A10_T4.js
+language/statements/try/S12.14_A10_T5.js
+language/statements/try/S12.14_A11_T1.js
+language/statements/try/S12.14_A11_T2.js
+language/statements/try/S12.14_A11_T3.js
+language/statements/try/S12.14_A11_T4.js
+language/statements/try/S12.14_A12_T1.js
+language/statements/try/S12.14_A12_T2.js
+language/statements/try/S12.14_A12_T3.js
+language/statements/try/S12.14_A12_T4.js
+language/statements/try/S12.14_A13_T1.js
+language/statements/try/S12.14_A13_T2.js
+language/statements/try/S12.14_A13_T3.js
+language/statements/try/S12.14_A14.js
+language/statements/try/S12.14_A15.js
+language/statements/try/S12.14_A16_T1.js
+language/statements/try/S12.14_A16_T10.js
+language/statements/try/S12.14_A16_T11.js
+language/statements/try/S12.14_A16_T12.js
+language/statements/try/S12.14_A16_T13.js
+language/statements/try/S12.14_A16_T14.js
+language/statements/try/S12.14_A16_T15.js
+language/statements/try/S12.14_A16_T2.js
+language/statements/try/S12.14_A16_T3.js
+language/statements/try/S12.14_A16_T5.js
+language/statements/try/S12.14_A16_T6.js
+language/statements/try/S12.14_A16_T7.js
+language/statements/try/S12.14_A16_T8.js
+language/statements/try/S12.14_A16_T9.js
+language/statements/try/S12.14_A17.js
+language/statements/try/S12.14_A18_T1.js
+language/statements/try/S12.14_A18_T2.js
+language/statements/try/S12.14_A18_T3.js
+language/statements/try/S12.14_A18_T4.js
+language/statements/try/S12.14_A18_T5.js
+language/statements/try/S12.14_A18_T6.js
+language/statements/try/S12.14_A18_T7.js
+language/statements/try/S12.14_A19_T1.js
+language/statements/try/S12.14_A19_T2.js
+language/statements/try/S12.14_A2.js
+language/statements/try/S12.14_A3.js
+language/statements/try/S12.14_A4.js
+language/statements/try/S12.14_A5.js
+language/statements/try/S12.14_A6.js
+language/statements/try/S12.14_A7_T1.js
+language/statements/try/S12.14_A7_T2.js
+language/statements/try/S12.14_A7_T3.js
+language/statements/try/S12.14_A8.js
+language/statements/try/S12.14_A9_T1.js
+language/statements/try/S12.14_A9_T2.js
+language/statements/try/S12.14_A9_T3.js
+language/statements/try/S12.14_A9_T4.js
+language/statements/try/S12.14_A9_T5.js
+language/statements/variable/12.2.1-10-s.js
+language/statements/variable/12.2.1-11.js
+language/statements/variable/12.2.1-16-s.js
+language/statements/variable/12.2.1-17-s.js
+language/statements/variable/12.2.1-18-s.js
+language/statements/variable/12.2.1-19-s.js
+language/statements/variable/12.2.1-1gs.js
+language/statements/variable/12.2.1-20-s.js
+language/statements/variable/12.2.1-21-s.js
+language/statements/variable/12.2.1-22-s.js
+language/statements/variable/12.2.1-2-s.js
+language/statements/variable/12.2.1-3-s.js
+language/statements/variable/12.2.1-4gs.js
+language/statements/variable/12.2.1-4-s.js
+language/statements/variable/12.2.1-5-s.js
+language/statements/variable/12.2.1-6-s.js
+language/statements/variable/12.2.1-7-s.js
+language/statements/variable/12.2.1-8-s.js
+language/statements/variable/12.2.1-9-s.js
+language/statements/variable/arguments-fn-non-strict.js
+language/statements/variable/arguments-fn-strict-list-final.js
+language/statements/variable/arguments-fn-strict-list-final-init.js
+language/statements/variable/arguments-fn-strict-list-first.js
+language/statements/variable/arguments-fn-strict-list-middle.js
+language/statements/variable/arguments-fn-strict-list-repeated.js
+language/statements/variable/arguments-fn-strict-single.js
+language/statements/variable/arguments-fn-strict-single-init.js
+language/statements/variable/arguments-non-strict.js
+language/statements/variable/arguments-strict-list-final.js
+language/statements/variable/arguments-strict-list-final-init.js
+language/statements/variable/arguments-strict-list-first.js
+language/statements/variable/arguments-strict-list-middle.js
+language/statements/variable/arguments-strict-list-repeated.js
+language/statements/variable/arguments-strict-single.js
+language/statements/variable/arguments-strict-single-init.js
+language/statements/variable/eval-strict-list-final.js
+language/statements/variable/eval-strict-list-first.js
+language/statements/variable/eval-strict-list-first-init.js
+language/statements/variable/eval-strict-list-repeated.js
+language/statements/variable/eval-strict-single.js
+language/statements/variable/eval-strict-single-init.js
+language/statements/variable/id-arguments-strict.js
+language/statements/variable/id-eval-strict.js
+language/statements/variable/S12.2_A1.js
+language/statements/variable/S12.2_A10.js
+language/statements/variable/S12.2_A11.js
+language/statements/variable/S12.2_A12.js
+language/statements/variable/S12.2_A2.js
+language/statements/variable/S12.2_A3.js
+language/statements/variable/S12.2_A4.js
+language/statements/variable/S12.2_A5.js
+language/statements/variable/S12.2_A6_T1.js
+language/statements/variable/S12.2_A6_T2.js
+language/statements/variable/S12.2_A7.js
+language/statements/variable/S12.2_A8_T1.js
+language/statements/variable/S12.2_A8_T2.js
+language/statements/variable/S12.2_A8_T3.js
+language/statements/variable/S12.2_A8_T4.js
+language/statements/variable/S12.2_A8_T5.js
+language/statements/variable/S12.2_A8_T6.js
+language/statements/variable/S12.2_A8_T7.js
+language/statements/variable/S12.2_A8_T8.js
+language/statements/variable/S12.2_A9.js
+language/statements/variable/S14_A1.js
+language/statements/while/S12.6.2_A1.js
+language/statements/while/S12.6.2_A10.js
+language/statements/while/S12.6.2_A11.js
+language/statements/while/S12.6.2_A14_T1.js
+language/statements/while/S12.6.2_A14_T2.js
+language/statements/while/S12.6.2_A15.js
+language/statements/while/S12.6.2_A2.js
+language/statements/while/S12.6.2_A3.js
+language/statements/while/S12.6.2_A4_T1.js
+language/statements/while/S12.6.2_A4_T2.js
+language/statements/while/S12.6.2_A4_T3.js
+language/statements/while/S12.6.2_A4_T4.js
+language/statements/while/S12.6.2_A4_T5.js
+language/statements/while/S12.6.2_A5.js
+language/statements/while/S12.6.2_A6_T1.js
+language/statements/while/S12.6.2_A6_T2.js
+language/statements/while/S12.6.2_A6_T3.js
+language/statements/while/S12.6.2_A6_T4.js
+language/statements/while/S12.6.2_A6_T5.js
+language/statements/while/S12.6.2_A6_T6.js
+language/statements/while/S12.6.2_A7.js
+language/statements/while/S12.6.2_A8.js
+language/statements/while/S12.6.2_A9.js
+language/statements/with/12.10.1-10-s.js
+language/statements/with/12.10.1-11gs.js
+language/statements/with/12.10.1-12-s.js
+language/statements/with/12.10.1-13-s.js
+language/statements/with/12.10.1-4-s.js
+language/statements/with/12.10.1-5-s.js
+language/statements/with/12.10.1-8-s.js
+language/statements/with/12.10-0-1.js
+language/statements/with/12.10-0-10.js
+language/statements/with/12.10-0-11.js
+language/statements/with/12.10-0-12.js
+language/statements/with/12.10-0-3.js
+language/statements/with/12.10-0-7.js
+language/statements/with/12.10-0-8.js
+language/statements/with/12.10-0-9.js
+language/statements/with/12.10-2-1.js
+language/statements/with/12.10-2-2.js
+language/statements/with/12.10-2-3.js
+language/statements/with/12.10-2-4.js
+language/statements/with/12.10-2-5.js
+language/statements/with/12.10-7-1.js
+language/statements/with/S12.10_A1.1_T1.js
+language/statements/with/S12.10_A1.1_T2.js
+language/statements/with/S12.10_A1.1_T3.js
+language/statements/with/S12.10_A1.10_T1.js
+language/statements/with/S12.10_A1.10_T2.js
+language/statements/with/S12.10_A1.10_T3.js
+language/statements/with/S12.10_A1.10_T4.js
+language/statements/with/S12.10_A1.10_T5.js
+language/statements/with/S12.10_A1.11_T1.js
+language/statements/with/S12.10_A1.11_T2.js
+language/statements/with/S12.10_A1.11_T3.js
+language/statements/with/S12.10_A1.11_T4.js
+language/statements/with/S12.10_A1.11_T5.js
+language/statements/with/S12.10_A1.12_T1.js
+language/statements/with/S12.10_A1.12_T2.js
+language/statements/with/S12.10_A1.12_T3.js
+language/statements/with/S12.10_A1.12_T4.js
+language/statements/with/S12.10_A1.12_T5.js
+language/statements/with/S12.10_A1.2_T1.js
+language/statements/with/S12.10_A1.2_T2.js
+language/statements/with/S12.10_A1.2_T3.js
+language/statements/with/S12.10_A1.2_T4.js
+language/statements/with/S12.10_A1.2_T5.js
+language/statements/with/S12.10_A1.3_T1.js
+language/statements/with/S12.10_A1.3_T2.js
+language/statements/with/S12.10_A1.3_T3.js
+language/statements/with/S12.10_A1.3_T4.js
+language/statements/with/S12.10_A1.3_T5.js
+language/statements/with/S12.10_A1.4_T1.js
+language/statements/with/S12.10_A1.4_T2.js
+language/statements/with/S12.10_A1.4_T3.js
+language/statements/with/S12.10_A1.4_T4.js
+language/statements/with/S12.10_A1.4_T5.js
+language/statements/with/S12.10_A1.5_T1.js
+language/statements/with/S12.10_A1.5_T2.js
+language/statements/with/S12.10_A1.5_T3.js
+language/statements/with/S12.10_A1.5_T4.js
+language/statements/with/S12.10_A1.5_T5.js
+language/statements/with/S12.10_A1.6_T1.js
+language/statements/with/S12.10_A1.6_T2.js
+language/statements/with/S12.10_A1.6_T3.js
+language/statements/with/S12.10_A1.7_T1.js
+language/statements/with/S12.10_A1.7_T2.js
+language/statements/with/S12.10_A1.7_T3.js
+language/statements/with/S12.10_A1.7_T4.js
+language/statements/with/S12.10_A1.7_T5.js
+language/statements/with/S12.10_A1.8_T1.js
+language/statements/with/S12.10_A1.8_T2.js
+language/statements/with/S12.10_A1.8_T3.js
+language/statements/with/S12.10_A1.8_T4.js
+language/statements/with/S12.10_A1.8_T5.js
+language/statements/with/S12.10_A1.9_T1.js
+language/statements/with/S12.10_A1.9_T2.js
+language/statements/with/S12.10_A1.9_T3.js
+language/statements/with/S12.10_A3.1_T1.js
+language/statements/with/S12.10_A3.1_T2.js
+language/statements/with/S12.10_A3.1_T3.js
+language/statements/with/S12.10_A3.10_T1.js
+language/statements/with/S12.10_A3.10_T2.js
+language/statements/with/S12.10_A3.10_T3.js
+language/statements/with/S12.10_A3.10_T4.js
+language/statements/with/S12.10_A3.10_T5.js
+language/statements/with/S12.10_A3.11_T1.js
+language/statements/with/S12.10_A3.11_T2.js
+language/statements/with/S12.10_A3.11_T3.js
+language/statements/with/S12.10_A3.11_T4.js
+language/statements/with/S12.10_A3.11_T5.js
+language/statements/with/S12.10_A3.12_T1.js
+language/statements/with/S12.10_A3.12_T2.js
+language/statements/with/S12.10_A3.12_T3.js
+language/statements/with/S12.10_A3.12_T4.js
+language/statements/with/S12.10_A3.12_T5.js
+language/statements/with/S12.10_A3.2_T1.js
+language/statements/with/S12.10_A3.2_T2.js
+language/statements/with/S12.10_A3.2_T3.js
+language/statements/with/S12.10_A3.2_T4.js
+language/statements/with/S12.10_A3.2_T5.js
+language/statements/with/S12.10_A3.3_T1.js
+language/statements/with/S12.10_A3.3_T2.js
+language/statements/with/S12.10_A3.3_T3.js
+language/statements/with/S12.10_A3.3_T4.js
+language/statements/with/S12.10_A3.4_T1.js
+language/statements/with/S12.10_A3.4_T2.js
+language/statements/with/S12.10_A3.4_T3.js
+language/statements/with/S12.10_A3.4_T4.js
+language/statements/with/S12.10_A3.4_T5.js
+language/statements/with/S12.10_A3.5_T1.js
+language/statements/with/S12.10_A3.5_T2.js
+language/statements/with/S12.10_A3.5_T3.js
+language/statements/with/S12.10_A3.5_T4.js
+language/statements/with/S12.10_A3.5_T5.js
+language/statements/with/S12.10_A3.6_T1.js
+language/statements/with/S12.10_A3.6_T2.js
+language/statements/with/S12.10_A3.6_T3.js
+language/statements/with/S12.10_A3.7_T1.js
+language/statements/with/S12.10_A3.7_T2.js
+language/statements/with/S12.10_A3.7_T3.js
+language/statements/with/S12.10_A3.7_T4.js
+language/statements/with/S12.10_A3.7_T5.js
+language/statements/with/S12.10_A3.8_T1.js
+language/statements/with/S12.10_A3.8_T2.js
+language/statements/with/S12.10_A3.8_T3.js
+language/statements/with/S12.10_A3.8_T4.js
+language/statements/with/S12.10_A3.8_T5.js
+language/statements/with/S12.10_A3.9_T1.js
+language/statements/with/S12.10_A3.9_T2.js
+language/statements/with/S12.10_A3.9_T3.js
+language/statements/with/S12.10_A4_T1.js
+language/statements/with/S12.10_A4_T2.js
+language/statements/with/S12.10_A4_T3.js
+language/statements/with/S12.10_A4_T4.js
+language/statements/with/S12.10_A4_T5.js
+language/statements/with/S12.10_A4_T6.js
+language/statements/with/S12.10_A5_T1.js
+language/statements/with/S12.10_A5_T2.js
+language/statements/with/S12.10_A5_T3.js
+language/statements/with/S12.10_A5_T4.js
+language/statements/with/S12.10_A5_T5.js
+language/statements/with/S12.10_A5_T6.js
+language/statements/with/stict-script.js
+language/statements/with/strict-fn-decl.js
+language/statements/with/strict-fn-decl-nested-1.js
+language/statements/with/strict-fn-decl-nested-2.js
+language/statements/with/strict-fn-expr.js
+language/statements/with/strict-fn-method.js
+language/types/boolean/S8.3_A1_T1.js
+language/types/boolean/S8.3_A1_T2.js
+language/types/boolean/S8.3_A2.1.js
+language/types/boolean/S8.3_A2.2.js
+language/types/boolean/S8.3_A3.js
+language/types/list/S8.8_A2_T1.js
+language/types/list/S8.8_A2_T2.js
+language/types/list/S8.8_A2_T3.js
+language/types/null/S8.2_A1_T1.js
+language/types/null/S8.2_A1_T2.js
+language/types/null/S8.2_A2.js
+language/types/null/S8.2_A3.js
+language/types/number/8.5.1.js
+language/types/number/S8.5_A1.js
+language/types/number/S8.5_A10_T1.js
+language/types/number/S8.5_A10_T2.js
+language/types/number/S8.5_A11_T1.js
+language/types/number/S8.5_A11_T2.js
+language/types/number/S8.5_A12.1.js
+language/types/number/S8.5_A12.2.js
+language/types/number/S8.5_A13_T2.js
+language/types/number/S8.5_A14_T1.js
+language/types/number/S8.5_A14_T2.js
+language/types/number/S8.5_A2.1.js
+language/types/number/S8.5_A2.2.js
+language/types/number/S8.5_A3.js
+language/types/number/S8.5_A4_T1.js
+language/types/number/S8.5_A4_T2.js
+language/types/number/S8.5_A5.js
+language/types/number/S8.5_A6.js
+language/types/number/S8.5_A7.js
+language/types/number/S8.5_A8.js
+language/types/number/S8.5_A9.js
+language/types/object/S8.6.1_A1.js
+language/types/object/S8.6.1_A2.js
+language/types/object/S8.6.1_A3.js
+language/types/object/S8.6.2_A1.js
+language/types/object/S8.6.2_A2.js
+language/types/object/S8.6.2_A3.js
+language/types/object/S8.6.2_A4.js
+language/types/object/S8.6.2_A5_T1.js
+language/types/object/S8.6.2_A5_T2.js
+language/types/object/S8.6.2_A5_T3.js
+language/types/object/S8.6.2_A5_T4.js
+language/types/object/S8.6.2_A6.js
+language/types/object/S8.6.2_A7.js
+language/types/object/S8.6.2_A8.js
+language/types/object/S8.6_A2_T1.js
+language/types/object/S8.6_A2_T2.js
+language/types/object/S8.6_A3_T1.js
+language/types/object/S8.6_A3_T2.js
+language/types/object/S8.6_A4_T1.js
+language/types/reference/8.7.2-1-s.js
+language/types/reference/8.7.2-2-s.js
+language/types/reference/8.7.2-3-1-s.js
+language/types/reference/8.7.2-3-a-1gs.js
+language/types/reference/8.7.2-3-a-2gs.js
+language/types/reference/8.7.2-3-s.js
+language/types/reference/8.7.2-4-s.js
+language/types/reference/8.7.2-5-s.js
+language/types/reference/8.7.2-6-s.js
+language/types/reference/8.7.2-7-s.js
+language/types/reference/8.7.2-8-s.js
+language/types/reference/S8.7.1_A1.js
+language/types/reference/S8.7.1_A2.js
+language/types/reference/S8.7.2_A1_T1.js
+language/types/reference/S8.7.2_A1_T2.js
+language/types/reference/S8.7.2_A2.js
+language/types/reference/S8.7.2_A3.js
+language/types/reference/S8.7_A1.js
+language/types/reference/S8.7_A2.js
+language/types/reference/S8.7_A3.js
+language/types/reference/S8.7_A4.js
+language/types/reference/S8.7_A5_T1.js
+language/types/reference/S8.7_A5_T2.js
+language/types/reference/S8.7_A6.js
+language/types/reference/S8.7_A7.js
+language/types/string/S8.4_A1.js
+language/types/string/S8.4_A10.js
+language/types/string/S8.4_A11.js
+language/types/string/S8.4_A12.js
+language/types/string/S8.4_A13_T1.js
+language/types/string/S8.4_A13_T2.js
+language/types/string/S8.4_A13_T3.js
+language/types/string/S8.4_A14_T1.js
+language/types/string/S8.4_A14_T2.js
+language/types/string/S8.4_A14_T3.js
+language/types/string/S8.4_A2.js
+language/types/string/S8.4_A3.js
+language/types/string/S8.4_A4.js
+language/types/string/S8.4_A5.js
+language/types/string/S8.4_A6.1.js
+language/types/string/S8.4_A6.2.js
+language/types/string/S8.4_A7.1.js
+language/types/string/S8.4_A7.2.js
+language/types/string/S8.4_A7.3.js
+language/types/string/S8.4_A7.4.js
+language/types/string/S8.4_A8.js
+language/types/string/S8.4_A9_T1.js
+language/types/string/S8.4_A9_T2.js
+language/types/string/S8.4_A9_T3.js
+language/types/undefined/S8.1_A1_T1.js
+language/types/undefined/S8.1_A1_T2.js
+language/types/undefined/S8.1_A2_T1.js
+language/types/undefined/S8.1_A2_T2.js
+language/types/undefined/S8.1_A3_T1.js
+language/types/undefined/S8.1_A3_T2.js
+language/types/undefined/S8.1_A4.js
+language/types/undefined/S8.1_A5.js
+language/white-space/between-form-feed.js
+language/white-space/between-horizontal-tab.js
+language/white-space/between-nbsp.js
+language/white-space/between-space.js
+language/white-space/between-vertical-tab.js
+language/white-space/comment-multi-form-feed.js
+language/white-space/comment-multi-horizontal-tab.js
+language/white-space/comment-multi-nbsp.js
+language/white-space/comment-multi-space.js
+language/white-space/comment-multi-vertical-tab.js
+language/white-space/comment-single-form-feed.js
+language/white-space/comment-single-horizontal-tab.js
+language/white-space/comment-single-nbsp.js
+language/white-space/comment-single-space.js
+language/white-space/comment-single-vertical-tab.js
+language/white-space/S7.2_A2.1_T2.js
+language/white-space/S7.2_A2.2_T2.js
+language/white-space/S7.2_A2.3_T2.js
+language/white-space/S7.2_A2.4_T2.js
+language/white-space/S7.2_A2.5_T2.js
+language/white-space/S7.2_A3.1_T2.js
+language/white-space/S7.2_A3.2_T2.js
+language/white-space/S7.2_A3.3_T2.js
+language/white-space/S7.2_A3.4_T2.js
+language/white-space/S7.2_A3.5_T2.js
+language/white-space/S7.2_A4.1_T2.js
+language/white-space/S7.2_A4.2_T2.js
+language/white-space/S7.2_A4.3_T2.js
+language/white-space/S7.2_A4.4_T2.js
+language/white-space/S7.2_A4.5_T2.js
+language/white-space/S7.2_A5_T1.js
+language/white-space/S7.2_A5_T2.js
+language/white-space/S7.2_A5_T3.js
+language/white-space/S7.2_A5_T4.js
+language/white-space/S7.2_A5_T5.js
+language/white-space/string-form-feed.js
+language/white-space/string-horizontal-tab.js
+language/white-space/string-nbsp.js
+language/white-space/string-space.js
+language/white-space/string-vertical-tab.js
\ No newline at end of file
diff --git a/test262/eshost.patch b/test262/eshost.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7e6c2647b84ba342c250004ef5782f43b2d0529c
--- /dev/null
+++ b/test262/eshost.patch
@@ -0,0 +1,233 @@
+From ed6584a8304882dc14a25cbd1f27f70961658147 Mon Sep 17 00:00:00 2001
+Date: Thu, 15 Jul 2021 09:34:47 +0800
+Subject: [PATCH] fix test
+
+---
+ lib/Agent.js | 1 +
+ lib/ConsoleAgent.js | 29 ++++++++++-----
+ lib/agents/panda.js | 88 +++++++++++++++++++++++++++++++++++++++++++++
+ runtimes/panda.js | 44 +++++++++++++++++++++++
+ 4 files changed, 154 insertions(+), 8 deletions(-)
+ create mode 100644 lib/agents/panda.js
+ create mode 100644 runtimes/panda.js
+
+diff --git a/lib/Agent.js b/lib/Agent.js
+index edcdf0e..7e655c5 100644
+--- a/lib/Agent.js
++++ b/lib/Agent.js
+@@ -7,6 +7,7 @@ class Agent {
+ this.args = options.hostArguments || [];
+ this.transform = options.transform || (x => x);
+ this.out = options.out || '';
++ this.test262Dir = options.test262Dir;
+
+ if (typeof this.args === 'string') {
+ this.args = this.args.includes(' ') ?
+diff --git a/lib/ConsoleAgent.js b/lib/ConsoleAgent.js
+index 947c1db..dc14ded 100644
+--- a/lib/ConsoleAgent.js
++++ b/lib/ConsoleAgent.js
+@@ -19,7 +19,7 @@ const {
+ const cpSym = Symbol.for('cp');
+ const tpSym = Symbol.for('tp');
+
+-function generateTempFileName() {
++function generateTempFileName(file) {
+ const now = Date.now();
+ return `f-${now}-${process.pid}-${(Math.random() * 0x100000000 + 1).toString(36)}.js`;
+ }
+@@ -47,9 +47,23 @@ class ConsoleAgent extends Agent {
+ }
+ }
+
++ genTempFileName(code){
++ let file = code.file;
++ let scenario = code.scenario === 'strict mode' ? 'strict' : code.scenario;
++ let tmps = file.split(this.test262Dir);
++ let tempfile = path.join(this.out,tmps[1]);
++ tempfile = tempfile.substring(0,tempfile.indexOf('.js'));
++ tempfile = path.normalize(
++ `${tempfile}-${scenario}.js`
++ );
++ return tempfile;
++ }
++
+ evalScript(code, options = {}) {
+- let tempfile = path.join(this[tpSym], generateTempFileName());
+- let temppath = this[tpSym];
++
++ let tempfile = this.genTempFileName(code);
++ //let tempfile = path.join(this.out, generateTempFileName(code.file));
++ let temppath = this.out;
+
+ let isExpectingRawSource = false;
+ let hasDependencies = false;
+@@ -57,10 +71,10 @@ class ConsoleAgent extends Agent {
+ const sources = [];
+ const dependencies = [];
+
+- if (this.out) {
+- tempfile = tempfile.replace(temppath, this.out);
+- temppath = this.out;
+- }
++ // if (this.out) {
++ // tempfile = tempfile.replace(temppath, this.out);
++ // temppath = this.out;
++ // }
+
+ // When evalScript is called with a test262-stream test record:
+ if (typeof code === 'object' && code.contents) {
+@@ -161,7 +175,6 @@ class ConsoleAgent extends Agent {
+ sources.forEach(({0: file}) => fs.unlink(file, () => { /* ignore */ }));
+
+ const result = this.normalizeResult({ stderr, stdout });
+-
+ result.error = this.parseError(result.stderr);
+
+ return result;
+diff --git a/lib/agents/panda.js b/lib/agents/panda.js
+new file mode 100644
+index 0000000..ab22b47
+--- /dev/null
++++ b/lib/agents/panda.js
+@@ -0,0 +1,88 @@
++'use strict';
++
++const fs = require('fs');
++const runtimePath = require('../runtime-path');
++const ConsoleAgent = require('../ConsoleAgent');
++
++const errorRe = /[(](\d+),(\d+)[)]: (.*)/;
++const errorRe1 = /^(\w+): (.*)$/m;
++// const errorRe2 = /^(?:(\w+): (.*))|(?:(\w+))$/m;
++const errorRe2 = /(\w+): (\w+): (.*)$/m;
++
++function parseSyntaxError(syntaxErrorMessage) {
++ const matches = syntaxErrorMessage.match();
++ if (matches && matches.length) {
++ return {
++ message: matches[3],
++ lineNumber: Number(matches[1]),
++ columnNumber: Number(matches[2])
++ };
++ }
++ return null;
++}
++
++class PandaAgent extends ConsoleAgent{
++ constructor(options) {
++ super(options);
++ }
++
++ createChildProcess(args) {
++ let js_file = args[0]
++ args = []
++ args.unshift(`--js-file=${js_file}`)
++ return super.createChildProcess(args);
++ }
++
++ evalScript(code, options = {}) {
++ return super.evalScript(code, options);
++ }
++
++ parseError(str) {
++ let match = str.match(errorRe1);
++ if (match) {
++ return {
++ name: match[1],
++ message: match[2],
++ stack: [],
++ };
++ } else {
++ // Syntax errors don't have nice error messages...
++ let error = null;
++ let errors = str.match(/[(](\d+),(\d+)[)]: (.*)/gm);
++
++ if (errors && errors.length) {
++ error = {
++ name: 'SyntaxError',
++ message: errors[0],
++ stack: []
++ };
++
++ const stack = parseSyntaxError(errors[0]);
++
++ if (stack) {
++ error.stack.push(stack);
++ error.message = stack.message;
++ }
++ }
++
++ if (error) {
++ return error;
++ }
++
++ // Last chance...
++ errors = str.match(errorRe2);
++ if (errors && errors.length >3) {
++ return {
++ name: errors[2],
++ message: errors[0],
++ stack: [],
++ };
++ }
++ }
++
++ return null;
++ }
++}
++
++PandaAgent.runtime = fs.readFileSync(runtimePath.for('panda'), 'utf8');
++module.exports = PandaAgent;
+\ No newline at end of file
+diff --git a/runtimes/panda.js b/runtimes/panda.js
+new file mode 100644
+index 0000000..0acbd09
+--- /dev/null
++++ b/runtimes/panda.js
+@@ -0,0 +1,44 @@
++if (!globalThis.$262) {
++ globalThis.$262 = {
++ global: globalThis,
++ evalScript(code) {
++ try {
++ global.evalScript(code);
++ return { type: 'normal', value: undefined };
++ } catch (e) {
++ return { type: 'throw', value: e };
++ }
++ },
++ gc() {
++ throw new Test262Error('gc() not yet supported.');
++ },
++ getGlobal(name) {
++ return global[name];
++ },
++ setGlobal(name, value) {
++ global[name] = value;
++ },
++ agent: (function() {
++ function thrower() {
++ throw new Test262Error('agent.* not yet supported.');
++ };
++ return {
++ start: thrower,
++ broadcast: thrower,
++ getReport: thrower,
++ sleep: thrower,
++ monotonicNow: thrower,
++ };
++ })(),
++ };
++}
++
++$262.IsHTMLDDA = function() {};
++$262.destroy = function() {};
++$262.getGlobal = function(name) {
++ return this.global[name];
++};
++$262.setGlobal = function(name, value) {
++ this.global[name] = value;
++};
++$262.source = $SOURCE;
+--
\ No newline at end of file
diff --git a/test262/harness.patch b/test262/harness.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9f12a8a22f279fdfc14162f94a6416f577a02260
--- /dev/null
+++ b/test262/harness.patch
@@ -0,0 +1,242 @@
+diff --git a/bin/run.js b/bin/run.js
+index 650f19a..b2a554b 100755
+--- a/bin/run.js
++++ b/bin/run.js
+@@ -76,6 +76,7 @@ if (argv.prelude) {
+ let hostType;
+ let hostPath;
+ let features;
++let mode;
+
+ if (argv.hostType) {
+ hostType = argv.hostType;
+@@ -123,6 +124,12 @@ if (argv.features) {
+ features = argv.features.split(',').map(feature => feature.trim());
+ }
+
++mode = "only strict mode"
++
++if (argv.mode) {
++ mode = argv.mode
++}
++
+ // Show help if no arguments provided
+ if (!argv._.length) {
+ cli.showHelp();
+@@ -130,15 +137,18 @@ if (!argv._.length) {
+ return;
+ }
+
+-// Test Pipeline
+-const pool = new AgentPool(
+- Number(argv.threads), hostType, argv.hostArgs, hostPath, { tempDir, timeout, transform }
+-);
+
+ if (!test262Dir) {
+ test262Dir = test262Finder(argv._[0]);
+ }
++
+ reporterOpts.test262Dir = test262Dir;
++reporterOpts.tempDir = tempDir
++
++// Test Pipeline
++const pool = new AgentPool(
++ Number(argv.threads), hostType, argv.hostArgs, hostPath, { tempDir, timeout, transform, test262Dir }
++);
+
+ const remove = path.relative(process.cwd(), test262Dir);
+ argv._ = argv._.map(p => path.relative(remove, p));
+@@ -166,6 +176,7 @@ if (preprocessor) {
+ tests = tests.pipe(filter(preprocessor));
+ }
+
++tests = tests.pipe(filter(operMode));
+ const results = zip(pool, tests).pipe(
+ flatMap(pair => {
+ return pool.runTest(pair);
+@@ -209,3 +220,11 @@ function hasFeatures(test) {
+ }
+ return features.filter(feature => (test.attrs.features || []).includes(feature)).length > 0;
+ }
++
++function operMode(test) {
++ test_scenario = test.scenario
++ if (mode.indexOf(test_scenario) != -1) {
++ return true;
++ }
++ return false;
++}
+diff --git a/lib/agent-pool.js b/lib/agent-pool.js
+index ad14b84..1b8a184 100644
+--- a/lib/agent-pool.js
++++ b/lib/agent-pool.js
+@@ -1,6 +1,6 @@
+ 'use strict';
+ const {Subject} = require('rxjs');
+-const eshost = require('eshost');
++const eshost = require('../../eshost/lib/eshost');
+
+ const internal = new WeakMap();
+
+@@ -18,6 +18,7 @@ class AgentPool extends Subject {
+ shortName: '$262',
+ transform: options.transform,
+ out: options.tempDir,
++ test262Dir: options.test262Dir,
+ })
+ .then(agent => {
+ this.agents.push(agent);
+diff --git a/lib/cli.js b/lib/cli.js
+index 4a74309..91d1735 100644
+--- a/lib/cli.js
++++ b/lib/cli.js
+@@ -1,4 +1,4 @@
+-const { supportedHosts } = require("eshost");
++const { supportedHosts } = require("./../../eshost/lib/eshost");
+ const yargs = require('yargs');
+ const yargv = yargs
+ .strict()
+@@ -22,6 +22,9 @@ const yargv = yargs
+ .nargs('threads', 1)
+ .default('threads', 1)
+ .alias('threads', 't')
++ .nargs('mode', 1)
++ .default('mode', 1)
++ .alias('mode', 'm')
+ .describe('reporter', 'format of data written to standard output')
+ .choices('reporter', ['simple', 'json'])
+ .nargs('reporter', 1)
+diff --git a/lib/reporters/simple.js b/lib/reporters/simple.js
+index 08f9a55..a386924 100644
+--- a/lib/reporters/simple.js
++++ b/lib/reporters/simple.js
+@@ -1,5 +1,6 @@
+ 'use strict';
+ const path = require('path');
++const fs = require('fs');
+ const saveCompiledTest = require('../saveCompiledTest');
+
+ function simpleReporter(results, opts) {
+@@ -12,11 +13,13 @@ function simpleReporter(results, opts) {
+
+ clearPassed();
+ lastPassed = true;
+- process.stdout.write(`PASS ${test.file}`);
++ let mess = `PASS ${test.file} (${test.scenario})\n`
++ console.log(mess);
++ writeStatistics(mess,opts);
+
+ if (opts.saveCompiledTests && !opts.saveOnlyFailed) {
+ test.savedTestPath = saveCompiledTest(test, opts);
+- process.stdout.write(`\nSaved compiled passed test as ${test.savedTestPath}\n`);
++ // process.stdout.write(`\nSaved compiled passed test as ${test.savedTestPath}\n`);
+ }
+ });
+
+@@ -24,14 +27,21 @@ function simpleReporter(results, opts) {
+ failed++;
+ clearPassed();
+ lastPassed = false;
+- console.log(`FAIL ${test.file} (${test.scenario})`);
+- console.log(` ${test.result.message}`);
++
++ let mess = `FAIL ${test.file} (${test.scenario})\n`
++ saveInfoToFile(test,opts);
++
++ console.log(mess);
++ console.log(`${test.result.message}`);
+ console.log('');
+
++ writeStatistics(mess,opts);
++
+ if (opts.saveCompiledTests) {
+ test.savedTestPath = saveCompiledTest(test, opts);
+- process.stdout.write(`Saved compiled failed test as ${test.savedTestPath}\n`);
++ // process.stdout.write(`Saved compiled failed test as ${test.savedTestPath}\n`);
+ }
++
+ });
+
+ results.on('end', function () {
+@@ -52,6 +62,29 @@ function simpleReporter(results, opts) {
+ }
+ }
+ }
++
++ function saveInfoToFile(test,opts){
++ let filePath = test.file;
++ let tmps = filePath.split(opts.test262Dir);
++ let outFile = path.join(opts.tempDir,tmps[1]);
++ let scenario = test.scenario === 'strict mode' ? 'strict' : test.scenario;
++ let outcome = 'err';
++ let savedTestPath = path.normalize(
++ `${outFile}.${opts.hostType}.${scenario}.${outcome}`
++ );
++ fs.writeFileSync(savedTestPath, ` ${test.result.message}`);
++ }
++
++ function writeStatistics(data,opts) {
++ let save_file = path.join(opts.tempDir,"result.txt");
++ fs.appendFile(save_file,data,'utf8',function(err){
++ if(err)
++ {
++ console.error(err);
++ }
++ });
++ }
++
+ }
+
+ module.exports = simpleReporter;
+diff --git a/lib/saveCompiledTest.js b/lib/saveCompiledTest.js
+index c233adb..7739946 100644
+--- a/lib/saveCompiledTest.js
++++ b/lib/saveCompiledTest.js
+@@ -6,8 +6,11 @@ const path = require('path');
+ module.exports = function saveCompiledTest(test, options) {
+ let outcome = test.result.pass ? 'pass' : 'fail';
+ let scenario = test.scenario === 'strict mode' ? 'strict' : test.scenario;
++ let filePath = test.file;
++ let tmps = filePath.split(options.test262Dir);
++ let outFile = path.join(options.tempDir,tmps[1]);
+ let savedTestPath = path.normalize(
+- `${test.file}.${options.hostType}.${scenario}.${outcome}`
++ `${outFile}.${options.hostType}.${scenario}.${outcome}`
+ );
+ fs.writeFileSync(savedTestPath, test.compiled);
+ return savedTestPath;
+diff --git a/lib/validator.js b/lib/validator.js
+index e7cb695..38a113c 100644
+--- a/lib/validator.js
++++ b/lib/validator.js
+@@ -35,7 +35,7 @@ module.exports = function validate(test) {
+ } else {
+ return {
+ pass: false,
+- message: `Expected no error, got ${result.error.name}: ${result.error.message}`,
++ message: `Expected no error, but got ${result.error.name}: \n ${result.stderr}`,
+ };
+ }
+ } else if (!ranToFinish && !test.attrs.flags.raw) {
+@@ -46,7 +46,7 @@ module.exports = function validate(test) {
+ }
+ return {
+ pass: false,
+- message,
++ message: `Expected no error, but got : \n ${result.stderr}`,
+ };
+ } else {
+ return {
+@@ -78,9 +78,9 @@ module.exports = function validate(test) {
+ } else {
+ return {
+ pass: false,
+- message: `Expected test to throw error of type ${test.attrs.negative.type}, got ${result.error.name}: ${result.error.message}`,
++ message: `Expected test to throw error of type ${test.attrs.negative.type}, but got ${result.error.name}: \n ${result.stderr}`,
+ };
+ }
+ }
+ }
+-};
++};
+\ No newline at end of file
diff --git a/test262/run_sunspider.py b/test262/run_sunspider.py
new file mode 100755
index 0000000000000000000000000000000000000000..6064c59093102e38a75599d38f11b0dd1a676f3e
--- /dev/null
+++ b/test262/run_sunspider.py
@@ -0,0 +1,189 @@
+# coding: utf-8
+#!/usr/bin/python3
+
+"""
+Copyright (c) 2021 Huawei Device Co., Ltd.
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Description: Use ark to execute js files
+"""
+
+import argparse
+import os
+import platform
+import sys
+import signal
+import subprocess
+from utils import *
+from config import *
+
+
+def parse_args():
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--ark-tool',
+ help="ark's binary tool")
+ parser.add_argument('--ark-frontend-tool',
+ help="ark frontend conversion tool")
+ parser.add_argument("--libs-dir",
+ help="The path collection of dependent so has been divided by':'")
+ parser.add_argument("--js-file",
+ help="js file")
+ parser.add_argument('--ark-frontend',
+ nargs='?', choices=ARK_FRONTEND_LIST, type=str,
+ help="Choose one of them")
+ arguments = parser.parse_args()
+ return arguments
+
+
+ARK_ARGS = "--gc-type=epsilon"
+
+ARK_TOOL = DEFAULT_ARK_TOOL
+ARK_FRONTEND_TOOL = DEFAULT_ARK_FRONTEND_TOOL
+LIBS_DIR = DEFAULT_LIBS_DIR
+ARK_FRONTEND = DEFAULT_ARK_FRONTEND
+
+
+def output(retcode, msg):
+ if retcode == 0:
+ if msg != '':
+ print(str(msg))
+ elif retcode == -6:
+ sys.stderr.write("Aborted (core dumped)")
+ elif retcode == -11:
+ sys.stderr.write("Segmentation fault (core dumped)")
+ elif msg != '':
+ sys.stderr.write(str(msg))
+ else:
+ sys.stderr.write("Unknown Error: " + str(retcode))
+
+
+def exec_command(cmd_args, timeout=DEFAULT_TIMEOUT):
+ proc = subprocess.Popen(cmd_args,
+ stderr=subprocess.PIPE,
+ stdout=subprocess.PIPE,
+ close_fds=True,
+ start_new_session=True)
+ cmd_string = " ".join(cmd_args)
+ code_format = 'utf-8'
+ if platform.system() == "Windows":
+ code_format = 'gbk'
+
+ try:
+ (msg, errs) = proc.communicate(timeout=timeout)
+ ret_code = proc.poll()
+
+ if errs.decode(code_format, 'ignore') != '':
+ output(1, errs.decode(code_format, 'ignore'))
+ return 1
+
+ if ret_code and ret_code != 1:
+ code = ret_code
+ msg = f"Command {cmd_string}: \n"
+ msg += f"error: {str(errs.decode(code_format,'ignore'))}"
+ else:
+ code = 0
+ msg = str(msg.decode(code_format, 'ignore'))
+
+ except subprocess.TimeoutExpired:
+ proc.kill()
+ proc.terminate()
+ os.kill(proc.pid, signal.SIGTERM)
+ code = 1
+ msg = f"Timeout:'{cmd_string}' timed out after' {str(timeout)} seconds"
+ except Exception as err:
+ code = 1
+ msg = f"{cmd_string}: unknown error: {str(err)}"
+ output(code, msg)
+ return code
+
+
+class ArkProgram():
+ def __init__(self, args):
+ self.args = args
+ self.ark_tool = ARK_TOOL
+ self.ark_frontend_tool = ARK_FRONTEND_TOOL
+ self.libs_dir = LIBS_DIR
+ self.ark_frontend = ARK_FRONTEND
+ self.js_file = ""
+
+ def proce_parameters(self):
+ if self.args.ark_tool:
+ self.ark_tool = self.args.ark_tool
+
+ if self.args.ark_frontend_tool:
+ self.ark_frontend_tool = self.args.ark_frontend_tool
+
+ if self.args.libs_dir:
+ self.libs_dir = self.args.libs_dir
+
+ if self.args.ark_frontend:
+ self.ark_frontend = self.args.ark_frontend
+
+ self.js_file = self.args.js_file
+
+ def gen_abc(self):
+ js_file = self.js_file
+ file_name_pre = os.path.splitext(js_file)[0]
+ file_name = os.path.basename(js_file)
+ out_file = f"{file_name_pre}.abc"
+ mod_opt_index = 0
+ cmd_args = []
+ frontend_tool = self.ark_frontend_tool
+ if self.ark_frontend == ARK_FRONTEND_LIST[0]:
+ mod_opt_index = 3
+ cmd_args = ['node', '--expose-gc', frontend_tool,
+ js_file, '-o', out_file]
+ elif self.ark_frontend == ARK_FRONTEND_LIST[1]:
+ mod_opt_index = 1
+ cmd_args = [frontend_tool, '-c',
+ '-e', 'js', '-o', out_file, '-i', js_file]
+
+ if file_name in MODULE_FILES_LIST:
+ cmd_args.insert(mod_opt_index, "-m")
+
+ retcode = exec_command(cmd_args)
+ return retcode
+
+ def execute(self):
+ os.environ["LD_LIBRARY_PATH"] = self.libs_dir
+ file_name_pre = os.path.splitext(self.js_file)[0]
+
+ cmd_args = [self.ark_tool, ARK_ARGS,
+ f'{file_name_pre}.abc']
+ retcode = exec_command(cmd_args)
+ return retcode
+
+ def is_legal_frontend(self):
+ if self.ark_frontend not in ARK_FRONTEND_LIST:
+ sys.stderr.write("Wrong ark front-end option")
+ return False
+ return True
+
+ def execute_ark(self):
+ self.proce_parameters()
+ if not self.is_legal_frontend():
+ return
+ if self.gen_abc():
+ return
+ self.execute()
+
+
+def main():
+ args = parse_args()
+
+ ark = ArkProgram(args)
+ ark.execute_ark()
+
+
+if __name__ == "__main__":
+ sys.exit(main())
diff --git a/test262/run_test262.py b/test262/run_test262.py
new file mode 100755
index 0000000000000000000000000000000000000000..353c269096097a804fb1a61aace08fec1fdb8a80
--- /dev/null
+++ b/test262/run_test262.py
@@ -0,0 +1,446 @@
+# coding: utf-8
+#!/usr/bin/python3
+
+"""
+Copyright (c) 2021 Huawei Device Co., Ltd.
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Description: Use ark to execute test 262 test suite
+"""
+
+import argparse
+import datetime
+import collections
+import json
+import os
+import sys
+import subprocess
+from multiprocessing import Pool
+from utils import *
+from config import *
+
+
+def parse_args():
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--dir', metavar='DIR',
+ help='Directory to test ')
+ parser.add_argument('--file', metavar='FILE',
+ help='File to test')
+ parser.add_argument('--mode',
+ nargs='?', choices=[1, 2, 3], type=int,
+ help='selection information as: ' +
+ '1: only default \n ' +
+ '2: only strict mode \n' +
+ '3: both default and strict mode\n')
+ parser.add_argument('--es51', action='store_true',
+ help='Run test262 ES5.1 version')
+ parser.add_argument('--es2015', default=False, const='all',
+ nargs='?', choices=['all', 'only'],
+ help='Run test262 - ES2015. ' +
+ 'all: Contains all use cases for ES5 and ES2015' +
+ 'only: Only include use cases for ES2015')
+ parser.add_argument('--esnext', action='store_true',
+ help='Run test262 - ES.next.')
+ parser.add_argument('--engine', metavar='FILE',
+ help='Other engine binarys to run tests(as:d8,qjs...)')
+ parser.add_argument('--babel', action='store_true',
+ help='Whether to use Babel conversion')
+ parser.add_argument('--timeout', default=DEFAULT_TIMEOUT, type=int,
+ help='Set a custom test timeout in milliseconds !!!\n')
+ parser.add_argument('--threads', default=DEFAULT_THREADS, type=int,
+ help="Run this many tests in parallel.")
+ parser.add_argument('--hostArgs',
+ help="command-line arguments to pass to eshost host\n")
+ parser.add_argument('--ark-tool',
+ help="ark's binary tool")
+ parser.add_argument('--ark-frontend-tool',
+ help="ark frontend conversion tool")
+ parser.add_argument("--libs-dir",
+ help="The path collection of dependent so has been divided by':'")
+ parser.add_argument('--ark-frontend',
+ nargs='?', choices=ARK_FRONTEND_LIST, type=str,
+ help="Choose one of them")
+ args = parser.parse_args()
+ return args
+
+
+def run_check(runnable, env=None):
+ report_command('Test command:', runnable, env=env)
+
+ if env is not None:
+ full_env = dict(os.environ)
+ full_env.update(env)
+ env = full_env
+
+ proc = subprocess.Popen(runnable, env=env)
+ proc.wait()
+ return proc.returncode
+
+
+def excuting_npm_install(args):
+ ark_frontend = DEFAULT_ARK_FRONTEND
+ if args.ark_frontend:
+ ark_frontend = args.ark_frontend
+
+ if ark_frontend != DEFAULT_ARK_FRONTEND:
+ return
+
+ ark_frontend_tool = os.path.join(DEFAULT_ARK_FRONTEND_TOOL)
+ if args.ark_frontend_tool:
+ ark_frontend_tool = os.path.join(args.ark_frontend_tool)
+
+ ts2abc_build_dir = os.path.join(os.path.dirname(
+ os.path.realpath(ark_frontend_tool)), "..")
+
+ if os.path.exists(os.path.join(ts2abc_build_dir, "package.json")):
+ npm_install(ts2abc_build_dir)
+ elif os.path.exists(os.path.join(ts2abc_build_dir, "..", "package.json")):
+ npm_install(os.path.join(ts2abc_build_dir, ".."))
+
+
+def init(args):
+ remove_dir(BASE_OUT_DIR)
+ remove_dir(TEST_ES5_DIR)
+ remove_dir(TEST_ES2015_DIR)
+ get_all_skip_tests(SKIP_LIST_FILE)
+ excuting_npm_install(args)
+
+
+def get_all_skip_tests(file):
+ with open(file) as jsonfile:
+ json_data = json.load(jsonfile)
+ for key in json_data:
+ ALL_SKIP_TESTS.extend(key["files"])
+
+
+def collect_files(path):
+ if os.path.isfile(path):
+ yield path
+ return
+
+ if not os.path.isdir(path):
+ raise ValueError(f'Not found: "{path}"')
+
+ for root, _, file_names in os.walk(path):
+ for file_name in file_names:
+ if file_name.startswith('.') or not file_name.endswith(".js"):
+ continue
+
+ yield os.path.join(root, file_name)
+
+
+def mkdstdir(file, src_dir, dist_dir):
+ idx = file.rfind(src_dir)
+ if idx == -1:
+ raise SystemExit(f'{file} can not found in {src_dir}')
+
+ fpath, fname = os.path.split(file[idx:])
+ fpath = fpath.replace(src_dir, dist_dir)
+ mkdir(fpath)
+
+
+class TestPrepare():
+ def __init__(self, args):
+ self.args = args
+ self.out_dir = BASE_OUT_DIR
+
+
+ def prepare_test262_code(self):
+ if not os.path.isdir(os.path.join(DATA_DIR, '.git')):
+ git_clone(TEST262_GIT_URL, DATA_DIR)
+ git_checkout(TEST262_GIT_HASH, DATA_DIR)
+
+ if not os.path.isdir(os.path.join(ESHOST_DIR, '.git')):
+ git_clone(ESHOST_GIT_URL, ESHOST_DIR)
+ git_checkout(ESHOST_GIT_HASH, ESHOST_DIR)
+ git_apply('../eshost.patch', ESHOST_DIR)
+
+ npm_install(ESHOST_DIR)
+
+ if not os.path.isdir(os.path.join(HARNESS_DIR, '.git')):
+ git_clone(HARNESS_GIT_URL, HARNESS_DIR)
+ git_checkout(HARNESS_GIT_HASH, HARNESS_DIR)
+ git_apply('../harness.patch', HARNESS_DIR)
+
+ npm_install(HARNESS_DIR)
+
+ def prepare_clean_data(self):
+ git_clean(DATA_DIR)
+ git_checkout(TEST262_GIT_HASH, DATA_DIR)
+
+ def patching_the_plugin(self):
+ remove_file(os.path.join(ESHOST_DIR, "lib/agents/panda.js"))
+ remove_file(os.path.join(ESHOST_DIR, "runtimes/panda.js"))
+
+ git_clean(ESHOST_DIR)
+ git_apply("../eshost.patch", ESHOST_DIR)
+ git_clean(HARNESS_DIR)
+ git_apply("../harness.patch", HARNESS_DIR)
+
+ def prepare_args_es51_es2015(self):
+ if self.args.dir:
+ if TEST_ES5_DIR in self.args.dir:
+ self.args.es51 = True
+ elif TEST_ES2015_DIR in self.args.dir:
+ self.args.es2015 = "all"
+
+ if self.args.file:
+ if TEST_ES5_DIR in self.args.file:
+ self.args.es51 = True
+ elif TEST_ES2015_DIR in self.args.file:
+ self.args.es2015 = "all"
+
+ def prepare_out_dir(self):
+ if self.args.es51:
+ self.out_dir = os.path.join(BASE_OUT_DIR, "test_es51")
+ elif self.args.es2015:
+ self.out_dir = os.path.join(BASE_OUT_DIR, "test_es2015")
+ else:
+ self.out_dir = os.path.join(BASE_OUT_DIR, "test")
+
+ def prepare_args_testdir(self):
+ if self.args.dir:
+ return
+
+ if self.args.es51:
+ self.args.dir = TEST_ES5_DIR
+ elif self.args.es2015:
+ self.args.dir = TEST_ES2015_DIR
+ else:
+ self.args.dir = os.path.join(DATA_DIR, "test")
+
+ def copyfile(self, file):
+ dstdir = os.path.join(DATA_DIR, "test")
+ file = file.strip()
+ if file in ALL_SKIP_TESTS:
+ return
+
+ srcdir = os.path.join(DATA_DIR, "test", file)
+ if self.args.es51:
+ dstdir = os.path.join(TEST_ES5_DIR, file)
+ elif self.args.es2015:
+ dstdir = os.path.join(TEST_ES2015_DIR, file)
+ subprocess.getstatusoutput("cp %s %s" % (srcdir, dstdir))
+
+ def collect_tests(self):
+ files = []
+ origin_dir = os.path.join(DATA_DIR, "test/")
+ file_names = collect_files(origin_dir)
+ esid = ""
+ if self.args.es51:
+ esid = "es5id"
+ elif self.args.es2015:
+ esid = "es6id"
+
+ for file_name in file_names:
+ with open(file_name, 'r') as file:
+ content = file.read()
+ if esid in content:
+ files.append(file_name.split(origin_dir)[1])
+ return files
+
+ def get_tests_from_file(self, file):
+ fopen = open(file)
+ files = fopen.readlines()
+ fopen.close()
+ return files
+
+ def prepare_es2015_tests(self):
+ files = []
+ files = self.collect_tests()
+ files.extend(self.get_tests_from_file(ES2015_LIST_FILE))
+ if self.args.es2015 == "all":
+ files.extend(self.get_tests_from_file(ES5_LIST_FILE))
+ return files
+
+ def prepare_test_suit(self):
+ files = []
+ test_dir = ""
+ if self.args.es51:
+ test_dir = TEST_ES5_DIR
+ files = self.get_tests_from_file(ES5_LIST_FILE)
+ elif self.args.es2015:
+ test_dir = TEST_ES2015_DIR
+ files = self.prepare_es2015_tests()
+
+ for file in files:
+ path = os.path.split(file)[0]
+ path = os.path.join(test_dir, path)
+ mkdir(path)
+
+ pool = Pool(DEFAULT_THREADS)
+ pool.map(self.copyfile, files)
+ pool.close()
+ pool.join()
+
+ def prepare_test262_test(self):
+ src_dir = os.path.join(DATA_DIR, "test")
+ if self.args.es51:
+ self.prepare_test_suit()
+ src_dir = TEST_ES5_DIR
+ elif self.args.es2015:
+ self.prepare_test_suit()
+ src_dir = TEST_ES2015_DIR
+ elif self.args.esnext:
+ git_checkout(ESNEXT_GIT_HASH, DATA_DIR)
+ else:
+ git_checkout(TEST262_GIT_HASH, DATA_DIR)
+
+ if self.args.file:
+ mkdstdir(self.args.file, src_dir, self.out_dir)
+ return
+
+ files = collect_files(self.args.dir)
+ for file in files:
+ mkdstdir(file, src_dir, self.out_dir)
+
+ def run(self):
+ self.prepare_test262_code()
+ self.prepare_clean_data()
+ self.patching_the_plugin()
+ self.prepare_args_es51_es2015()
+ self.prepare_out_dir()
+ self.prepare_args_testdir()
+ self.prepare_test262_test()
+
+
+def run_test262_prepare(args):
+ init(args)
+
+ test_prepare = TestPrepare(args)
+ test_prepare.run()
+
+
+def modetype_to_string(mode):
+ if mode == 1:
+ return "only default"
+ if mode == 2:
+ return "only strict mode"
+ return "both default and strict mode"
+
+
+def run_test262_mode(args):
+ if args.mode:
+ return modetype_to_string(args.mode)
+ return modetype_to_string(DEFAULT_MODE)
+
+
+def get_execute_arg(args):
+ execute_args = ""
+
+ if args.file:
+ execute_args = args.file
+ else:
+ execute_args = os.path.join(args.dir, "**", "*.js")
+ return execute_args
+
+
+def get_host_path_type(args):
+ host_path = DEFAULT_HOST_PATH
+ host_type = DEFAULT_HOST_TYPE
+ if args.engine:
+ host_path = args.engine
+ host_type = os.path.split(args.engine.strip())[1]
+ return host_path, host_type
+
+
+def get_timeout(args, threads):
+ timeout = DEFAULT_TIMEOUT * threads
+ if args.timeout:
+ timeout = args.timeout
+ return timeout
+
+
+def get_threads(args):
+ threads = DEFAULT_THREADS
+ if args.threads:
+ threads = args.threads
+ return threads
+
+
+def get_host_args(args, host_type):
+ host_args = ""
+ ark_tool = DEFAULT_ARK_TOOL
+ ark_frontend_tool = DEFAULT_ARK_FRONTEND_TOOL
+ libs_dir = DEFAULT_LIBS_DIR
+ ark_frontend = DEFAULT_ARK_FRONTEND
+
+ if args.hostArgs:
+ host_args = args.hostArgs
+
+ if args.ark_tool:
+ ark_tool = args.ark_tool
+
+ if args.ark_frontend_tool:
+ ark_frontend_tool = args.ark_frontend_tool
+
+ if args.libs_dir:
+ libs_dir = args.libs_dir
+
+ if args.ark_frontend:
+ ark_frontend = args.ark_frontend
+
+ if host_type == DEFAULT_HOST_TYPE:
+ host_args = f"-B test262/run_sunspider.py "
+ host_args += f"--ark-tool={ark_tool} "
+ host_args += f"--ark-frontend-tool={ark_frontend_tool} "
+ host_args += f"--libs-dir={libs_dir} "
+ host_args += f"--ark-frontend={ark_frontend} "
+
+ return host_args
+
+
+def run_test262_test(args):
+ execute_args = get_execute_arg(args)
+ host_path, host_type = get_host_path_type(args)
+ host_args = get_host_args(args, host_type)
+ threads = get_threads(args)
+ timeout = get_timeout(args, threads)
+
+ test_cmd = ["node", TEST262_RUNNER_SCRIPT]
+ test_cmd.append(f"--hostType={host_type}")
+ test_cmd.append(f"--hostPath={host_path}")
+ if host_args != "":
+ test_cmd.append(f"--hostArgs='{host_args}'")
+ test_cmd.append(f"--threads={threads}")
+ test_cmd.append(f"--mode={run_test262_mode(args)}")
+ test_cmd.append(f"--timeout={timeout}")
+ test_cmd.append(f"--tempDir={BASE_OUT_DIR}")
+ test_cmd.append(f"--test262Dir={DATA_DIR}")
+
+ if args.babel:
+ test_cmd.append("--preprocessor='test262/babel-preprocessor.js'")
+ test_cmd.append(DEFAULT_OTHER_ARGS)
+
+ test_cmd.append(execute_args)
+
+ run_check(test_cmd)
+
+
+Check = collections.namedtuple('Check', ['enabled', 'runner', 'arg'])
+
+
+def main(args):
+ print("\nWait a moment..........\n")
+ starttime = datetime.datetime.now()
+ run_test262_prepare(args)
+ check = Check(True, run_test262_test, args)
+ ret = check.runner(check.arg)
+ if ret:
+ sys.exit(ret)
+ endtime = datetime.datetime.now()
+ print(f"used time is: {str(endtime - starttime)}")
+
+
+if __name__ == "__main__":
+ sys.exit(main(parse_args()))
diff --git a/test262/skip_tests.json b/test262/skip_tests.json
new file mode 100644
index 0000000000000000000000000000000000000000..a3143720250f2fb38c62c60df0855ffc9b07f099
--- /dev/null
+++ b/test262/skip_tests.json
@@ -0,0 +1,1355 @@
+[
+ {
+ "reason": "Not a requirement in the ecma2015 specification",
+ "files": [
+ "built-ins/Promise/all/species-get-error.js",
+ "built-ins/Promise/race/species-get-error.js",
+ "language/global-code/decl-lex.js"
+ ]
+ },
+ {
+ "reason": "A bug in tsc caused the use case to fail",
+ "files": [
+ "language/statements/for/S12.6.3_A2.1.js",
+ "language/statements/for/S12.6.3_A2.2.js",
+ "language/statements/for/S12.6.3_A2.js"
+ ]
+ },
+ {
+ "reason": "Syntax error detected by tsc",
+ "files": [
+ "language/identifiers/part-digits-via-escape-hex.js",
+ "language/identifiers/val-dollar-sign-via-escape-hex.js",
+ "language/identifiers/vals-eng-alpha-lower-via-escape-hex.js",
+ "language/identifiers/vals-eng-alpha-upper-via-escape-hex.js",
+ "language/identifiers/vals-rus-alpha-lower-via-escape-hex.js",
+ "language/identifiers/vals-rus-alpha-upper-via-escape-hex.js",
+ "language/identifiers/val-underscore-via-escape-hex.js"
+ ]
+ },
+ {
+ "reason": "Not support eval",
+ "files": [
+ "language/global-code/script-decl-var-collision.js",
+ "language/statements/class/subclass/builtin-objects/GeneratorFunction/instance-prototype.js",
+ "built-ins/RegExp/S15.10.4.1_A5_T3.js",
+ "built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-4.js",
+ "language/literals/numeric/7.8.3-3gs.js",
+ "language/statements/class/subclass/builtin-objects/Function/instance-length.js",
+ "language/statements/class/subclass/builtin-objects/Function/instance-name.js",
+ "language/statements/class/subclass/builtin-objects/Function/regular-subclassing.js",
+ "language/statements/class/subclass/builtin-objects/GeneratorFunction/instance-length.js",
+ "language/statements/class/subclass/builtin-objects/GeneratorFunction/instance-name.js",
+ "language/statements/class/subclass/builtin-objects/GeneratorFunction/regular-subclassing.js",
+ "language/expressions/compound-assignment/11.13.2-10-s.js",
+ "language/expressions/compound-assignment/11.13.2-11-s.js",
+ "language/expressions/compound-assignment/11.13.2-1-s.js",
+ "language/expressions/compound-assignment/11.13.2-2-s.js",
+ "language/expressions/compound-assignment/11.13.2-4-s.js",
+ "language/expressions/compound-assignment/11.13.2-5-s.js",
+ "language/expressions/compound-assignment/11.13.2-6-s.js",
+ "language/expressions/compound-assignment/11.13.2-8-s.js",
+ "language/expressions/compound-assignment/11.13.2-9-s.js",
+ "language/types/reference/8.7.2-1-s.js",
+ "language/types/string/S8.4_A7.1.js",
+ "language/types/string/S8.4_A7.2.js",
+ "language/types/string/S8.4_A7.3.js",
+ "language/types/string/S8.4_A7.4.js",
+ "annexB/built-ins/RegExp/RegExp-leading-escape-BMP.js",
+ "annexB/built-ins/RegExp/RegExp-trailing-escape-BMP.js",
+ "annexB/language/literals/regexp/class-escape.js",
+ "annexB/language/literals/regexp/quantifiable-assertion-followed-by.js",
+ "annexB/language/literals/regexp/quantifiable-assertion-not-followed-by.js",
+ "built-ins/Array/prototype/every/15.4.4.16-5-7.js",
+ "built-ins/Array/prototype/filter/15.4.4.20-5-7.js",
+ "built-ins/Array/prototype/forEach/15.4.4.18-5-7.js",
+ "built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-8.js",
+ "built-ins/Array/prototype/map/15.4.4.19-5-7.js",
+ "built-ins/Array/prototype/some/15.4.4.17-5-7.js",
+ "built-ins/Function/15.3.2.1-11-1.js",
+ "built-ins/Function/15.3.2.1-11-2-s.js",
+ "built-ins/Function/15.3.2.1-11-3.js",
+ "built-ins/Function/15.3.2.1-11-4-s.js",
+ "built-ins/Function/15.3.2.1-11-5.js",
+ "built-ins/Function/15.3.2.1-11-6-s.js",
+ "built-ins/Function/15.3.2.1-11-7-s.js",
+ "built-ins/Function/15.3.2.1-11-8-s.js",
+ "built-ins/Function/15.3.2.1-11-9-s.js",
+ "built-ins/Function/15.3.5.4_2-11gs.js",
+ "built-ins/Function/15.3.5.4_2-13gs.js",
+ "built-ins/Function/15.3.5.4_2-7gs.js",
+ "built-ins/Function/15.3.5.4_2-9gs.js",
+ "built-ins/Function/instance-name.js",
+ "built-ins/Function/length/S15.3.5.1_A1_T1.js",
+ "built-ins/Function/length/S15.3.5.1_A1_T2.js",
+ "built-ins/Function/length/S15.3.5.1_A1_T3.js",
+ "built-ins/Function/length/S15.3.5.1_A2_T1.js",
+ "built-ins/Function/length/S15.3.5.1_A2_T2.js",
+ "built-ins/Function/length/S15.3.5.1_A2_T3.js",
+ "built-ins/Function/length/S15.3.5.1_A3_T1.js",
+ "built-ins/Function/length/S15.3.5.1_A3_T2.js",
+ "built-ins/Function/length/S15.3.5.1_A3_T3.js",
+ "built-ins/Function/length/S15.3.5.1_A4_T1.js",
+ "built-ins/Function/length/S15.3.5.1_A4_T2.js",
+ "built-ins/Function/length/S15.3.5.1_A4_T3.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A1_T1.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A3_T1.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A3_T2.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A3_T3.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A3_T4.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A3_T5.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A3_T7.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A3_T9.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A5_T1.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A5_T2.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A5_T7.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A5_T8.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A7_T1.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A7_T10.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A7_T2.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A7_T3.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A7_T4.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A7_T5.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A7_T6.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A7_T7.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A7_T8.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A7_T9.js",
+ "built-ins/Function/prototype/apply/S15.3.4.3_A8_T6.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A1_T1.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A2_T2.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A3_T1.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A3_T2.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A3_T3.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A3_T4.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A3_T5.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A3_T7.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A3_T9.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A5_T1.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A5_T2.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A5_T7.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A5_T8.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A6_T1.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A6_T10.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A6_T2.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A6_T3.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A6_T4.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A6_T5.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A6_T6.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A6_T7.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A6_T8.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A6_T9.js",
+ "built-ins/Function/prototype/call/S15.3.4.4_A7_T6.js",
+ "built-ins/Function/prototype/S15.3.5.2_A1_T1.js",
+ "built-ins/Function/prototype/S15.3.5.2_A1_T2.js",
+ "built-ins/Function/S15.3.1_A1_T1.js",
+ "built-ins/Function/S15.3.2.1_A1_T1.js",
+ "built-ins/Function/S15.3.2.1_A1_T10.js",
+ "built-ins/Function/S15.3.2.1_A1_T11.js",
+ "built-ins/Function/S15.3.2.1_A1_T12.js",
+ "built-ins/Function/S15.3.2.1_A1_T13.js",
+ "built-ins/Function/S15.3.2.1_A1_T2.js",
+ "built-ins/Function/S15.3.2.1_A1_T3.js",
+ "built-ins/Function/S15.3.2.1_A1_T4.js",
+ "built-ins/Function/S15.3.2.1_A1_T5.js",
+ "built-ins/Function/S15.3.2.1_A1_T6.js",
+ "built-ins/Function/S15.3.2.1_A1_T7.js",
+ "built-ins/Function/S15.3.2.1_A1_T8.js",
+ "built-ins/Function/S15.3.2.1_A1_T9.js",
+ "built-ins/Function/S15.3.2.1_A2_T1.js",
+ "built-ins/Function/S15.3.2.1_A2_T2.js",
+ "built-ins/Function/S15.3.2.1_A2_T3.js",
+ "built-ins/Function/S15.3.2.1_A2_T4.js",
+ "built-ins/Function/S15.3.2.1_A2_T5.js",
+ "built-ins/Function/S15.3.2.1_A2_T6.js",
+ "built-ins/Function/S15.3.2.1_A3_T1.js",
+ "built-ins/Function/S15.3.2.1_A3_T10.js",
+ "built-ins/Function/S15.3.2.1_A3_T11.js",
+ "built-ins/Function/S15.3.2.1_A3_T12.js",
+ "built-ins/Function/S15.3.2.1_A3_T13.js",
+ "built-ins/Function/S15.3.2.1_A3_T14.js",
+ "built-ins/Function/S15.3.2.1_A3_T15.js",
+ "built-ins/Function/S15.3.2.1_A3_T2.js",
+ "built-ins/Function/S15.3.2.1_A3_T3.js",
+ "built-ins/Function/S15.3.2.1_A3_T4.js",
+ "built-ins/Function/S15.3.2.1_A3_T5.js",
+ "built-ins/Function/S15.3.2.1_A3_T6.js",
+ "built-ins/Function/S15.3.2.1_A3_T7.js",
+ "built-ins/Function/S15.3.2.1_A3_T8.js",
+ "built-ins/Function/S15.3.2.1_A3_T9.js",
+ "built-ins/Function/S15.3.2_A1.js",
+ "built-ins/Function/S15.3.5_A1_T1.js",
+ "built-ins/Function/S15.3.5_A1_T2.js",
+ "built-ins/Function/S15.3.5_A2_T1.js",
+ "built-ins/Function/S15.3.5_A2_T2.js",
+ "built-ins/Function/S15.3.5_A3_T1.js",
+ "built-ins/Function/S15.3.5_A3_T2.js",
+ "built-ins/Function/S15.3_A2_T1.js",
+ "built-ins/Function/S15.3_A2_T2.js",
+ "built-ins/Function/S15.3_A3_T1.js",
+ "built-ins/Function/S15.3_A3_T2.js",
+ "built-ins/Function/S15.3_A3_T3.js",
+ "built-ins/Function/S15.3_A3_T4.js",
+ "built-ins/Function/S15.3_A3_T5.js",
+ "built-ins/Function/S15.3_A3_T6.js",
+ "built-ins/Function/StrictFunction_restricted-properties.js",
+ "built-ins/GeneratorFunction/has-instance.js",
+ "built-ins/GeneratorFunction/instance-name.js",
+ "built-ins/GeneratorFunction/invoked-as-constructor-no-arguments.js",
+ "built-ins/GeneratorFunction/invoked-as-function-multiple-arguments.js",
+ "built-ins/GeneratorFunction/invoked-as-function-no-arguments.js",
+ "built-ins/GeneratorFunction/invoked-as-function-single-argument.js",
+ "built-ins/global/S10.2.3_A1.1_T2.js",
+ "built-ins/global/S10.2.3_A1.2_T2.js",
+ "built-ins/global/S10.2.3_A1.3_T1.js",
+ "built-ins/global/S10.2.3_A1.3_T2.js",
+ "built-ins/global/S10.2.3_A1.3_T3.js",
+ "built-ins/global/S10.2.3_A1.3_T4.js",
+ "built-ins/global/S10.2.3_A2.3_T1.js",
+ "built-ins/global/S10.2.3_A2.3_T2.js",
+ "built-ins/global/S10.2.3_A2.3_T3.js",
+ "built-ins/global/S10.2.3_A2.3_T4.js",
+ "built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-187.js",
+ "built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-188.js",
+ "built-ins/Promise/all/ctx-non-ctor.js",
+ "built-ins/Promise/race/ctx-non-ctor.js",
+ "built-ins/Promise/reject/ctx-non-ctor.js",
+ "built-ins/Promise/resolve/ctx-non-ctor.js",
+ "built-ins/RegExp/S15.10.4.1_A8_T11.js",
+ "built-ins/String/prototype/charAt/S15.5.4.4_A1.1.js",
+ "built-ins/String/prototype/charCodeAt/S15.5.4.5_A1.1.js",
+ "built-ins/String/prototype/indexOf/S15.5.4.7_A3_T2.js",
+ "built-ins/String/prototype/match/S15.5.4.10_A1_T3.js",
+ "built-ins/String/prototype/split/checking-by-using-eval.js",
+ "built-ins/String/prototype/split/separator-regexp-limit-string-via-eval.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T3.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T3.js",
+ "built-ins/String/prototype/toLowerCase/S15.5.4.16_A1_T3.js",
+ "built-ins/String/prototype/toUpperCase/S15.5.4.18_A1_T3.js",
+ "built-ins/String/S15.5.1.1_A1_T6.js",
+ "built-ins/String/S9.8_A1_T1.js",
+ "language/arguments-object/10.5-1-s.js",
+ "language/arguments-object/10.5-7-b-1-s.js",
+ "language/comments/S7.4_A5.js",
+ "language/comments/S7.4_A6.js",
+ "language/statements/debugger/statement.js",
+ "language/eval-code/direct/cptn-nrml-empty-block.js",
+ "language/eval-code/direct/cptn-nrml-empty-do-while.js",
+ "language/eval-code/direct/cptn-nrml-empty-empty.js",
+ "language/eval-code/direct/cptn-nrml-empty-for.js",
+ "language/eval-code/direct/cptn-nrml-empty-if.js",
+ "language/eval-code/direct/cptn-nrml-empty-switch.js",
+ "language/eval-code/direct/cptn-nrml-empty-var.js",
+ "language/eval-code/direct/cptn-nrml-empty-while.js",
+ "language/eval-code/direct/cptn-nrml-expr-obj.js",
+ "language/eval-code/direct/cptn-nrml-expr-prim.js",
+ "language/eval-code/direct/cptn-thrw-prim.js",
+ "language/eval-code/direct/global-env-rec.js",
+ "language/eval-code/direct/global-env-rec-catch.js",
+ "language/eval-code/direct/global-env-rec-eval.js",
+ "language/eval-code/direct/global-env-rec-fun.js",
+ "language/eval-code/direct/new.target.js",
+ "language/eval-code/direct/new.target-arrow.js",
+ "language/eval-code/direct/new.target-fn.js",
+ "language/eval-code/direct/non-string-object.js",
+ "language/eval-code/direct/non-string-primitive.js",
+ "language/eval-code/direct/parse-failure-1.js",
+ "language/eval-code/direct/parse-failure-2.js",
+ "language/eval-code/direct/parse-failure-3.js",
+ "language/eval-code/direct/parse-failure-4.js",
+ "language/eval-code/direct/parse-failure-5.js",
+ "language/eval-code/direct/super-call.js",
+ "language/eval-code/direct/super-call-arrow.js",
+ "language/eval-code/direct/super-prop.js",
+ "language/eval-code/direct/super-prop-arrow.js",
+ "language/eval-code/direct/super-prop-method.js",
+ "language/eval-code/direct/var-env-func-strict-caller.js",
+ "language/eval-code/direct/var-env-func-strict-caller-2.js",
+ "language/eval-code/direct/var-env-func-strict-source.js",
+ "language/eval-code/direct/var-env-var-strict-caller.js",
+ "language/eval-code/direct/var-env-var-strict-caller-2.js",
+ "language/eval-code/direct/var-env-var-strict-caller-3.js",
+ "language/eval-code/direct/var-env-var-strict-source.js",
+ "language/eval-code/indirect/block-decl-strict.js",
+ "language/eval-code/indirect/cptn-nrml-empty-block.js",
+ "language/eval-code/indirect/cptn-nrml-empty-do-while.js",
+ "language/eval-code/indirect/cptn-nrml-empty-empty.js",
+ "language/eval-code/indirect/cptn-nrml-empty-for.js",
+ "language/eval-code/indirect/cptn-nrml-empty-if.js",
+ "language/eval-code/indirect/cptn-nrml-empty-switch.js",
+ "language/eval-code/indirect/cptn-nrml-empty-var.js",
+ "language/eval-code/indirect/cptn-nrml-empty-while.js",
+ "language/eval-code/indirect/cptn-nrml-expr-obj.js",
+ "language/eval-code/indirect/cptn-nrml-expr-prim.js",
+ "language/eval-code/indirect/global-env-rec.js",
+ "language/eval-code/indirect/global-env-rec-catch.js",
+ "language/eval-code/indirect/global-env-rec-eval.js",
+ "language/eval-code/indirect/global-env-rec-fun.js",
+ "language/eval-code/indirect/new.target.js",
+ "language/eval-code/indirect/non-definable-global-function.js",
+ "language/eval-code/indirect/non-definable-global-generator.js",
+ "language/eval-code/indirect/non-definable-global-var.js",
+ "language/eval-code/indirect/non-definable-function-with-variable.js",
+ "language/eval-code/indirect/non-definable-function-with-function.js",
+ "language/eval-code/indirect/non-string-object.js",
+ "language/eval-code/indirect/non-string-primitive.js",
+ "language/eval-code/indirect/parse-failure-1.js",
+ "language/eval-code/indirect/parse-failure-2.js",
+ "language/eval-code/indirect/parse-failure-3.js",
+ "language/eval-code/indirect/parse-failure-4.js",
+ "language/eval-code/indirect/parse-failure-5.js",
+ "language/eval-code/indirect/super-call.js",
+ "language/eval-code/indirect/super-prop.js",
+ "language/eval-code/indirect/switch-case-decl-strict.js",
+ "language/eval-code/indirect/switch-dflt-decl-strict.js",
+ "language/eval-code/indirect/var-env-func-non-strict.js",
+ "language/eval-code/indirect/var-env-func-strict.js",
+ "language/eval-code/indirect/var-env-var-non-strict.js",
+ "language/eval-code/indirect/var-env-var-strict.js",
+ "language/expressions/addition/S11.6.1_A1.js",
+ "language/expressions/arrow-function/arrow/capturing-closure-variables-1.js",
+ "language/expressions/bitwise-and/S11.10.1_A1.js",
+ "language/expressions/bitwise-and/S11.10.1_A3_T1.5.js",
+ "language/expressions/bitwise-not/S11.4.8_A1.js",
+ "language/expressions/bitwise-not/S11.4.8_A3_T5.js",
+ "language/expressions/bitwise-or/S11.10.3_A1.js",
+ "language/expressions/bitwise-or/S11.10.3_A3_T1.5.js",
+ "language/expressions/bitwise-xor/S11.10.2_A1.js",
+ "language/expressions/bitwise-xor/S11.10.2_A3_T1.5.js",
+ "language/expressions/call/11.2.3-3_5.js",
+ "language/expressions/call/eval-first-arg.js",
+ "language/expressions/call/S11.2.3_A1.js",
+ "language/expressions/comma/S11.14_A1.js",
+ "language/expressions/concatenation/S9.8_A1_T2.js",
+ "language/expressions/conditional/S11.12_A1.js",
+ "language/expressions/division/S11.5.2_A1.js",
+ "language/expressions/does-not-equals/S11.9.2_A1.js",
+ "language/expressions/does-not-equals/S11.9.2_A6.1.js",
+ "language/expressions/equals/S11.9.1_A1.js",
+ "language/expressions/equals/S11.9.1_A6.1.js",
+ "language/expressions/greater-than/S11.8.2_A1.js",
+ "language/expressions/greater-than-or-equal/S11.8.4_A1.js",
+ "language/expressions/grouping/S11.1.6_A1.js",
+ "language/expressions/in/S11.8.7_A1.js",
+ "language/expressions/instanceof/primitive-prototype-with-object.js",
+ "language/expressions/instanceof/prototype-getter-with-object.js",
+ "language/expressions/instanceof/prototype-getter-with-object-throws.js",
+ "language/expressions/instanceof/S11.8.6_A1.js",
+ "language/expressions/instanceof/S11.8.6_A7_T3.js",
+ "language/expressions/instanceof/S15.3.5.3_A1_T1.js",
+ "language/expressions/instanceof/S15.3.5.3_A1_T2.js",
+ "language/expressions/instanceof/S15.3.5.3_A1_T6.js",
+ "language/expressions/instanceof/S15.3.5.3_A1_T8.js",
+ "language/expressions/instanceof/S15.3.5.3_A2_T5.js",
+ "language/expressions/instanceof/S15.3.5.3_A3_T1.js",
+ "language/expressions/left-shift/S11.7.1_A1.js",
+ "language/expressions/less-than/S11.8.1_A1.js",
+ "language/expressions/less-than-or-equal/S11.8.3_A1.js",
+ "language/expressions/less-than-or-equal/S11.8.3_A3.2_T1.2.js",
+ "language/expressions/logical-and/S11.11.1_A1.js",
+ "language/expressions/logical-not/S11.4.9_A1.js",
+ "language/expressions/logical-not/S9.2_A1_T2.js",
+ "language/expressions/logical-not/S9.2_A6_T2.js",
+ "language/expressions/logical-or/S11.11.2_A1.js",
+ "language/expressions/modulus/S11.5.3_A1.js",
+ "language/expressions/modulus/S11.5.3_A3_T1.5.js",
+ "language/expressions/multiplication/S11.5.1_A1.js",
+ "language/expressions/multiplication/S11.5.1_A3_T1.5.js",
+ "language/expressions/new/S11.2.2_A1.1.js",
+ "language/expressions/new/S11.2.2_A1.2.js",
+ "language/expressions/object/11.1.5_4-4-a-3.js",
+ "language/expressions/object/11.1.5_4-4-b-1.js",
+ "language/expressions/object/11.1.5_6-3-1.js",
+ "language/expressions/object/11.1.5_6-3-2.js",
+ "language/expressions/object/11.1.5_7-3-1.js",
+ "language/expressions/object/11.1.5_7-3-2.js",
+ "language/expressions/object/11.1.5-0-1.js",
+ "language/expressions/object/11.1.5-0-2.js",
+ "language/expressions/property-accessors/S11.2.1_A1.1.js",
+ "language/expressions/property-accessors/S11.2.1_A1.2.js",
+ "language/expressions/right-shift/S11.7.2_A1.js",
+ "language/expressions/strict-does-not-equals/S11.9.5_A1.js",
+ "language/expressions/strict-does-not-equals/S11.9.5_A6.1.js",
+ "language/expressions/strict-equals/S11.9.4_A1.js",
+ "language/expressions/strict-equals/S11.9.4_A6.1.js",
+ "language/expressions/subtraction/S11.6.2_A1.js",
+ "language/expressions/super/prop-dot-obj-val-from-eval.js",
+ "language/expressions/super/prop-expr-obj-val-from-eval.js",
+ "language/expressions/this/S11.1.1_A3.2.js",
+ "language/expressions/this/S11.1.1_A4.1.js",
+ "language/expressions/this/S11.1.1_A4.2.js",
+ "language/expressions/typeof/syntax.js",
+ "language/expressions/unary-minus/S11.4.7_A1.js",
+ "language/expressions/unary-plus/S11.4.6_A1.js",
+ "language/expressions/unary-plus/S9.3_A1_T2.js",
+ "language/expressions/unsigned-right-shift/S11.7.3_A1.js",
+ "language/expressions/void/S11.4.2_A1.js",
+ "language/function-code/10.4.3-1-13gs.js",
+ "language/function-code/10.4.3-1-13-s.js",
+ "language/function-code/10.4.3-1-15gs.js",
+ "language/function-code/10.4.3-1-15-s.js",
+ "language/function-code/10.4.3-1-17gs.js",
+ "language/function-code/10.4.3-1-17-s.js",
+ "language/function-code/10.4.3-1-19gs.js",
+ "language/function-code/10.4.3-1-19-s.js",
+ "language/function-code/10.4.3-1-63gs.js",
+ "language/function-code/10.4.3-1-63-s.js",
+ "language/function-code/10.4.3-1-64gs.js",
+ "language/function-code/10.4.3-1-64-s.js",
+ "language/function-code/10.4.3-1-65gs.js",
+ "language/function-code/10.4.3-1-65-s.js",
+ "language/global-code/script-decl-func-dups.js",
+ "language/global-code/script-decl-lex.js",
+ "language/global-code/script-decl-var.js",
+ "language/global-code/script-decl-func-err-non-extensible.js",
+ "language/global-code/script-decl-func-err-non-configurable.js",
+ "language/global-code/script-decl-func.js",
+ "language/global-code/script-decl-lex-restricted-global.js",
+ "language/global-code/script-decl-lex-var.js",
+ "language/global-code/script-decl-var-err.js",
+ "language/line-terminators/S7.3_A5.4.js",
+ "language/line-terminators/S7.3_A7_T1.js",
+ "language/line-terminators/S7.3_A7_T2.js",
+ "language/line-terminators/S7.3_A7_T3.js",
+ "language/line-terminators/S7.3_A7_T4.js",
+ "language/line-terminators/S7.3_A7_T5.js",
+ "language/line-terminators/S7.3_A7_T6.js",
+ "language/line-terminators/S7.3_A7_T7.js",
+ "language/line-terminators/S7.3_A7_T8.js",
+ "language/literals/regexp/S7.8.5_A1.1_T2.js",
+ "language/literals/regexp/S7.8.5_A1.4_T2.js",
+ "language/literals/regexp/S7.8.5_A2.1_T2.js",
+ "language/literals/regexp/S7.8.5_A2.4_T2.js",
+ "language/literals/string/legacy-non-octal-escape-sequence-strict.js",
+ "language/statements/break/S12.8_A7.js",
+ "language/statements/const/cptn-value.js",
+ "language/statements/continue/S12.7_A7.js",
+ "language/statements/do-while/cptn-abrupt-empty.js",
+ "language/statements/do-while/cptn-normal.js",
+ "language/statements/do-while/S12.6.1_A3.js",
+ "language/statements/do-while/S12.6.1_A5.js",
+ "language/statements/do-while/S12.6.1_A7.js",
+ "language/statements/do-while/S12.6.1_A8.js",
+ "language/statements/empty/cptn-value.js",
+ "language/statements/expression/12.4_A2_T2.js",
+ "language/statements/expression/S12.4_A2_T1.js",
+ "language/statements/expression/S12.4_A2_T2.js",
+ "language/statements/for/cptn-decl-expr-iter.js",
+ "language/statements/for/cptn-decl-expr-no-iter.js",
+ "language/statements/for/cptn-expr-expr-iter.js",
+ "language/statements/for/cptn-expr-expr-no-iter.js",
+ "language/statements/for/head-init-expr-check-empty-inc-empty-completion.js",
+ "language/statements/for/head-init-var-check-empty-inc-empty-completion.js",
+ "language/statements/for/S12.6.3_A5.js",
+ "language/statements/for-in/cptn-decl-abrupt-empty.js",
+ "language/statements/for-in/cptn-decl-itr.js",
+ "language/statements/for-in/cptn-decl-skip-itr.js",
+ "language/statements/for-in/cptn-decl-zero-itr.js",
+ "language/statements/for-in/cptn-expr-abrupt-empty.js",
+ "language/statements/for-in/cptn-expr-itr.js",
+ "language/statements/for-in/cptn-expr-skip-itr.js",
+ "language/statements/for-in/cptn-expr-zero-itr.js",
+ "language/statements/for-in/head-let-fresh-binding-per-iteration.js",
+ "language/statements/for-in/S12.6.4_A3.1.js",
+ "language/statements/for-in/S12.6.4_A3.js",
+ "language/statements/for-in/S12.6.4_A4.1.js",
+ "language/statements/for-in/S12.6.4_A4.js",
+ "language/statements/for-of/cptn-decl-abrupt-empty.js",
+ "language/statements/for-of/cptn-decl-itr.js",
+ "language/statements/for-of/cptn-decl-no-itr.js",
+ "language/statements/for-of/cptn-expr-abrupt-empty.js",
+ "language/statements/for-of/cptn-expr-itr.js",
+ "language/statements/for-of/cptn-expr-no-itr.js",
+ "language/statements/for-of/head-let-fresh-binding-per-iteration.js",
+ "language/statements/function/13.0-12-s.js",
+ "language/statements/function/13.0-8-s.js",
+ "language/statements/function/13.1-2-s.js",
+ "language/statements/function/13.1-4-s.js",
+ "language/statements/function/13.2-10-s.js",
+ "language/statements/function/13.2-11-s.js",
+ "language/statements/function/13.2-12-s.js",
+ "language/statements/function/13.2-13-s.js",
+ "language/statements/function/13.2-14-s.js",
+ "language/statements/function/13.2-15-s.js",
+ "language/statements/function/13.2-16-s.js",
+ "language/statements/function/13.2-17-s.js",
+ "language/statements/function/13.2-18-s.js",
+ "language/statements/function/13.2-19-s.js",
+ "language/statements/function/name-unicode.js",
+ "language/statements/function/S13.2.2_A8_T3.js",
+ "language/statements/if/cptn-else-false-nrml.js",
+ "language/statements/if/cptn-else-true-nrml.js",
+ "language/statements/if/cptn-empty-statement.js",
+ "language/statements/if/cptn-no-else-false.js",
+ "language/statements/if/cptn-no-else-true-nrml.js",
+ "language/statements/if/S12.5_A2.js",
+ "language/statements/labeled/cptn-break.js",
+ "language/statements/labeled/cptn-nrml.js",
+ "language/statements/let/cptn-value.js",
+ "language/statements/let/syntax/let-closure-inside-condition.js",
+ "language/statements/let/syntax/let-closure-inside-initialization.js",
+ "language/statements/let/syntax/let-closure-inside-next-expression.js",
+ "language/statements/let/syntax/let-iteration-variable-is-freshly-allocated-for-each-iteration-multi-let-binding.js",
+ "language/statements/let/syntax/let-iteration-variable-is-freshly-allocated-for-each-iteration-single-let-binding.js",
+ "language/statements/switch/cptn-a-abrupt-empty.js",
+ "language/statements/switch/cptn-abrupt-empty.js",
+ "language/statements/switch/cptn-a-fall-thru-abrupt-empty.js",
+ "language/statements/switch/cptn-a-fall-thru-nrml.js",
+ "language/statements/switch/cptn-b-abrupt-empty.js",
+ "language/statements/switch/cptn-b-fall-thru-abrupt-empty.js",
+ "language/statements/switch/cptn-b-fall-thru-nrml.js",
+ "language/statements/switch/cptn-b-final.js",
+ "language/statements/switch/cptn-dflt-abrupt-empty.js",
+ "language/statements/switch/cptn-dflt-b-abrupt-empty.js",
+ "language/statements/switch/cptn-dflt-b-fall-thru-abrupt-empty.js",
+ "language/statements/switch/cptn-dflt-b-fall-thru-nrml.js",
+ "language/statements/switch/cptn-dflt-b-final.js",
+ "language/statements/switch/cptn-dflt-fall-thru-abrupt-empty.js",
+ "language/statements/switch/cptn-dflt-fall-thru-nrml.js",
+ "language/statements/switch/cptn-dflt-final.js",
+ "language/statements/switch/cptn-no-dflt-match-abrupt-empty.js",
+ "language/statements/switch/cptn-no-dflt-match-fall-thru-abrupt-empty.js",
+ "language/statements/switch/cptn-no-dflt-match-fall-thru-nrml.js",
+ "language/statements/switch/cptn-no-dflt-match-final.js",
+ "language/statements/switch/cptn-no-dflt-no-match.js",
+ "language/statements/try/cptn-catch.js",
+ "language/statements/try/cptn-finally-from-catch.js",
+ "language/statements/try/cptn-finally-skip-catch.js",
+ "language/statements/try/cptn-finally-wo-catch.js",
+ "language/statements/try/cptn-try.js",
+ "language/statements/variable/12.2.1-10-s.js",
+ "language/statements/variable/12.2.1-16-s.js",
+ "language/statements/variable/12.2.1-17-s.js",
+ "language/statements/variable/12.2.1-18-s.js",
+ "language/statements/variable/12.2.1-19-s.js",
+ "language/statements/variable/12.2.1-20-s.js",
+ "language/statements/variable/12.2.1-21-s.js",
+ "language/statements/variable/12.2.1-22-s.js",
+ "language/statements/variable/12.2.1-2-s.js",
+ "language/statements/variable/12.2.1-3-s.js",
+ "language/statements/variable/12.2.1-4-s.js",
+ "language/statements/variable/12.2.1-5-s.js",
+ "language/statements/variable/12.2.1-6-s.js",
+ "language/statements/variable/12.2.1-7-s.js",
+ "language/statements/variable/12.2.1-8-s.js",
+ "language/statements/variable/12.2.1-9-s.js",
+ "language/statements/variable/cptn-value.js",
+ "language/statements/while/cptn-abrupt-empty.js",
+ "language/statements/while/cptn-iter.js",
+ "language/statements/while/cptn-no-iter.js",
+ "language/statements/while/S12.6.2_A2.js",
+ "language/statements/while/S12.6.2_A3.js",
+ "language/statements/while/S12.6.2_A5.js",
+ "language/statements/while/S12.6.2_A7.js",
+ "language/statements/while/S12.6.2_A8.js",
+ "language/statements/with/12.10.1-10-s.js",
+ "language/statements/with/12.10.1-5-s.js",
+ "language/white-space/comment-multi-form-feed.js",
+ "language/white-space/comment-multi-horizontal-tab.js",
+ "language/white-space/comment-multi-nbsp.js",
+ "language/white-space/comment-multi-space.js",
+ "language/white-space/comment-multi-vertical-tab.js",
+ "language/white-space/comment-single-form-feed.js",
+ "language/white-space/comment-single-horizontal-tab.js",
+ "language/white-space/comment-single-nbsp.js",
+ "language/white-space/comment-single-space.js",
+ "language/white-space/comment-single-vertical-tab.js",
+ "language/white-space/string-form-feed.js",
+ "language/white-space/string-horizontal-tab.js",
+ "language/white-space/string-nbsp.js",
+ "language/white-space/string-space.js",
+ "language/white-space/string-vertical-tab.js",
+ "language/expressions/super/prop-dot-cls-val-from-eval.js",
+ "language/expressions/super/prop-expr-cls-val-from-eval.js",
+ "language/global-code/script-decl-lex-lex.js",
+ "language/eval-code/indirect/realm.js",
+ "language/expressions/generators/eval-body-proto-realm.js",
+ "language/statements/class/subclass/builtin-objects/GeneratorFunction/super-must-be-called.js",
+ "language/statements/class/subclass/builtin-objects/Function/super-must-be-called.js",
+ "intl402/RelativeTimeFormat/constructor/constructor/proto-from-ctor-realm.js",
+ "intl402/Collator/proto-from-ctor-realm.js",
+ "intl402/DisplayNames/proto-from-ctor-realm.js",
+ "intl402/DateTimeFormat/proto-from-ctor-realm.js",
+ "intl402/ListFormat/constructor/constructor/proto-from-ctor-realm.js",
+ "intl402/Segmenter/constructor/constructor/proto-from-ctor-realm.js",
+ "intl402/Segmenter/proto-from-ctor-realm.js",
+ "intl402/NumberFormat/proto-from-ctor-realm.js",
+ "intl402/Locale/proto-from-ctor-realm.js",
+ "intl402/PluralRules/proto-from-ctor-realm.js",
+ "built-ins/WeakMap/proto-from-ctor-realm.js",
+ "built-ins/Object/proto-from-ctor-realm.js",
+ "built-ins/TypedArrayConstructors/ctors-bigint/object-arg/proto-from-ctor-realm.js",
+ "built-ins/TypedArrayConstructors/ctors-bigint/buffer-arg/proto-from-ctor-realm.js",
+ "built-ins/TypedArrayConstructors/ctors-bigint/buffer-arg/proto-from-ctor-realm-sab.js",
+ "built-ins/TypedArrayConstructors/ctors-bigint/no-args/proto-from-ctor-realm.js",
+ "built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/proto-from-ctor-realm.js",
+ "built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/other-ctor-buffer-ctor-custom-species-proto-from-ctor-realm.js",
+ "built-ins/TypedArrayConstructors/ctors-bigint/typedarray-arg/same-ctor-buffer-ctor-species-custom-proto-from-ctor-realm.js",
+ "built-ins/TypedArrayConstructors/ctors-bigint/length-arg/proto-from-ctor-realm.js",
+ "built-ins/TypedArrayConstructors/ctors/object-arg/proto-from-ctor-realm.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/proto-from-ctor-realm.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/proto-from-ctor-realm-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/no-args/proto-from-ctor-realm.js",
+ "built-ins/TypedArrayConstructors/ctors/typedarray-arg/proto-from-ctor-realm.js",
+ "built-ins/TypedArrayConstructors/ctors/typedarray-arg/other-ctor-buffer-ctor-custom-species-proto-from-ctor-realm.js",
+ "built-ins/TypedArrayConstructors/ctors/typedarray-arg/same-ctor-buffer-ctor-species-custom-proto-from-ctor-realm.js",
+ "built-ins/TypedArrayConstructors/ctors/length-arg/proto-from-ctor-realm.js",
+ "built-ins/TypedArrayConstructors/internals/GetOwnProperty/BigInt/detached-buffer-realm.js",
+ "built-ins/TypedArrayConstructors/internals/GetOwnProperty/detached-buffer-realm.js",
+ "built-ins/TypedArrayConstructors/internals/HasProperty/BigInt/detached-buffer-realm.js",
+ "built-ins/TypedArrayConstructors/internals/HasProperty/detached-buffer-realm.js",
+ "built-ins/TypedArrayConstructors/internals/Get/BigInt/detached-buffer-realm.js",
+ "built-ins/TypedArrayConstructors/internals/Get/detached-buffer-realm.js",
+ "built-ins/TypedArrayConstructors/internals/Delete/BigInt/detached-buffer-realm.js",
+ "built-ins/TypedArrayConstructors/internals/Delete/detached-buffer-realm.js",
+ "built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-realm.js",
+ "built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-realm.js",
+ "built-ins/TypedArrayConstructors/internals/Set/BigInt/detached-buffer-realm.js",
+ "built-ins/TypedArrayConstructors/internals/Set/detached-buffer-realm.js",
+ "built-ins/Date/proto-from-ctor-realm-one.js",
+ "built-ins/Date/proto-from-ctor-realm-two.js",
+ "built-ins/Date/proto-from-ctor-realm-zero.js",
+ "built-ins/DataView/proto-from-ctor-realm.js",
+ "built-ins/DataView/proto-from-ctor-realm-sab.js",
+ "built-ins/RegExp/prototype/Symbol.split/splitter-proto-from-ctor-realm.js",
+ "built-ins/RegExp/prototype/Symbol.split/splitter-proto-from-ctor-realm.js",
+ "built-ins/RegExp/proto-from-ctor-realm.js",
+ "built-ins/Boolean/proto-from-ctor-realm.js",
+ "built-ins/Map/proto-from-ctor-realm.js",
+ "built-ins/Number/proto-from-ctor-realm.js",
+ "built-ins/ArrayBuffer/proto-from-ctor-realm.js",
+ "built-ins/AsyncGeneratorFunction/proto-from-ctor-realm.js",
+ "built-ins/AsyncGeneratorFunction/proto-from-ctor-realm-prototype.js",
+ "built-ins/SharedArrayBuffer/proto-from-ctor-realm.js",
+ "built-ins/NativeErrors/ReferenceError/proto-from-ctor-realm.js",
+ "built-ins/NativeErrors/URIError/proto-from-ctor-realm.js",
+ "built-ins/NativeErrors/TypeError/proto-from-ctor-realm.js",
+ "built-ins/NativeErrors/RangeError/proto-from-ctor-realm.js",
+ "built-ins/NativeErrors/SyntaxError/proto-from-ctor-realm.js",
+ "built-ins/WeakSet/proto-from-ctor-realm.js",
+ "built-ins/GeneratorFunction/proto-from-ctor-realm.js",
+ "built-ins/GeneratorFunction/proto-from-ctor-realm-prototype.js",
+ "built-ins/Function/prototype/bind/proto-from-ctor-realm.js",
+ "built-ins/Function/proto-from-ctor-realm.js",
+ "built-ins/Set/proto-from-ctor-realm.js",
+ "built-ins/String/proto-from-ctor-realm.js",
+ "built-ins/Array/from/proto-from-ctor-realm.js",
+ "built-ins/Array/proto-from-ctor-realm-one.js",
+ "built-ins/Array/proto-from-ctor-realm-two.js",
+ "built-ins/Array/proto-from-ctor-realm-zero.js",
+ "built-ins/Error/proto-from-ctor-realm.js",
+ "built-ins/Promise/proto-from-ctor-realm.js",
+ "built-ins/Proxy/get-fn-realm.js",
+ "built-ins/Proxy/construct/trap-is-undefined-proto-from-cross-realm-newtarget.js",
+ "built-ins/Proxy/construct/trap-is-undefined-proto-from-newtarget-realm.js",
+ "built-ins/Array/of/proto-from-ctor-realm.js",
+ "intl402/DisplayNames/ctor-custom-get-prototype-poison-throws.js",
+ "intl402/DisplayNames/ctor-custom-prototype.js",
+ "intl402/Segmenter/ctor-custom-prototype.js",
+ "language/expressions/super/realm.js",
+ "built-ins/ThrowTypeError/distinct-cross-realm.js",
+ "built-ins/Function/call-bind-this-realm-undef.js",
+ "built-ins/Function/prototype/bind/get-fn-realm-recursive.js",
+ "built-ins/Function/prototype/bind/get-fn-realm.js",
+ "built-ins/Function/prototype/apply/argarray-not-object-realm.js",
+ "built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js",
+ "built-ins/Function/internals/Construct/derived-return-val-realm.js",
+ "built-ins/Function/internals/Construct/base-ctor-revoked-proxy-realm.js",
+ "built-ins/Function/internals/Call/class-ctor-realm.js",
+ "built-ins/Proxy/get-fn-realm-recursive.js"
+ ]
+ },
+ {
+ "reason": " Not support Function. Forbidden using new Function()/Function().",
+ "files": [
+ "built-ins/String/prototype/replace/S15.5.4.11_A1_T5.js",
+ "built-ins/String/prototype/replace/S15.5.4.11_A1_T6.js",
+ "built-ins/String/prototype/slice/S15.5.4.13_A1_T5.js",
+ "built-ins/String/prototype/substring/S15.5.4.15_A1_T5.js",
+ "built-ins/String/prototype/replace/S15.5.4.11_A1_T5.js",
+ "built-ins/String/prototype/replace/S15.5.4.11_A1_T6.js",
+ "built-ins/String/prototype/slice/S15.5.4.13_A1_T5.js",
+ "built-ins/String/prototype/substring/S15.5.4.15_A1_T5.js",
+ "language/expressions/instanceof/S15.3.5.3_A1_T1.js",
+ "language/expressions/instanceof/S15.3.5.3_A1_T2.js",
+ "language/expressions/instanceof/S15.3.5.3_A1_T3.js",
+ "language/expressions/instanceof/S15.3.5.3_A1_T4.js",
+ "language/expressions/instanceof/S15.3.5.3_A1_T5.js",
+ "language/expressions/instanceof/S15.3.5.3_A1_T6.js",
+ "language/expressions/instanceof/S15.3.5.3_A1_T7.js",
+ "language/expressions/instanceof/S15.3.5.3_A1_T8.js",
+ "language/expressions/instanceof/S15.3.5.3_A2_T2.js",
+ "language/expressions/instanceof/S15.3.5.3_A2_T6.js",
+ "language/expressions/instanceof/S15.3.5.3_A2_T5.js",
+ "language/expressions/instanceof/S15.3.5.3_A3_T2.js",
+ "language/statements/function/13.0_4-17gs.js"
+ ]
+ },
+ {
+ "reason": "Not support tco",
+ "files": [
+ "language/expressions/call/tco-cross-realm-class-derived-construct.js",
+ "language/expressions/call/tco-cross-realm-fun-construct.js"
+ ]
+ },
+ {
+ "reason": "Not support sharedArrayBuffer and detacheArraybuffer",
+ "files": [
+ "built-ins/ArrayBuffer/prototype/byteLength/detached-buffer.js",
+ "built-ins/ArrayBuffer/prototype/byteLength/this-is-sharedarraybuffer.js",
+ "built-ins/ArrayBuffer/prototype/slice/this-is-sharedarraybuffer.js",
+ "built-ins/DataView/buffer-does-not-have-arraybuffer-data-throws-sab.js",
+ "built-ins/DataView/buffer-reference-sab.js",
+ "built-ins/DataView/byteoffset-is-negative-throws-sab.js",
+ "built-ins/DataView/custom-proto-access-detaches-buffer.js",
+ "built-ins/DataView/custom-proto-access-throws-sab.js",
+ "built-ins/DataView/custom-proto-if-not-object-fallbacks-to-default-prototype-sab.js",
+ "built-ins/DataView/custom-proto-if-object-is-used-sab.js",
+ "built-ins/DataView/custom-proto-if-not-object-fallbacks-to-default-prototype.js",
+ "built-ins/DataView/defined-bytelength-and-byteoffset-sab.js",
+ "built-ins/DataView/defined-byteoffset-sab.js",
+ "built-ins/DataView/defined-byteoffset-undefined-bytelength-sab.js",
+ "built-ins/DataView/detached-buffer.js",
+ "built-ins/DataView/excessive-bytelength-throws-sab.js",
+ "built-ins/DataView/excessive-byteoffset-throws-sab.js",
+ "built-ins/DataView/instance-extensibility-sab.js",
+ "built-ins/DataView/negative-bytelength-throws-sab.js",
+ "built-ins/DataView/negative-byteoffset-throws-sab.js",
+ "built-ins/DataView/newtarget-undefined-throws-sab.js",
+ "built-ins/DataView/proto-from-ctor-realm-sab.js",
+ "built-ins/DataView/prototype/buffer/detached-buffer.js",
+ "built-ins/DataView/prototype/buffer/return-buffer-sab.js",
+ "built-ins/DataView/prototype/buffer/this-has-no-dataview-internal-sab.js",
+ "built-ins/DataView/prototype/byteLength/detached-buffer.js",
+ "built-ins/DataView/prototype/byteLength/instance-has-detached-buffer.js",
+ "built-ins/DataView/prototype/byteLength/return-bytelength-sab.js",
+ "built-ins/DataView/prototype/byteLength/this-has-no-dataview-internal-sab.js",
+ "built-ins/DataView/prototype/byteOffset/detached-buffer.js",
+ "built-ins/DataView/prototype/byteOffset/return-byteoffset-sab.js",
+ "built-ins/DataView/prototype/byteOffset/this-has-no-dataview-internal-sab.js",
+ "built-ins/DataView/prototype/getFloat32/detached-buffer.js",
+ "built-ins/DataView/prototype/getFloat32/detached-buffer-after-toindex-byteoffset.js",
+ "built-ins/DataView/prototype/getFloat32/detached-buffer-before-outofrange-byteoffset.js",
+ "built-ins/DataView/prototype/getFloat64/detached-buffer.js",
+ "built-ins/DataView/prototype/getFloat64/detached-buffer-after-toindex-byteoffset.js",
+ "built-ins/DataView/prototype/getFloat64/detached-buffer-before-outofrange-byteoffset.js",
+ "built-ins/DataView/prototype/getInt16/detached-buffer.js",
+ "built-ins/DataView/prototype/getInt16/detached-buffer-after-toindex-byteoffset.js",
+ "built-ins/DataView/prototype/getInt16/detached-buffer-before-outofrange-byteoffset.js",
+ "built-ins/DataView/prototype/getInt32/detached-buffer.js",
+ "built-ins/DataView/prototype/getInt32/detached-buffer-after-toindex-byteoffset.js",
+ "built-ins/DataView/prototype/getInt32/detached-buffer-before-outofrange-byteoffset.js",
+ "built-ins/DataView/prototype/getInt32/index-is-out-of-range-sab.js",
+ "built-ins/DataView/prototype/getInt32/negative-byteoffset-throws-sab.js",
+ "built-ins/DataView/prototype/getInt32/return-abrupt-from-tonumber-byteoffset-sab.js",
+ "built-ins/DataView/prototype/getInt32/return-abrupt-from-tonumber-byteoffset-symbol-sab.js",
+ "built-ins/DataView/prototype/getInt32/return-value-clean-arraybuffer-sab.js",
+ "built-ins/DataView/prototype/getInt32/return-values-custom-offset-sab.js",
+ "built-ins/DataView/prototype/getInt32/return-values-sab.js",
+ "built-ins/DataView/prototype/getInt32/this-has-no-dataview-internal-sab.js",
+ "built-ins/DataView/prototype/getInt32/to-boolean-littleendian-sab.js",
+ "built-ins/DataView/prototype/getInt32/toindex-byteoffset-sab.js",
+ "built-ins/DataView/prototype/getInt8/detached-buffer.js",
+ "built-ins/DataView/prototype/getInt8/detached-buffer-after-toindex-byteoffset.js",
+ "built-ins/DataView/prototype/getInt8/detached-buffer-before-outofrange-byteoffset.js",
+ "built-ins/DataView/prototype/getUint16/detached-buffer.js",
+ "built-ins/DataView/prototype/getUint16/detached-buffer-after-toindex-byteoffset.js",
+ "built-ins/DataView/prototype/getUint16/detached-buffer-before-outofrange-byteoffset.js",
+ "built-ins/DataView/prototype/getUint32/detached-buffer.js",
+ "built-ins/DataView/prototype/getUint32/detached-buffer-after-toindex-byteoffset.js",
+ "built-ins/DataView/prototype/getUint32/detached-buffer-before-outofrange-byteoffset.js",
+ "built-ins/DataView/prototype/getUint8/detached-buffer.js",
+ "built-ins/DataView/prototype/getUint8/detached-buffer-after-toindex-byteoffset.js",
+ "built-ins/DataView/prototype/getUint8/detached-buffer-before-outofrange-byteoffset.js",
+ "built-ins/DataView/prototype/setFloat32/detached-buffer.js",
+ "built-ins/DataView/prototype/setFloat32/detached-buffer-after-number-value.js",
+ "built-ins/DataView/prototype/setFloat32/detached-buffer-after-toindex-byteoffset.js",
+ "built-ins/DataView/prototype/setFloat32/detached-buffer-before-outofrange-byteoffset.js",
+ "built-ins/DataView/prototype/setFloat64/detached-buffer.js",
+ "built-ins/DataView/prototype/setFloat64/detached-buffer-after-number-value.js",
+ "built-ins/DataView/prototype/setFloat64/detached-buffer-after-toindex-byteoffset.js",
+ "built-ins/DataView/prototype/setFloat64/detached-buffer-before-outofrange-byteoffset.js",
+ "built-ins/DataView/prototype/setInt16/detached-buffer.js",
+ "built-ins/DataView/prototype/setInt16/detached-buffer-after-number-value.js",
+ "built-ins/DataView/prototype/setInt16/detached-buffer-after-toindex-byteoffset.js",
+ "built-ins/DataView/prototype/setInt16/detached-buffer-before-outofrange-byteoffset.js",
+ "built-ins/DataView/prototype/setInt32/detached-buffer.js",
+ "built-ins/DataView/prototype/setInt32/detached-buffer-after-number-value.js",
+ "built-ins/DataView/prototype/setInt32/detached-buffer-after-toindex-byteoffset.js",
+ "built-ins/DataView/prototype/setInt32/detached-buffer-before-outofrange-byteoffset.js",
+ "built-ins/DataView/prototype/setInt8/detached-buffer.js",
+ "built-ins/DataView/prototype/setInt8/detached-buffer-after-number-value.js",
+ "built-ins/DataView/prototype/setInt8/detached-buffer-after-toindex-byteoffset.js",
+ "built-ins/DataView/prototype/setInt8/detached-buffer-before-outofrange-byteoffset.js",
+ "built-ins/DataView/prototype/setUint16/detached-buffer.js",
+ "built-ins/DataView/prototype/setUint16/detached-buffer-after-number-value.js",
+ "built-ins/DataView/prototype/setUint16/detached-buffer-after-toindex-byteoffset.js",
+ "built-ins/DataView/prototype/setUint16/detached-buffer-before-outofrange-byteoffset.js",
+ "built-ins/DataView/prototype/setUint32/detached-buffer.js",
+ "built-ins/DataView/prototype/setUint32/detached-buffer-after-number-value.js",
+ "built-ins/DataView/prototype/setUint32/detached-buffer-after-toindex-byteoffset.js",
+ "built-ins/DataView/prototype/setUint32/detached-buffer-before-outofrange-byteoffset.js",
+ "built-ins/DataView/prototype/setUint8/detached-buffer.js",
+ "built-ins/DataView/prototype/setUint8/detached-buffer-after-number-value.js",
+ "built-ins/DataView/prototype/setUint8/detached-buffer-after-toindex-byteoffset.js",
+ "built-ins/DataView/prototype/setUint8/detached-buffer-before-outofrange-byteoffset.js",
+ "built-ins/DataView/return-abrupt-tonumber-bytelength-sab.js",
+ "built-ins/DataView/return-abrupt-tonumber-bytelength-symbol-sab.js",
+ "built-ins/DataView/return-abrupt-tonumber-byteoffset-sab.js",
+ "built-ins/DataView/return-abrupt-tonumber-byteoffset-symbol-sab.js",
+ "built-ins/DataView/return-instance-sab.js",
+ "built-ins/DataView/toindex-bytelength-sab.js",
+ "built-ins/DataView/toindex-byteoffset-sab.js",
+ "built-ins/TypedArray/prototype/buffer/detached-buffer.js",
+ "built-ins/TypedArray/prototype/byteLength/detached-buffer.js",
+ "built-ins/TypedArray/prototype/byteOffset/detached-buffer.js",
+ "built-ins/TypedArray/prototype/copyWithin/coerced-values-end-detached.js",
+ "built-ins/TypedArray/prototype/copyWithin/coerced-values-end-detached-prototype.js",
+ "built-ins/TypedArray/prototype/copyWithin/coerced-values-start-detached.js",
+ "built-ins/TypedArray/prototype/copyWithin/detached-buffer.js",
+ "built-ins/TypedArray/prototype/entries/detached-buffer.js",
+ "built-ins/TypedArray/prototype/every/detached-buffer.js",
+ "built-ins/TypedArray/prototype/fill/detached-buffer.js",
+ "built-ins/TypedArray/prototype/filter/callbackfn-detachbuffer.js",
+ "built-ins/TypedArray/prototype/filter/detached-buffer.js",
+ "built-ins/TypedArray/prototype/find/detached-buffer.js",
+ "built-ins/TypedArray/prototype/findIndex/detached-buffer.js",
+ "built-ins/TypedArray/prototype/forEach/detached-buffer.js",
+ "built-ins/TypedArray/prototype/includes/detached-buffer.js",
+ "built-ins/TypedArray/prototype/indexOf/detached-buffer.js",
+ "built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js",
+ "built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js",
+ "built-ins/TypedArray/prototype/join/detached-buffer.js",
+ "built-ins/TypedArray/prototype/join/detached-buffer-during-fromIndex-returns-single-comma.js",
+ "built-ins/TypedArray/prototype/keys/detached-buffer.js",
+ "built-ins/TypedArray/prototype/lastIndexOf/detached-buffer.js",
+ "built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js",
+ "built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js",
+ "built-ins/TypedArray/prototype/length/detached-buffer.js",
+ "built-ins/TypedArray/prototype/map/callbackfn-detachbuffer.js",
+ "built-ins/TypedArray/prototype/map/detached-buffer.js",
+ "built-ins/TypedArray/prototype/reduce/detached-buffer.js",
+ "built-ins/TypedArray/prototype/reduceRight/detached-buffer.js",
+ "built-ins/TypedArray/prototype/reverse/detached-buffer.js",
+ "built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-get-src-value-throws.js",
+ "built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-tointeger-offset-throws.js",
+ "built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-throws.js",
+ "built-ins/TypedArray/prototype/set/src-typedarray-big-throws.js",
+ "built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type-conversions-sab.js",
+ "built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type-sab.js",
+ "built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-same-type-sab.js",
+ "built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-same-type-sab.js",
+ "built-ins/TypedArray/prototype/set/typedarray-arg-srcbuffer-detached-during-tointeger-offset-throws.js",
+ "built-ins/TypedArray/prototype/set/typedarray-arg-targetbuffer-detached-during-tointeger-offset-throws.js",
+ "built-ins/TypedArray/prototype/slice/detached-buffer.js",
+ "built-ins/TypedArray/prototype/slice/detached-buffer-custom-ctor-other-targettype.js",
+ "built-ins/TypedArray/prototype/slice/detached-buffer-custom-ctor-same-targettype.js",
+ "built-ins/TypedArray/prototype/slice/detached-buffer-get-ctor.js",
+ "built-ins/TypedArray/prototype/slice/detached-buffer-speciesctor-get-species-custom-ctor-throws.js",
+ "built-ins/TypedArray/prototype/slice/detached-buffer-zero-count-custom-ctor-other-targettype.js",
+ "built-ins/TypedArray/prototype/slice/detached-buffer-zero-count-custom-ctor-same-targettype.js",
+ "built-ins/TypedArray/prototype/some/detached-buffer.js",
+ "built-ins/TypedArray/prototype/sort/detached-buffer.js",
+ "built-ins/TypedArray/prototype/sort/detached-buffer-comparefn.js",
+ "built-ins/TypedArray/prototype/sort/detached-buffer-comparefn-coerce.js",
+ "built-ins/TypedArray/prototype/sort/sort-tonumber.js",
+ "built-ins/TypedArray/prototype/subarray/detached-buffer.js",
+ "built-ins/TypedArray/prototype/subarray/result-is-new-instance-with-shared-buffer.js",
+ "built-ins/TypedArray/prototype/Symbol.toStringTag/detached-buffer.js",
+ "built-ins/TypedArray/prototype/toLocaleString/detached-buffer.js",
+ "built-ins/TypedArray/prototype/toString/detached-buffer.js",
+ "built-ins/TypedArray/prototype/values/detached-buffer.js",
+ "built-ins/TypedArray/prototype/every/callbackfn-detachbuffer.js",
+ "built-ins/TypedArray/prototype/find/predicate-may-detach-buffer.js",
+ "built-ins/TypedArray/prototype/findIndex/predicate-may-detach-buffer.js",
+ "built-ins/TypedArray/prototype/forEach/callbackfn-detachbuffer.js",
+ "built-ins/TypedArray/prototype/reduce/callbackfn-detachbuffer.js",
+ "built-ins/TypedArray/prototype/reduceRight/callbackfn-detachbuffer.js",
+ "built-ins/TypedArray/prototype/some/callbackfn-detachbuffer.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/bufferbyteoffset-throws-from-modulo-element-size-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-is-negative-throws-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-is-negative-zero-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-is-symbol-throws-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-throws-from-modulo-element-size-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-to-number-throws-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/custom-proto-access-throws-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/defined-length-and-offset-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/defined-length-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/defined-negative-length-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/defined-offset-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/detachedbuffer.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/excessive-length-throws-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/excessive-offset-throws-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/invoked-with-undefined-newtarget-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/is-referenced-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/length-access-throws-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/length-is-symbol-throws-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/new-instance-extensibility-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/returns-new-instance-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/toindex-bytelength-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/toindex-byteoffset-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/typedarray-backed-by-sharedarraybuffer.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/use-custom-proto-if-object-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/use-default-proto-if-custom-proto-is-not-object-sab.js",
+ "built-ins/TypedArrayConstructors/ctors/typedarray-arg/detached-when-species-retrieved-different-type.js",
+ "built-ins/TypedArrayConstructors/ctors/typedarray-arg/detached-when-species-retrieved-same-type.js",
+ "built-ins/TypedArrayConstructors/ctors/typedarray-arg/src-typedarray-big-throws.js",
+ "built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer.js",
+ "built-ins/TypedArrayConstructors/internals/DefineOwnProperty/tonumber-value-detached-buffer.js",
+ "built-ins/TypedArrayConstructors/internals/Delete/detached-buffer.js",
+ "built-ins/TypedArrayConstructors/internals/Delete/detached-buffer-key-is-not-numeric-index.js",
+ "built-ins/TypedArrayConstructors/internals/Delete/detached-buffer-key-is-symbol.js",
+ "built-ins/TypedArrayConstructors/internals/Delete/indexed-value-sab-strict.js",
+ "built-ins/TypedArrayConstructors/internals/Delete/infinity-detached-buffer.js",
+ "built-ins/TypedArrayConstructors/internals/Get/detached-buffer.js",
+ "built-ins/TypedArrayConstructors/internals/Get/detached-buffer-key-is-not-numeric-index.js",
+ "built-ins/TypedArrayConstructors/internals/Get/detached-buffer-key-is-symbol.js",
+ "built-ins/TypedArrayConstructors/internals/Get/indexed-value-sab.js",
+ "built-ins/TypedArrayConstructors/internals/Get/infinity-detached-buffer.js",
+ "built-ins/TypedArrayConstructors/internals/GetOwnProperty/detached-buffer.js",
+ "built-ins/TypedArrayConstructors/internals/GetOwnProperty/detached-buffer-key-is-not-number.js",
+ "built-ins/TypedArrayConstructors/internals/GetOwnProperty/detached-buffer-key-is-symbol.js",
+ "built-ins/TypedArrayConstructors/internals/GetOwnProperty/enumerate-detached-buffer.js",
+ "built-ins/TypedArrayConstructors/internals/HasProperty/detached-buffer.js",
+ "built-ins/TypedArrayConstructors/internals/HasProperty/detached-buffer-key-is-not-number.js",
+ "built-ins/TypedArrayConstructors/internals/HasProperty/detached-buffer-key-is-symbol.js",
+ "built-ins/TypedArrayConstructors/internals/Set/detached-buffer.js",
+ "built-ins/TypedArrayConstructors/internals/Set/detached-buffer-key-is-not-numeric-index.js",
+ "built-ins/TypedArrayConstructors/internals/Set/detached-buffer-key-is-symbol.js",
+ "built-ins/TypedArrayConstructors/internals/Set/tonumber-value-detached-buffer.js",
+ "built-ins/TypedArray/prototype/every/callbackfn-detachbuffer.js",
+ "built-ins/TypedArray/prototype/forEach/callbackfn-detachbuffer.js",
+ "built-ins/TypedArray/prototype/reduce/callbackfn-detachbuffer.js",
+ "built-ins/TypedArray/prototype/reduceRight/callbackfn-detachbuffer.js",
+ "built-ins/TypedArray/prototype/some/callbackfn-detachbuffer.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/byteoffset-to-number-detachbuffer.js",
+ "built-ins/TypedArrayConstructors/ctors/buffer-arg/length-to-number-detachbuffer.js",
+ "built-ins/TypedArray/prototype/fill/coerced-end-detach.js",
+ "built-ins/TypedArray/prototype/fill/coerced-start-detach.js",
+ "built-ins/TypedArray/prototype/fill/coerced-value-detach.js",
+ "built-ins/TypedArray/prototype/find/predicate-may-detach-buffer.js",
+ "built-ins/TypedArray/prototype/findIndex/predicate-may-detach-buffer.js"
+ ]
+ },
+ {
+ "reason": "Not support function.toString() due to Runtime can not obtain Source Code yet.",
+ "files": [
+ "built-ins/RegExp/prototype/exec/S15.10.6.2_A1_T9.js",
+ "built-ins/RegExp/prototype/test/S15.10.6.3_A1_T9.js",
+ "built-ins/String/prototype/trim/15.5.4.20-2-46.js",
+ "built-ins/GeneratorPrototype/constructor.js",
+ "language/expressions/new.target/value-via-reflect-construct.js",
+ "language/expressions/new.target/asi.js",
+ "language/expressions/new.target/value-via-new.js",
+ "language/expressions/new.target/value-via-call.js",
+ "language/expressions/addition/S11.6.1_A2.2_T3.js",
+ "language/expressions/addition/S11.6.1_A3.2_T1.2.js",
+ "language/expressions/bitwise-and/S11.10.1_A3_T1.5.js",
+ "language/expressions/bitwise-not/S11.4.8_A3_T5.js",
+ "language/expressions/bitwise-or/S11.10.3_A3_T1.5.js",
+ "language/expressions/bitwise-xor/S11.10.2_A3_T1.5.js",
+ "language/expressions/division/S11.5.2_A3_T1.5.js",
+ "language/expressions/greater-than/S11.8.2_A3.2_T1.2.js",
+ "language/expressions/greater-than-or-equal/S11.8.4_A3.2_T1.2.js",
+ "language/expressions/left-shift/S11.7.1_A3_T1.5.js",
+ "language/expressions/less-than/S11.8.1_A3.2_T1.2.js",
+ "language/expressions/less-than-or-equal/S11.8.3_A3.2_T1.2.js",
+ "language/expressions/modulus/S11.5.3_A3_T1.5.js",
+ "language/expressions/multiplication/S11.5.1_A3_T1.5.js",
+ "language/expressions/postfix-decrement/S11.3.2_A3_T5.js",
+ "language/expressions/postfix-decrement/S11.3.2_A4_T5.js",
+ "language/expressions/postfix-increment/S11.3.1_A3_T5.js",
+ "language/expressions/postfix-increment/S11.3.1_A4_T5.js",
+ "language/expressions/prefix-decrement/S11.4.5_A3_T5.js",
+ "language/expressions/prefix-decrement/S11.4.5_A4_T5.js",
+ "language/expressions/prefix-increment/S11.4.4_A3_T5.js",
+ "language/expressions/prefix-increment/S11.4.4_A4_T5.js",
+ "language/rest-parameters/with-new-target.js",
+ "language/expressions/right-shift/S11.7.2_A3_T1.5.js",
+ "language/expressions/subtraction/S11.6.2_A3_T1.5.js",
+ "language/expressions/unary-minus/S11.4.7_A3_T5.js",
+ "language/expressions/unary-plus/S11.4.6_A3_T5.js",
+ "language/expressions/unsigned-right-shift/S11.7.3_A3_T1.5.js",
+ "language/statements/switch/S12.11_A1_T4.js",
+ "language/statements/switch/S12.11_A1_T4.js",
+ "built-ins/ArrayBuffer/isView/arg-is-typedarray-subclass-instance.js",
+ "built-ins/Promise/resolve/ctx-ctor.js",
+ "built-ins/Promise/reject/ctx-ctor.js",
+ "built-ins/Promise/race/ctx-ctor.js",
+ "built-ins/Promise/all/ctx-ctor.js",
+ "built-ins/TypedArrayConstructors/ctors/length-arg/use-custom-proto-if-object.js",
+ "built-ins/TypedArrayConstructors/ctors/no-args/use-custom-proto-if-object.js",
+ "built-ins/TypedArrayConstructors/ctors/object-arg/use-custom-proto-if-object.js"
+ ]
+ },
+ {
+ "reason": "AnnexB Feature Supported, Support must be aligned with the ACE",
+ "files": [
+ "annexB/built-ins/RegExp/RegExp-decimal-escape-not-capturing.js",
+ "annexB/built-ins/RegExp/RegExp-control-escape-russian-letter.js",
+ "annexB/built-ins/RegExp/RegExp-leading-escape.js",
+ "annexB/built-ins/RegExp/RegExp-trailing-escape.js",
+ "annexB/built-ins/escape/prop-desc.js",
+ "annexB/built-ins/unescape/prop-desc.js",
+ "annexB/built-ins/Date/prototype/getYear/return-value.js",
+ "annexB/built-ins/Date/prototype/getYear/this-not-date.js",
+ "annexB/built-ins/Date/prototype/getYear/nan.js",
+ "annexB/built-ins/Date/prototype/setYear/this-not-date.js",
+ "annexB/built-ins/Date/prototype/getYear/B.2.4.js",
+ "annexB/built-ins/Date/prototype/setYear/B.2.5.js",
+ "annexB/built-ins/Date/prototype/setYear/this-time-nan.js",
+ "annexB/built-ins/Date/prototype/setYear/this-time-valid.js",
+ "annexB/built-ins/Date/prototype/setYear/time-clip.js",
+ "annexB/built-ins/Date/prototype/setYear/year-nan.js",
+ "annexB/built-ins/Date/prototype/setYear/year-number-absolute.js",
+ "annexB/built-ins/Date/prototype/setYear/year-number-relative.js",
+ "annexB/built-ins/Date/prototype/setYear/year-to-number-err.js",
+ "annexB/built-ins/Date/prototype/toGMTString/value.js",
+ "annexB/built-ins/Date/prototype/toGMTString/prop-desc.js",
+ "annexB/built-ins/escape/escape-above-astral.js",
+ "annexB/built-ins/escape/escape-above.js",
+ "annexB/built-ins/RegExp/prototype/compile/pattern-string-u.js",
+ "annexB/built-ins/String/prototype/substr/surrogate-pairs.js",
+ "annexB/built-ins/Date/prototype/getYear/B.2.4.js",
+ "annexB/built-ins/Date/prototype/getYear/length.js",
+ "annexB/built-ins/Date/prototype/getYear/name.js",
+ "annexB/built-ins/Date/prototype/getYear/nan.js",
+ "annexB/built-ins/Date/prototype/getYear/return-value.js",
+ "annexB/built-ins/Date/prototype/getYear/this-not-date.js",
+ "annexB/built-ins/Date/prototype/setYear/B.2.5.js",
+ "annexB/built-ins/Date/prototype/setYear/length.js",
+ "annexB/built-ins/Date/prototype/setYear/name.js",
+ "annexB/built-ins/Date/prototype/setYear/this-not-date.js",
+ "annexB/built-ins/Date/prototype/setYear/this-time-nan.js",
+ "annexB/built-ins/Date/prototype/setYear/this-time-valid.js",
+ "annexB/built-ins/Date/prototype/setYear/time-clip.js",
+ "annexB/built-ins/Date/prototype/setYear/year-nan.js",
+ "annexB/built-ins/Date/prototype/setYear/year-number-absolute.js",
+ "annexB/built-ins/Date/prototype/setYear/year-number-relative.js",
+ "annexB/built-ins/Date/prototype/setYear/year-to-number-err.js",
+ "annexB/built-ins/Date/prototype/toGMTString/prop-desc.js",
+ "annexB/built-ins/Date/prototype/toGMTString/value.js",
+ "annexB/built-ins/escape/empty-string.js",
+ "annexB/built-ins/escape/escape-below.js",
+ "annexB/built-ins/escape/length.js",
+ "annexB/built-ins/escape/name.js",
+ "annexB/built-ins/escape/prop-desc.js",
+ "annexB/built-ins/escape/to-string-err.js",
+ "annexB/built-ins/escape/to-string-err-symbol.js",
+ "annexB/built-ins/escape/to-string-observe.js",
+ "annexB/built-ins/escape/unmodified.js",
+ "annexB/built-ins/RegExp/prototype/compile/B.RegExp.prototype.compile.js",
+ "annexB/built-ins/RegExp/prototype/compile/flags-string-invalid.js",
+ "annexB/built-ins/RegExp/prototype/compile/flags-to-string.js",
+ "annexB/built-ins/RegExp/prototype/compile/flags-to-string-err.js",
+ "annexB/built-ins/RegExp/prototype/compile/flags-undefined.js",
+ "annexB/built-ins/RegExp/prototype/compile/length.js",
+ "annexB/built-ins/RegExp/prototype/compile/name.js",
+ "annexB/built-ins/RegExp/prototype/compile/pattern-regexp-distinct.js",
+ "annexB/built-ins/RegExp/prototype/compile/pattern-regexp-flags-defined.js",
+ "annexB/built-ins/RegExp/prototype/compile/pattern-regexp-immutable-lastindex.js",
+ "annexB/built-ins/RegExp/prototype/compile/pattern-regexp-props.js",
+ "annexB/built-ins/RegExp/prototype/compile/pattern-regexp-same.js",
+ "annexB/built-ins/RegExp/prototype/compile/pattern-string.js",
+ "annexB/built-ins/RegExp/prototype/compile/pattern-string-invalid.js",
+ "annexB/built-ins/RegExp/prototype/compile/pattern-string-invalid-u.js",
+ "annexB/built-ins/RegExp/prototype/compile/pattern-to-string-err.js",
+ "annexB/built-ins/RegExp/prototype/compile/pattern-undefined.js",
+ "annexB/built-ins/RegExp/prototype/compile/this-not-object.js",
+ "annexB/built-ins/RegExp/prototype/compile/this-obj-not-regexp.js",
+ "annexB/built-ins/RegExp/RegExp-control-escape-russian-letter.js",
+ "annexB/built-ins/RegExp/RegExp-decimal-escape-class-range.js",
+ "annexB/built-ins/RegExp/RegExp-decimal-escape-not-capturing.js",
+ "annexB/built-ins/RegExp/RegExp-leading-escape.js",
+ "annexB/built-ins/RegExp/RegExp-trailing-escape.js",
+ "annexB/built-ins/String/prototype/anchor/attr-tostring-err.js",
+ "annexB/built-ins/String/prototype/anchor/B.2.3.2.js",
+ "annexB/built-ins/String/prototype/anchor/length.js",
+ "annexB/built-ins/String/prototype/anchor/name.js",
+ "annexB/built-ins/String/prototype/anchor/prop-desc.js",
+ "annexB/built-ins/String/prototype/anchor/this-val-tostring-err.js",
+ "annexB/built-ins/String/prototype/big/B.2.3.3.js",
+ "annexB/built-ins/String/prototype/big/length.js",
+ "annexB/built-ins/String/prototype/big/name.js",
+ "annexB/built-ins/String/prototype/big/prop-desc.js",
+ "annexB/built-ins/String/prototype/big/this-val-tostring-err.js",
+ "annexB/built-ins/String/prototype/blink/B.2.3.4.js",
+ "annexB/built-ins/String/prototype/blink/length.js",
+ "annexB/built-ins/String/prototype/blink/name.js",
+ "annexB/built-ins/String/prototype/blink/prop-desc.js",
+ "annexB/built-ins/String/prototype/blink/this-val-tostring-err.js",
+ "annexB/built-ins/String/prototype/bold/B.2.3.5.js",
+ "annexB/built-ins/String/prototype/bold/length.js",
+ "annexB/built-ins/String/prototype/bold/name.js",
+ "annexB/built-ins/String/prototype/bold/prop-desc.js",
+ "annexB/built-ins/String/prototype/bold/this-val-tostring-err.js",
+ "annexB/built-ins/String/prototype/fixed/B.2.3.6.js",
+ "annexB/built-ins/String/prototype/fixed/length.js",
+ "annexB/built-ins/String/prototype/fixed/name.js",
+ "annexB/built-ins/String/prototype/fixed/prop-desc.js",
+ "annexB/built-ins/String/prototype/fixed/this-val-tostring-err.js",
+ "annexB/built-ins/String/prototype/fontcolor/attr-tostring-err.js",
+ "annexB/built-ins/String/prototype/fontcolor/B.2.3.7.js",
+ "annexB/built-ins/String/prototype/fontcolor/length.js",
+ "annexB/built-ins/String/prototype/fontcolor/name.js",
+ "annexB/built-ins/String/prototype/fontcolor/prop-desc.js",
+ "annexB/built-ins/String/prototype/fontcolor/this-val-tostring-err.js",
+ "annexB/built-ins/String/prototype/fontsize/attr-tostring-err.js",
+ "annexB/built-ins/String/prototype/fontsize/B.2.3.8.js",
+ "annexB/built-ins/String/prototype/fontsize/length.js",
+ "annexB/built-ins/String/prototype/fontsize/name.js",
+ "annexB/built-ins/String/prototype/fontsize/prop-desc.js",
+ "annexB/built-ins/String/prototype/fontsize/this-val-tostring-err.js",
+ "annexB/built-ins/String/prototype/italics/B.2.3.9.js",
+ "annexB/built-ins/String/prototype/italics/length.js",
+ "annexB/built-ins/String/prototype/italics/name.js",
+ "annexB/built-ins/String/prototype/italics/prop-desc.js",
+ "annexB/built-ins/String/prototype/italics/this-val-tostring-err.js",
+ "annexB/built-ins/String/prototype/link/attr-tostring-err.js",
+ "annexB/built-ins/String/prototype/link/B.2.3.10.js",
+ "annexB/built-ins/String/prototype/link/length.js",
+ "annexB/built-ins/String/prototype/link/name.js",
+ "annexB/built-ins/String/prototype/link/prop-desc.js",
+ "annexB/built-ins/String/prototype/link/this-val-tostring-err.js",
+ "annexB/built-ins/String/prototype/small/B.2.3.11.js",
+ "annexB/built-ins/String/prototype/small/length.js",
+ "annexB/built-ins/String/prototype/small/name.js",
+ "annexB/built-ins/String/prototype/small/prop-desc.js",
+ "annexB/built-ins/String/prototype/small/this-val-tostring-err.js",
+ "annexB/built-ins/String/prototype/strike/B.2.3.12.js",
+ "annexB/built-ins/String/prototype/strike/length.js",
+ "annexB/built-ins/String/prototype/strike/name.js",
+ "annexB/built-ins/String/prototype/strike/prop-desc.js",
+ "annexB/built-ins/String/prototype/strike/this-val-tostring-err.js",
+ "annexB/built-ins/String/prototype/sub/B.2.3.13.js",
+ "annexB/built-ins/String/prototype/sub/length.js",
+ "annexB/built-ins/String/prototype/sub/name.js",
+ "annexB/built-ins/String/prototype/sub/prop-desc.js",
+ "annexB/built-ins/String/prototype/sub/this-val-tostring-err.js",
+ "annexB/built-ins/String/prototype/substr/B.2.3.js",
+ "annexB/built-ins/String/prototype/substr/length.js",
+ "annexB/built-ins/String/prototype/substr/length-falsey.js",
+ "annexB/built-ins/String/prototype/substr/length-negative.js",
+ "annexB/built-ins/String/prototype/substr/length-positive.js",
+ "annexB/built-ins/String/prototype/substr/length-to-int-err.js",
+ "annexB/built-ins/String/prototype/substr/length-undef.js",
+ "annexB/built-ins/String/prototype/substr/name.js",
+ "annexB/built-ins/String/prototype/substr/start-negative.js",
+ "annexB/built-ins/String/prototype/substr/start-to-int-err.js",
+ "annexB/built-ins/String/prototype/substr/this-non-obj-coerce.js",
+ "annexB/built-ins/String/prototype/substr/this-to-str-err.js",
+ "annexB/built-ins/String/prototype/sup/B.2.3.14.js",
+ "annexB/built-ins/String/prototype/sup/length.js",
+ "annexB/built-ins/String/prototype/sup/name.js",
+ "annexB/built-ins/String/prototype/sup/prop-desc.js",
+ "annexB/built-ins/String/prototype/sup/this-val-tostring-err.js",
+ "annexB/built-ins/unescape/empty-string.js",
+ "annexB/built-ins/unescape/four.js",
+ "annexB/built-ins/unescape/four-ignore-bad-u.js",
+ "annexB/built-ins/unescape/four-ignore-end-str.js",
+ "annexB/built-ins/unescape/four-ignore-non-hex.js",
+ "annexB/built-ins/unescape/length.js",
+ "annexB/built-ins/unescape/name.js",
+ "annexB/built-ins/unescape/prop-desc.js",
+ "annexB/built-ins/unescape/to-string-err.js",
+ "annexB/built-ins/unescape/to-string-err-symbol.js",
+ "annexB/built-ins/unescape/to-string-observe.js",
+ "annexB/built-ins/unescape/two.js",
+ "annexB/built-ins/unescape/two-ignore-end-str.js",
+ "annexB/built-ins/unescape/two-ignore-non-hex.js",
+ "annexB/built-ins/escape/escape-above-astral.js",
+ "annexB/built-ins/escape/escape-above.js",
+ "annexB/built-ins/RegExp/prototype/compile/pattern-string-u.js",
+ "annexB/built-ins/String/prototype/substr/surrogate-pairs.js",
+ "annexB/language/expressions/template-literal/legacy-octal-escape-sequence-strict.js",
+ "annexB/language/literals/regexp/extended-pattern-char.js",
+ "annexB/language/literals/regexp/identity-escape.js",
+ "annexB/language/literals/regexp/non-empty-class-ranges.js",
+ "annexB/language/literals/regexp/non-empty-class-ranges-no-dash.js",
+ "annexB/language/statements/try/catch-redeclared-for-in-var.js",
+ "annexB/language/statements/try/catch-redeclared-for-var.js",
+ "annexB/language/statements/try/catch-redeclared-var-statement.js",
+ "annexB/language/statements/try/catch-redeclared-var-statement-captured.js",
+ "annexB/built-ins/RegExp/legacy-accessors/lastMatch/this-cross-realm-constructor.js",
+ "annexB/built-ins/RegExp/legacy-accessors/input/this-cross-realm-constructor.js",
+ "annexB/built-ins/RegExp/legacy-accessors/index/this-cross-realm-constructor.js",
+ "annexB/built-ins/RegExp/legacy-accessors/rightContext/this-cross-realm-constructor.js",
+ "annexB/built-ins/RegExp/legacy-accessors/lastParen/this-cross-realm-constructor.js",
+ "annexB/built-ins/RegExp/legacy-accessors/leftContext/this-cross-realm-constructor.js",
+ "annexB/built-ins/RegExp/prototype/compile/this-cross-realm-instance.js"
+ ]
+ },
+ {
+ "reason": "decodeURIComponent/DecodeURI Supported in 6.0",
+ "files": [
+ "built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-10.js",
+ "built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-11.js",
+ "built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-9.js",
+ "built-ins/Object/getOwnPropertyNames/15.2.3.4-4-1.js"
+ ]
+ },
+ {
+ "reason": "throw exception",
+ "files": [
+ "language/types/reference/put-value-prop-base-primitive.js"
+ ]
+ },
+ {
+ "reason": "Not support 5e-324",
+ "files": [
+ "language/expressions/equals/S11.9.1_A5.3.js",
+ "language/expressions/does-not-equals/S11.9.2_A5.3.js"
+ ]
+ },
+ {
+ "reason": "Not support $262",
+ "files": [
+ "language/expressions/new/non-ctor-err-realm.js",
+ "language/expressions/tagged-template/cache-realm.js",
+ "language/types/reference/get-value-prop-base-primitive-realm.js",
+ "language/types/reference/put-value-prop-base-primitive-realm.js",
+ "language/expressions/super/realm.js"
+ ]
+ },
+ {
+ "reason": "Missing Symbol.toStringTag.js",
+ "files": [
+ "language/module-code/namespace/Symbol.toStringTag.js"
+ ]
+ },
+ {
+ "reason": "Not support [[delete]]",
+ "files": [
+ "built-ins/TypedArrayConstructors/internals/Delete/indexed-value-ab-strict.js",
+ "built-ins/TypedArrayConstructors/internals/Delete/key-is-not-minus-zero-strict.js",
+ "built-ins/TypedArrayConstructors/internals/Delete/key-is-out-of-bounds-strict.js"
+ ]
+ },
+ {
+ "reason": "Intl402 Not support Collator",
+ "files": [
+ "intl402/String/prototype/localeCompare/returns-same-results-as-Collator.js",
+ "intl402/String/prototype/localeCompare/throws-same-exceptions-as-Collator.js",
+ "intl402/String/prototype/localeCompare/default-options-object-prototype.js"
+ ]
+ },
+ {
+ "reason": "Not support at and includes",
+ "files": [
+ "built-ins/TypedArray/prototype/at/index-non-numeric-argument-tointeger.js",
+ "built-ins/TypedArray/prototype/at/index-argument-tointeger.js",
+ "built-ins/TypedArray/prototype/at/index-non-numeric-argument-tointeger-invalid.js",
+ "built-ins/TypedArray/prototype/at/name.js",
+ "built-ins/TypedArray/prototype/at/length.js",
+ "built-ins/TypedArray/prototype/at/return-abrupt-from-this.js",
+ "built-ins/TypedArray/prototype/at/prop-desc.js",
+ "built-ins/TypedArray/prototype/at/returns-item-relative-index.js",
+ "built-ins/TypedArray/prototype/at/returns-undefined-for-holes-in-sparse-arrays.js",
+ "built-ins/TypedArray/prototype/at/returns-undefined-for-out-of-range-index.js",
+ "built-ins/TypedArray/prototype/at/returns-item.js",
+ "built-ins/TypedArray/prototype/includes/fromIndex-equal-or-greater-length-returns-false.js",
+ "built-ins/TypedArray/prototype/includes/fromIndex-infinity.js",
+ "built-ins/TypedArray/prototype/includes/fromIndex-minus-zero.js",
+ "built-ins/TypedArray/prototype/includes/get-length-uses-internal-arraylength.js",
+ "built-ins/TypedArray/prototype/includes/invoked-as-func.js",
+ "built-ins/TypedArray/prototype/includes/invoked-as-method.js",
+ "built-ins/TypedArray/prototype/includes/length.js",
+ "built-ins/TypedArray/prototype/includes/length-zero-returns-false.js",
+ "built-ins/TypedArray/prototype/includes/name.js",
+ "built-ins/TypedArray/prototype/includes/prop-desc.js",
+ "built-ins/TypedArray/prototype/includes/not-a-constructor.js",
+ "built-ins/TypedArray/prototype/includes/return-abrupt-tointeger-fromindex-symbol.js",
+ "built-ins/TypedArray/prototype/includes/samevaluezero.js",
+ "built-ins/TypedArray/prototype/includes/search-found-returns-true.js",
+ "built-ins/TypedArray/prototype/includes/return-abrupt-tointeger-fromindex.js",
+ "built-ins/TypedArray/prototype/includes/search-not-found-returns-false.js",
+ "built-ins/TypedArray/prototype/includes/searchelement-not-integer.js",
+ "built-ins/TypedArray/prototype/includes/this-is-not-object.js",
+ "built-ins/TypedArray/prototype/includes/this-is-not-typedarray-instance.js",
+ "built-ins/TypedArray/prototype/includes/tointeger-fromindex.js",
+ "built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-false-for-zero.js",
+ "built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-true-for-undefined.js",
+ "built-ins/TypedArray/prototype/includes/detached-buffer.js"
+ ]
+ },
+ {
+ "reason": "Not support TypedArrayConstructors ecma2021 features",
+ "files": [
+ "built-ins/TypedArrayConstructors/internals/Set/key-is-minus-zero.js",
+ "built-ins/TypedArrayConstructors/internals/Set/key-is-not-integer.js",
+ "built-ins/TypedArrayConstructors/internals/Set/key-is-out-of-bounds.js"
+ ]
+ },
+ {
+ "reason": "remove intl related testcases for temporarily isolating Intl code",
+ "files": [
+ "built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-80.js",
+ "built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-159.js",
+ "built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-90.js",
+ "built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-158.js",
+ "built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-79.js",
+ "built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-152.js",
+ "built-ins/Number/prototype/S15.7.4_A3.3.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T6.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T5.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A6.js",
+ "built-ins/String/prototype/toLocaleLowerCase/name.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A10.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A11.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T10.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T11.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T4.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T12.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A9.js",
+ "built-ins/String/prototype/toLocaleLowerCase/special_casing.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T14.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T13.js",
+ "built-ins/String/prototype/toLocaleLowerCase/special_casing_conditional.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T9.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T1.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T8.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T7.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A1_T2.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A8.js",
+ "built-ins/String/prototype/toLocaleLowerCase/supplementary_plane.js",
+ "built-ins/String/prototype/toLocaleLowerCase/S15.5.4.17_A2_T1.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T9.js",
+ "built-ins/String/prototype/toLocaleUpperCase/name.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A10.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A6.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T12.js",
+ "built-ins/String/prototype/toLocaleUpperCase/special_casing.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T7.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T13.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A11.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A9.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T1.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A2_T1.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T8.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T14.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T10.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T4.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T5.js",
+ "built-ins/String/prototype/toLocaleUpperCase/supplementary_plane.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T11.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A8.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T6.js",
+ "built-ins/String/prototype/toLocaleUpperCase/S15.5.4.19_A1_T2.js",
+ "built-ins/String/prototype/normalize/length.js",
+ "built-ins/String/prototype/normalize/name.js",
+ "built-ins/String/prototype/normalize/return-normalized-string-using-default-parameter.js",
+ "built-ins/String/prototype/normalize/return-abrupt-from-form.js",
+ "built-ins/String/prototype/normalize/form-is-not-valid-throws.js",
+ "built-ins/String/prototype/normalize/return-normalized-string.js",
+ "built-ins/String/prototype/normalize/return-normalized-string-from-coerced-form.js",
+ "built-ins/String/prototype/normalize/return-abrupt-from-this.js",
+ "built-ins/String/prototype/normalize/normalize.js",
+ "intl402/String/prototype/toLocaleLowerCase/special_casing_Azeri.js",
+ "intl402/String/prototype/toLocaleLowerCase/special_casing_Turkish.js",
+ "intl402/String/prototype/toLocaleLowerCase/capital_I_with_dot.js",
+ "intl402/String/prototype/toLocaleLowerCase/special_casing_Lithuanian.js",
+ "intl402/String/prototype/toLocaleUpperCase/special_casing_Azeri.js",
+ "intl402/String/prototype/toLocaleUpperCase/special_casing_Turkish.js",
+ "intl402/String/prototype/toLocaleUpperCase/special_casing_Lithuanian.js"
+ ]
+ }
+]
diff --git a/test262/utils.py b/test262/utils.py
new file mode 100755
index 0000000000000000000000000000000000000000..91ed1da527be3474dc06d7bfa73d99710261acc3
--- /dev/null
+++ b/test262/utils.py
@@ -0,0 +1,157 @@
+# coding: utf-8
+#!/usr/bin/python3
+
+"""
+Copyright (c) 2021 Huawei Device Co., Ltd.
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Description: Implement the public interface in the 262 use case
+"""
+
+import os
+import sys
+import subprocess
+import datetime
+import time
+import shutil
+
+TERM_NORMAL = '\033[0m'
+TERM_YELLOW = '\033[1;33m'
+TERM_BLUE = '\033[1;34m'
+TERM_RED = '\033[1;31m'
+TERM_FUCHSIA = '\033[1;35m'
+
+
+def current_time():
+ dt_ms = datetime.datetime.now().strftime('%m-%d %H:%M:%S.%f')
+ return dt_ms
+
+
+class Logging():
+ def __init__(self):
+ self.is_logging = True
+
+ def debug(self, info):
+ if self.is_logging:
+ print(
+ f'{current_time()} D:>>> {TERM_BLUE}{str(info)}{TERM_NORMAL}')
+
+ def info(self, info):
+ if self.is_logging:
+ if len(str(info)) > 100:
+ print(f'{current_time()} I:>>> \n{str(info)} ')
+ else:
+ print(f'{current_time()} I:>>> {str(info)} ')
+
+
+LOGGING = Logging()
+
+
+class Command():
+ def __init__(self, cmd):
+ self.cmd = cmd
+
+ def run(self):
+ LOGGING.debug("command: " + self.cmd)
+ out = os.popen(self.cmd).read()
+ LOGGING.info(out)
+ return out
+
+
+def run_cmd(command):
+ cmd = Command(command)
+ return cmd.run()
+
+
+class CommandCwd():
+ def __init__(self, cmds, cwd):
+ self.cmds = cmds
+ self.cwd = cwd
+
+ def run(self):
+ cmd = " ".join(self.cmds)
+ LOGGING.debug("command: " + cmd + " | " + "dir: " + self.cwd)
+ proc = subprocess.Popen(self.cmds, cwd=self.cwd)
+ ret = proc.wait()
+ return ret
+
+
+def run_cmd_cwd(commands, cwd=os.getcwd()):
+ cmd = CommandCwd(commands, cwd)
+ return cmd.run()
+
+
+def sleep(duration):
+ LOGGING.debug("sleeping %d" % duration)
+ time.sleep(duration)
+
+
+def write_file(save_file, result):
+ LOGGING.debug(f"write file:{save_file}")
+ with open(save_file, "a+") as file:
+ file.write(result + "\n")
+ file.flush()
+
+
+def remove_dir(path):
+ if os.path.exists(path):
+ shutil.rmtree(path)
+
+
+def remove_file(file):
+ if os.path.exists(file):
+ os.remove(file)
+
+
+def mkdir(path):
+ if not os.path.exists(path):
+ os.makedirs(path)
+
+
+def report_command(cmd_type, cmd, env=None):
+ sys.stderr.write(f'{TERM_BLUE}{cmd_type}{TERM_NORMAL}\n')
+ if env is not None:
+ sys.stderr.write(''.join(f'{TERM_BLUE}{var}={val} \\{TERM_NORMAL}\n'
+ for var, val in sorted(env.items())))
+ cmd_str = (f'{TERM_NORMAL}\n\t{TERM_BLUE}').join(cmd)
+ sys.stderr.write(f'\t{TERM_BLUE}{cmd_str}{TERM_NORMAL}\n')
+ sys.stderr.write("\n")
+
+
+def git_clone(git_url, code_dir):
+ cmd = ['git', 'clone', git_url, code_dir]
+ ret = run_cmd_cwd(cmd)
+ assert not ret, f"\n error: Cloning '{git_url}' failed."
+
+
+def git_checkout(git_bash, cwd):
+ cmd = ['git', 'checkout', git_bash]
+ ret = run_cmd_cwd(cmd, cwd)
+ assert not ret, f"\n error: git checkout '{git_bash}' failed."
+
+
+def git_apply(patch_file, cwd):
+ cmd = ['git', 'apply', patch_file]
+ ret = run_cmd_cwd(cmd, cwd)
+ assert not ret, f"\n error: Failed to apply '{patch_file}'"
+
+
+def git_clean(cwd):
+ cmd = ['git', 'checkout', '--', '.']
+ run_cmd_cwd(cmd, cwd)
+
+
+def npm_install(cwd):
+ cmd = ['npm', 'install']
+ ret = run_cmd_cwd(cmd, cwd)
+ assert not ret, f"\n error: Failed to 'npm install'"
diff --git a/ts2panda/.gitignore b/ts2panda/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..7631277bc0eb17ec9af9a49c8fd436fd4d9e5115
--- /dev/null
+++ b/ts2panda/.gitignore
@@ -0,0 +1,5 @@
+node_modules/
+build
+src/builtinsMap.ts
+src/irnodes.ts
+src/diagnostic.ts
diff --git a/ts2panda/BUILD.gn b/ts2panda/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..a5662adb25a845f7a394a98d9ec20b88b658d3c9
--- /dev/null
+++ b/ts2panda/BUILD.gn
@@ -0,0 +1,322 @@
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//ark/runtime_core/ark_config.gni")
+import("//ark/ts2abc/ts2panda/ts2abc_config.gni")
+import("//build/config/clang/clang.gni")
+import("//build/ohos.gni")
+
+src_dir = target_out_dir + "/src"
+
+ohos_copy("ts2abc_src") {
+ sources = [ "${ts2abc_root}/src" ]
+
+ outputs = [ src_dir ]
+ module_install_name = ""
+}
+
+ohos_copy("tsconfig_json") {
+ sources = [ "${ts2abc_root}/tsconfig.json" ]
+
+ outputs = [ target_out_dir + "/{{source_file_part}}" ]
+ module_install_name = ""
+}
+
+action("ts2abc_diagnostic_ts") {
+ visibility = [ ":*" ]
+ script = "scripts/gen_diagnostic.rb"
+ args = [
+ "--template",
+ rebase_path("templates/diagnostic.ts.erb", root_build_dir),
+ "--data",
+ rebase_path("scripts/diagnosticMessages.json", root_build_dir),
+ "--output",
+ rebase_path("${src_dir}/diagnostic.ts"),
+ ]
+
+ outputs = [ "${src_dir}/diagnostic.ts" ]
+ deps = [ "$ts2abc_root:ts2abc_src" ]
+}
+
+ark_gen_file("ts2abc_irnodes_ts") {
+ template_file = "templates/irnodes.ts.erb"
+ data_file = "$ark_root/isa/isa.yaml"
+ requires = [
+ "$ark_root/isa/isapi.rb",
+ "$ark_root/libpandafile/pandafile_isapi.rb",
+ ]
+ output_file = "$src_dir/irnodes.ts"
+ extra_dependencies = [ "$ts2abc_root:ts2abc_src" ]
+}
+
+ark_gen_file("ts2abc_builtinsMap_ts") {
+ template_file = "templates/builtinsMap.ts.erb"
+ data_file = "$ark_root/isa/builtins.yaml"
+ requires = [
+ "$ark_root/isa/builtinsapi.rb",
+ "//ark/js_runtime/ecmascript/ecma_builtins.rb",
+ ]
+ output_file = "$src_dir/builtinsMap.ts"
+ extra_dependencies = [ "$ts2abc_root:ts2abc_src" ]
+}
+
+action("npm_run_build") {
+ visibility = [ ":*" ]
+ deps = [
+ "$ts2abc_root:ts2abc_builtinsMap_ts",
+ "$ts2abc_root:ts2abc_diagnostic_ts",
+ "$ts2abc_root:ts2abc_irnodes_ts",
+ "$ts2abc_root:ts2abc_src",
+ "$ts2abc_root:tsconfig_json",
+ ]
+
+ script = "${ts2abc_root}/scripts/run.py"
+ args = [
+ "--src-dir",
+ rebase_path(ts2abc_root),
+ "--dist-dir",
+ rebase_path(target_out_dir),
+ "--node",
+ rebase_path(node_path),
+ "--node-modules",
+ rebase_path(node_modules),
+ ]
+
+ if (is_linux) {
+ args += [
+ "--platform",
+ "linux",
+ ]
+ } else if (is_mingw) {
+ args += [
+ "--platform",
+ "win",
+ ]
+ } else if (is_mac) {
+ args += [
+ "--platform",
+ "mac",
+ ]
+ }
+ outputs = []
+ if (is_mingw) {
+ outputs += [ "${target_out_dir}/build-win" ]
+ } else if (is_mac) {
+ outputs += [ "${target_out_dir}/build-mac" ]
+ } else {
+ outputs += [ "${target_out_dir}/build" ]
+ }
+}
+
+if (is_linux) {
+ ohos_copy("src_linux") {
+ deps = [ "$ts2abc_root:npm_run_build" ]
+ sources = [ "${target_out_dir}/build" ]
+ outputs = [ "${root_out_dir}/ark/ark/build" ]
+ module_source_dir = target_out_dir + "/build/src"
+ module_install_name = ""
+ }
+
+ ohos_copy("ts2abc_tool") {
+ sources = [ "${root_out_dir}/ark/ark/js2abc" ]
+ outputs = [ "${root_out_dir}/ark/ark/build/bin/{{source_file_part}}" ]
+ module_install_name = ""
+
+ deps = [
+ ":src_linux",
+ "$ts2abc_root/ts2abc:ts2abc",
+ ]
+ }
+
+ ohos_copy("ts2abc_linux") {
+ deps = [
+ ":ts2abc_tool",
+ "$ts2abc_root/ts2abc:ts2abc",
+ ]
+ sources = [ "${root_out_dir}/ark/ark/js2abc" ]
+ outputs = [ "${target_out_dir}/build/bin/{{source_file_part}}" ]
+ module_source_dir = "${root_out_dir}/ark/ark/build/bin"
+ module_install_name = ""
+ }
+
+ ohos_copy("ts2abc_build") {
+ deps = [
+ ":panda_ts2abc",
+ ":ts2abc_linux",
+ ]
+ sources = [
+ "${ts2abc_root}/package-lock.json",
+ "${ts2abc_root}/package.json",
+ ]
+
+ outputs = [ "${root_out_dir}/ark/ark/build/{{source_file_part}}" ]
+ module_source_dir = "${root_out_dir}/ark/ark/build"
+ module_install_name = ""
+ }
+
+ ohos_copy("ts2abc_build_ets") {
+ deps = [
+ ":src_linux",
+ ":ts2abc_build",
+ ]
+
+ sources = [ "${root_out_dir}/ark/ark/build" ]
+ outputs = [ "${root_out_dir}/ark/ark/build-ets" ]
+ module_source_dir = "${root_out_dir}/ark/ark/build-ets"
+ module_install_name = ""
+ }
+}
+
+if (is_mingw) {
+ ohos_copy("src_win") {
+ deps = [ "$ts2abc_root:npm_run_build" ]
+ sources = [ "${target_out_dir}/build-win" ]
+ outputs = [ "${root_out_dir}/ark/ark/build-win" ]
+ module_source_dir = target_out_dir + "/build-win/src"
+ module_install_name = ""
+ }
+
+ ohos_copy("ts2abc_tool_win") {
+ sources = [ "${root_out_dir}/ark/ark/js2abc.exe" ]
+ outputs = [ "${root_out_dir}/ark/ark/build-win/bin/{{source_file_part}}" ]
+ module_install_name = ""
+
+ deps = [
+ ":src_win",
+ "$ts2abc_root/ts2abc:ts2abc",
+ ]
+ }
+
+ ohos_copy("ts2abc_win") {
+ deps = [
+ ":ts2abc_tool_win",
+ "$ts2abc_root/ts2abc:ts2abc",
+ ]
+ sources = [ "${root_out_dir}/ark/ark/js2abc.exe" ]
+ outputs = [ "${target_out_dir}/build-win/bin/{{source_file_part}}" ]
+ module_source_dir = "${root_out_dir}/ark/ark/build-win/bin"
+ module_install_name = ""
+ }
+
+ ohos_copy("ts2abc_build_win") {
+ deps = [
+ ":panda_ts2abc",
+ ":ts2abc_win",
+ ]
+ sources = [
+ "${ts2abc_root}/package-lock.json",
+ "${ts2abc_root}/package.json",
+ ]
+ outputs = [ "${root_out_dir}/ark/ark/build-win/{{source_file_part}}" ]
+ module_source_dir = "${root_out_dir}/ark/ark/build-win"
+ module_install_name = ""
+ }
+
+ ohos_copy("ts2abc_build_win_ets") {
+ deps = [
+ ":src_win",
+ ":ts2abc_build_win",
+ ]
+
+ sources = [ "${root_out_dir}/ark/ark/build-win" ]
+ outputs = [ "${root_out_dir}/ark/ark/build-win-ets" ]
+ module_source_dir = "${root_out_dir}/ark/ark/build-win-ets"
+ module_install_name = ""
+ }
+}
+
+if (is_mac) {
+ ohos_copy("src_mac") {
+ deps = [ "$ts2abc_root:npm_run_build" ]
+ sources = [ "${target_out_dir}/build-mac" ]
+ outputs = [ "${root_out_dir}/ark/ark/build-mac" ]
+ module_source_dir = target_out_dir + "/build-mac/src"
+ module_install_name = ""
+ }
+
+ ohos_copy("ts2abc_tool_mac") {
+ sources = [ "${root_out_dir}/ark/ark/js2abc" ]
+ outputs = [ "${root_out_dir}/ark/ark/build-mac/bin/{{source_file_part}}" ]
+ module_install_name = ""
+
+ deps = [
+ ":src_mac",
+ "$ts2abc_root/ts2abc:ts2abc",
+ ]
+ }
+
+ ohos_copy("ts2abc_mac") {
+ deps = [
+ ":ts2abc_tool_mac",
+ "$ts2abc_root/ts2abc:ts2abc",
+ ]
+ sources = [ "${root_out_dir}/ark/ark/js2abc" ]
+ outputs = [ "${target_out_dir}/build-mac/bin/{{source_file_part}}" ]
+ module_source_dir = "${root_out_dir}/ark/ark/build-mac/bin"
+ module_install_name = ""
+ }
+
+ ohos_copy("ts2abc_build_mac") {
+ deps = [
+ ":panda_ts2abc",
+ ":ts2abc_mac",
+ ]
+ sources = [
+ "${ts2abc_root}/package-lock.json",
+ "${ts2abc_root}/package.json",
+ ]
+ outputs = [ "${root_out_dir}/ark/ark/build-mac/{{source_file_part}}" ]
+ module_source_dir = "${root_out_dir}/ark/ark/build-mac"
+ module_install_name = ""
+ }
+
+ ohos_copy("ts2abc_build_mac_ets") {
+ deps = [
+ ":src_mac",
+ ":ts2abc_build_mac",
+ ]
+
+ sources = [ "${root_out_dir}/ark/ark/build-mac" ]
+ outputs = [ "${root_out_dir}/ark/ark/build-mac-ets" ]
+ module_source_dir = "${root_out_dir}/ark/ark/build-mac-ets"
+ module_install_name = ""
+ }
+}
+
+ohos_copy("panda_ts2abc") {
+ sources = [ "${ts2abc_root}/scripts/ts2abc.js" ]
+
+ outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ]
+ module_source_dir = target_out_dir + "/$target_name/"
+ module_install_name = ""
+}
+
+ohos_copy("panda_ts2abc_ets") {
+ sources = [ "${ts2abc_root}/scripts/ts2abc.js" ]
+
+ outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ]
+ module_source_dir = target_out_dir + "/$target_name/"
+ module_install_name = ""
+}
+
+group("ark_ts2abc_build") {
+ deps = []
+ if (host_os != "mac") {
+ deps += [
+ "${ts2abc_root}:ts2abc_build(${buildtool_linux})",
+ "${ts2abc_root}:ts2abc_build_ets(${buildtool_linux})",
+ "${ts2abc_root}:ts2abc_build_win(${buildtool_win})",
+ "${ts2abc_root}:ts2abc_build_win_ets(${buildtool_win})",
+ ]
+ }
+}
diff --git a/ts2panda/README.md b/ts2panda/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..6e1fe3daa207cea70f97ce480b7cf56660838930
--- /dev/null
+++ b/ts2panda/README.md
@@ -0,0 +1,22 @@
+### ts2panda
+ts2panda aims to translate JavaScript source files into ARK bytecode which could be executed by the ARK runtime.
+
+The whole converter could be splited into several phases.
+* tsc(TypeScript compiler) automatically builds the AST for us
+* translate TypeScript AST into panda instruction arrays
+* apply several passes with the instruction arrays, including:
+ * [register allocator](doc/register_allocator.md)
+ * [intrinsic expander](doc/intrinsic_expander.md)
+ * [panda assembly dumper](doc/assembly_dumper.md)
+ * [panda binary dumper](doc/binary_dumper.md)
+
+### Run a case
+The whole ARK project needs to be built before running cases.
+#### dump panda binary
+```
+node --expose-gc ../../out/release/clang_x64/ark/ark/build/src/index.js <--> <--output>
+```
+#### dump panda assembly
+```
+node --expose-gc ../../out/release/clang_x64/ark/ark/build/src/index.js --dump-assembly
+```
diff --git a/ts2panda/package-lock.json b/ts2panda/package-lock.json
new file mode 100644
index 0000000000000000000000000000000000000000..676cac87b243f3b485090eb0f7bced5fe3688bf1
--- /dev/null
+++ b/ts2panda/package-lock.json
@@ -0,0 +1,2509 @@
+{
+ "name": "ts2panda",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/code-frame/-/code-frame-7.14.5.tgz",
+ "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
+ "requires": {
+ "@babel/highlight": "^7.14.5"
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.14.7",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/compat-data/-/compat-data-7.14.7.tgz",
+ "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw=="
+ },
+ "@babel/core": {
+ "version": "7.14.6",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/core/-/core-7.14.6.tgz",
+ "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==",
+ "requires": {
+ "@babel/code-frame": "^7.14.5",
+ "@babel/generator": "^7.14.5",
+ "@babel/helper-compilation-targets": "^7.14.5",
+ "@babel/helper-module-transforms": "^7.14.5",
+ "@babel/helpers": "^7.14.6",
+ "@babel/parser": "^7.14.6",
+ "@babel/template": "^7.14.5",
+ "@babel/traverse": "^7.14.5",
+ "@babel/types": "^7.14.5",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.1.2",
+ "semver": "^6.3.0",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/generator/-/generator-7.14.5.tgz",
+ "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==",
+ "requires": {
+ "@babel/types": "^7.14.5",
+ "jsesc": "^2.5.1",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz",
+ "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==",
+ "requires": {
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz",
+ "integrity": "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==",
+ "requires": {
+ "@babel/helper-explode-assignable-expression": "^7.14.5",
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz",
+ "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==",
+ "requires": {
+ "@babel/compat-data": "^7.14.5",
+ "@babel/helper-validator-option": "^7.14.5",
+ "browserslist": "^4.16.6",
+ "semver": "^6.3.0"
+ }
+ },
+ "@babel/helper-create-class-features-plugin": {
+ "version": "7.14.6",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz",
+ "integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.14.5",
+ "@babel/helper-function-name": "^7.14.5",
+ "@babel/helper-member-expression-to-functions": "^7.14.5",
+ "@babel/helper-optimise-call-expression": "^7.14.5",
+ "@babel/helper-replace-supers": "^7.14.5",
+ "@babel/helper-split-export-declaration": "^7.14.5"
+ }
+ },
+ "@babel/helper-create-regexp-features-plugin": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz",
+ "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.14.5",
+ "regexpu-core": "^4.7.1"
+ }
+ },
+ "@babel/helper-define-polyfill-provider": {
+ "version": "0.2.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz",
+ "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==",
+ "requires": {
+ "@babel/helper-compilation-targets": "^7.13.0",
+ "@babel/helper-module-imports": "^7.12.13",
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/traverse": "^7.13.0",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2",
+ "semver": "^6.1.2"
+ }
+ },
+ "@babel/helper-explode-assignable-expression": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz",
+ "integrity": "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==",
+ "requires": {
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz",
+ "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==",
+ "requires": {
+ "@babel/helper-get-function-arity": "^7.14.5",
+ "@babel/template": "^7.14.5",
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz",
+ "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==",
+ "requires": {
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz",
+ "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==",
+ "requires": {
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.14.7",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz",
+ "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==",
+ "requires": {
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz",
+ "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==",
+ "requires": {
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz",
+ "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==",
+ "requires": {
+ "@babel/helper-module-imports": "^7.14.5",
+ "@babel/helper-replace-supers": "^7.14.5",
+ "@babel/helper-simple-access": "^7.14.5",
+ "@babel/helper-split-export-declaration": "^7.14.5",
+ "@babel/helper-validator-identifier": "^7.14.5",
+ "@babel/template": "^7.14.5",
+ "@babel/traverse": "^7.14.5",
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz",
+ "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==",
+ "requires": {
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz",
+ "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ=="
+ },
+ "@babel/helper-remap-async-to-generator": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz",
+ "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.14.5",
+ "@babel/helper-wrap-function": "^7.14.5",
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz",
+ "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==",
+ "requires": {
+ "@babel/helper-member-expression-to-functions": "^7.14.5",
+ "@babel/helper-optimise-call-expression": "^7.14.5",
+ "@babel/traverse": "^7.14.5",
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz",
+ "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==",
+ "requires": {
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz",
+ "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==",
+ "requires": {
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz",
+ "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==",
+ "requires": {
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz",
+ "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg=="
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz",
+ "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow=="
+ },
+ "@babel/helper-wrap-function": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz",
+ "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==",
+ "requires": {
+ "@babel/helper-function-name": "^7.14.5",
+ "@babel/template": "^7.14.5",
+ "@babel/traverse": "^7.14.5",
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/helpers": {
+ "version": "7.14.6",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/helpers/-/helpers-7.14.6.tgz",
+ "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==",
+ "requires": {
+ "@babel/template": "^7.14.5",
+ "@babel/traverse": "^7.14.5",
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/highlight/-/highlight-7.14.5.tgz",
+ "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.14.5",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.14.7",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/parser/-/parser-7.14.7.tgz",
+ "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA=="
+ },
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz",
+ "integrity": "sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5",
+ "@babel/plugin-proposal-optional-chaining": "^7.14.5"
+ }
+ },
+ "@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.14.7",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz",
+ "integrity": "sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-remap-async-to-generator": "^7.14.5",
+ "@babel/plugin-syntax-async-generators": "^7.8.4"
+ }
+ },
+ "@babel/plugin-proposal-class-properties": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz",
+ "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-proposal-class-static-block": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz",
+ "integrity": "sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ }
+ },
+ "@babel/plugin-proposal-dynamic-import": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz",
+ "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-export-namespace-from": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz",
+ "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-json-strings": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz",
+ "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-logical-assignment-operators": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz",
+ "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz",
+ "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-numeric-separator": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz",
+ "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.14.7",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz",
+ "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==",
+ "requires": {
+ "@babel/compat-data": "^7.14.7",
+ "@babel/helper-compilation-targets": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.14.5"
+ }
+ },
+ "@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz",
+ "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-optional-chaining": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz",
+ "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-private-methods": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz",
+ "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz",
+ "integrity": "sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.14.5",
+ "@babel/helper-create-class-features-plugin": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
+ }
+ },
+ "@babel/plugin-proposal-unicode-property-regex": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz",
+ "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-syntax-async-generators": {
+ "version": "7.8.4",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-class-properties": {
+ "version": "7.12.13",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ }
+ },
+ "@babel/plugin-syntax-class-static-block": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
+ "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-export-namespace-from": {
+ "version": "7.8.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
+ "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.3"
+ }
+ },
+ "@babel/plugin-syntax-json-strings": {
+ "version": "7.8.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-numeric-separator": {
+ "version": "7.10.4",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.8.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-chaining": {
+ "version": "7.8.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-private-property-in-object": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
+ "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-syntax-top-level-await": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz",
+ "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-async-to-generator": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz",
+ "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==",
+ "requires": {
+ "@babel/helper-module-imports": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-remap-async-to-generator": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz",
+ "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-block-scoping": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz",
+ "integrity": "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-classes": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz",
+ "integrity": "sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.14.5",
+ "@babel/helper-function-name": "^7.14.5",
+ "@babel/helper-optimise-call-expression": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-replace-supers": "^7.14.5",
+ "@babel/helper-split-export-declaration": "^7.14.5",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/plugin-transform-computed-properties": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz",
+ "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.14.7",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz",
+ "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-dotall-regex": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz",
+ "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-duplicate-keys": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz",
+ "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz",
+ "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==",
+ "requires": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-for-of": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz",
+ "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-function-name": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz",
+ "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==",
+ "requires": {
+ "@babel/helper-function-name": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-literals": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz",
+ "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-member-expression-literals": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz",
+ "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-modules-amd": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz",
+ "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==",
+ "requires": {
+ "@babel/helper-module-transforms": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-modules-commonjs": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz",
+ "integrity": "sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==",
+ "requires": {
+ "@babel/helper-module-transforms": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-simple-access": "^7.14.5",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-modules-systemjs": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz",
+ "integrity": "sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==",
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.14.5",
+ "@babel/helper-module-transforms": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-validator-identifier": "^7.14.5",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-modules-umd": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz",
+ "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==",
+ "requires": {
+ "@babel/helper-module-transforms": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.14.7",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz",
+ "integrity": "sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-new-target": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz",
+ "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-object-super": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz",
+ "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-replace-supers": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-parameters": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz",
+ "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-property-literals": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz",
+ "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-regenerator": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz",
+ "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==",
+ "requires": {
+ "regenerator-transform": "^0.14.2"
+ }
+ },
+ "@babel/plugin-transform-reserved-words": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz",
+ "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-shorthand-properties": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz",
+ "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-spread": {
+ "version": "7.14.6",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz",
+ "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-sticky-regex": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz",
+ "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-template-literals": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz",
+ "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-typeof-symbol": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz",
+ "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-unicode-escapes": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz",
+ "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-transform-unicode-regex": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz",
+ "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/preset-env": {
+ "version": "7.14.7",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/preset-env/-/preset-env-7.14.7.tgz",
+ "integrity": "sha512-itOGqCKLsSUl0Y+1nSfhbuuOlTs0MJk2Iv7iSH+XT/mR8U1zRLO7NjWlYXB47yhK4J/7j+HYty/EhFZDYKa/VA==",
+ "requires": {
+ "@babel/compat-data": "^7.14.7",
+ "@babel/helper-compilation-targets": "^7.14.5",
+ "@babel/helper-plugin-utils": "^7.14.5",
+ "@babel/helper-validator-option": "^7.14.5",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5",
+ "@babel/plugin-proposal-async-generator-functions": "^7.14.7",
+ "@babel/plugin-proposal-class-properties": "^7.14.5",
+ "@babel/plugin-proposal-class-static-block": "^7.14.5",
+ "@babel/plugin-proposal-dynamic-import": "^7.14.5",
+ "@babel/plugin-proposal-export-namespace-from": "^7.14.5",
+ "@babel/plugin-proposal-json-strings": "^7.14.5",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5",
+ "@babel/plugin-proposal-numeric-separator": "^7.14.5",
+ "@babel/plugin-proposal-object-rest-spread": "^7.14.7",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.14.5",
+ "@babel/plugin-proposal-optional-chaining": "^7.14.5",
+ "@babel/plugin-proposal-private-methods": "^7.14.5",
+ "@babel/plugin-proposal-private-property-in-object": "^7.14.5",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.14.5",
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-class-properties": "^7.12.13",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
+ "@babel/plugin-syntax-top-level-await": "^7.14.5",
+ "@babel/plugin-transform-arrow-functions": "^7.14.5",
+ "@babel/plugin-transform-async-to-generator": "^7.14.5",
+ "@babel/plugin-transform-block-scoped-functions": "^7.14.5",
+ "@babel/plugin-transform-block-scoping": "^7.14.5",
+ "@babel/plugin-transform-classes": "^7.14.5",
+ "@babel/plugin-transform-computed-properties": "^7.14.5",
+ "@babel/plugin-transform-destructuring": "^7.14.7",
+ "@babel/plugin-transform-dotall-regex": "^7.14.5",
+ "@babel/plugin-transform-duplicate-keys": "^7.14.5",
+ "@babel/plugin-transform-exponentiation-operator": "^7.14.5",
+ "@babel/plugin-transform-for-of": "^7.14.5",
+ "@babel/plugin-transform-function-name": "^7.14.5",
+ "@babel/plugin-transform-literals": "^7.14.5",
+ "@babel/plugin-transform-member-expression-literals": "^7.14.5",
+ "@babel/plugin-transform-modules-amd": "^7.14.5",
+ "@babel/plugin-transform-modules-commonjs": "^7.14.5",
+ "@babel/plugin-transform-modules-systemjs": "^7.14.5",
+ "@babel/plugin-transform-modules-umd": "^7.14.5",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.7",
+ "@babel/plugin-transform-new-target": "^7.14.5",
+ "@babel/plugin-transform-object-super": "^7.14.5",
+ "@babel/plugin-transform-parameters": "^7.14.5",
+ "@babel/plugin-transform-property-literals": "^7.14.5",
+ "@babel/plugin-transform-regenerator": "^7.14.5",
+ "@babel/plugin-transform-reserved-words": "^7.14.5",
+ "@babel/plugin-transform-shorthand-properties": "^7.14.5",
+ "@babel/plugin-transform-spread": "^7.14.6",
+ "@babel/plugin-transform-sticky-regex": "^7.14.5",
+ "@babel/plugin-transform-template-literals": "^7.14.5",
+ "@babel/plugin-transform-typeof-symbol": "^7.14.5",
+ "@babel/plugin-transform-unicode-escapes": "^7.14.5",
+ "@babel/plugin-transform-unicode-regex": "^7.14.5",
+ "@babel/preset-modules": "^0.1.4",
+ "@babel/types": "^7.14.5",
+ "babel-plugin-polyfill-corejs2": "^0.2.2",
+ "babel-plugin-polyfill-corejs3": "^0.2.2",
+ "babel-plugin-polyfill-regenerator": "^0.2.2",
+ "core-js-compat": "^3.15.0",
+ "semver": "^6.3.0"
+ }
+ },
+ "@babel/preset-modules": {
+ "version": "0.1.4",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/preset-modules/-/preset-modules-0.1.4.tgz",
+ "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+ "@babel/plugin-transform-dotall-regex": "^7.4.4",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ }
+ },
+ "@babel/runtime": {
+ "version": "7.14.6",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/runtime/-/runtime-7.14.6.tgz",
+ "integrity": "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==",
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "@babel/template": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/template/-/template-7.14.5.tgz",
+ "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==",
+ "requires": {
+ "@babel/code-frame": "^7.14.5",
+ "@babel/parser": "^7.14.5",
+ "@babel/types": "^7.14.5"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.14.7",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/traverse/-/traverse-7.14.7.tgz",
+ "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==",
+ "requires": {
+ "@babel/code-frame": "^7.14.5",
+ "@babel/generator": "^7.14.5",
+ "@babel/helper-function-name": "^7.14.5",
+ "@babel/helper-hoist-variables": "^7.14.5",
+ "@babel/helper-split-export-declaration": "^7.14.5",
+ "@babel/parser": "^7.14.7",
+ "@babel/types": "^7.14.5",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@babel/types/-/types-7.14.5.tgz",
+ "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.14.5",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@sinonjs/commons": {
+ "version": "1.8.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@sinonjs/commons/-/commons-1.8.3.tgz",
+ "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==",
+ "dev": true,
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "@sinonjs/fake-timers": {
+ "version": "6.0.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz",
+ "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.7.0"
+ }
+ },
+ "@sinonjs/samsam": {
+ "version": "5.3.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@sinonjs/samsam/-/samsam-5.3.1.tgz",
+ "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.6.0",
+ "lodash.get": "^4.4.2",
+ "type-detect": "^4.0.8"
+ }
+ },
+ "@sinonjs/text-encoding": {
+ "version": "0.7.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz",
+ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==",
+ "dev": true
+ },
+ "@types/chai": {
+ "version": "4.2.21",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@types/chai/-/chai-4.2.21.tgz",
+ "integrity": "sha512-yd+9qKmJxm496BOV9CMNaey8TWsikaZOwMRwPHQIjcOJM9oV+fi9ZMNw3JsVnbEEbo2gRTDnGEBv8pjyn67hNg==",
+ "dev": true
+ },
+ "@types/command-line-args": {
+ "version": "5.0.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@types/command-line-args/-/command-line-args-5.0.1.tgz",
+ "integrity": "sha512-+pAMlf+fHYWFDf4OvzEXPsVKLIahB66drrWXPxMe9IapFxjF5Ir+kFAR9qctKxZW4weuFL5ydm3V5yCGnJieew=="
+ },
+ "@types/command-line-usage": {
+ "version": "5.0.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@types/command-line-usage/-/command-line-usage-5.0.2.tgz",
+ "integrity": "sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg=="
+ },
+ "@types/mocha": {
+ "version": "8.2.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@types/mocha/-/mocha-8.2.3.tgz",
+ "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "14.17.4",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@types/node/-/node-14.17.4.tgz",
+ "integrity": "sha512-8kQ3+wKGRNN0ghtEn7EGps/B8CzuBz1nXZEIGGLP2GnwbqYn4dbTs7k+VKLTq1HvZLRCIDtN3Snx1Ege8B7L5A==",
+ "dev": true
+ },
+ "@types/sinon": {
+ "version": "9.0.11",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@types/sinon/-/sinon-9.0.11.tgz",
+ "integrity": "sha512-PwP4UY33SeeVKodNE37ZlOsR9cReypbMJOhZ7BVE0lB+Hix3efCOxiJWiE5Ia+yL9Cn2Ch72EjFTRze8RZsNtg==",
+ "dev": true,
+ "requires": {
+ "@types/sinonjs__fake-timers": "*"
+ }
+ },
+ "@types/sinon-chai": {
+ "version": "3.2.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@types/sinon-chai/-/sinon-chai-3.2.5.tgz",
+ "integrity": "sha512-bKQqIpew7mmIGNRlxW6Zli/QVyc3zikpGzCa797B/tRnD9OtHvZ/ts8sYXV+Ilj9u3QRaUEM8xrjgd1gwm1BpQ==",
+ "dev": true,
+ "requires": {
+ "@types/chai": "*",
+ "@types/sinon": "*"
+ }
+ },
+ "@types/sinonjs__fake-timers": {
+ "version": "6.0.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.3.tgz",
+ "integrity": "sha512-E1dU4fzC9wN2QK2Cr1MLCfyHM8BoNnRFvuf45LYMPNDA+WqbNzC45S4UzPxvp1fFJ1rvSGU0bPvdd35VLmXG8g==",
+ "dev": true
+ },
+ "@ungap/promise-all-settled": {
+ "version": "1.1.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
+ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
+ "dev": true
+ },
+ "ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "http://mirrors.tools.huawei.com/npm/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "array-back": {
+ "version": "3.1.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/array-back/-/array-back-3.1.0.tgz",
+ "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q=="
+ },
+ "assertion-error": {
+ "version": "1.1.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true
+ },
+ "ast-types": {
+ "version": "0.14.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/ast-types/-/ast-types-0.14.2.tgz",
+ "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==",
+ "requires": {
+ "tslib": "^2.0.1"
+ }
+ },
+ "babel-plugin-dynamic-import-node": {
+ "version": "2.3.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
+ "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
+ "requires": {
+ "object.assign": "^4.1.0"
+ }
+ },
+ "babel-plugin-polyfill-corejs2": {
+ "version": "0.2.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz",
+ "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==",
+ "requires": {
+ "@babel/compat-data": "^7.13.11",
+ "@babel/helper-define-polyfill-provider": "^0.2.2",
+ "semver": "^6.1.1"
+ }
+ },
+ "babel-plugin-polyfill-corejs3": {
+ "version": "0.2.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz",
+ "integrity": "sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g==",
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.2.2",
+ "core-js-compat": "^3.14.0"
+ }
+ },
+ "babel-plugin-polyfill-regenerator": {
+ "version": "0.2.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz",
+ "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==",
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.2.2"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "http://mirrors.tools.huawei.com/npm/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "browser-stdout": {
+ "version": "1.3.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+ "dev": true
+ },
+ "browserslist": {
+ "version": "4.16.6",
+ "resolved": "http://mirrors.tools.huawei.com/npm/browserslist/-/browserslist-4.16.6.tgz",
+ "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==",
+ "requires": {
+ "caniuse-lite": "^1.0.30001219",
+ "colorette": "^1.2.2",
+ "electron-to-chromium": "^1.3.723",
+ "escalade": "^3.1.1",
+ "node-releases": "^1.1.71"
+ }
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "camelcase": {
+ "version": "6.2.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/camelcase/-/camelcase-6.2.0.tgz",
+ "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==",
+ "dev": true
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001241",
+ "resolved": "http://mirrors.tools.huawei.com/npm/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz",
+ "integrity": "sha512-1uoSZ1Pq1VpH0WerIMqwptXHNNGfdl7d1cJUFs80CwQ/lVzdhTvsFZCeNFslze7AjsQnb4C85tzclPa1VShbeQ=="
+ },
+ "chai": {
+ "version": "4.3.4",
+ "resolved": "http://mirrors.tools.huawei.com/npm/chai/-/chai-4.3.4.tgz",
+ "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==",
+ "dev": true,
+ "requires": {
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.2",
+ "deep-eql": "^3.0.1",
+ "get-func-name": "^2.0.0",
+ "pathval": "^1.1.1",
+ "type-detect": "^4.0.5"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "check-error": {
+ "version": "1.0.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
+ "dev": true
+ },
+ "chokidar": {
+ "version": "3.5.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/chokidar/-/chokidar-3.5.1.tgz",
+ "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.1",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.1",
+ "glob-parent": "~5.1.0",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.5.0"
+ }
+ },
+ "cliui": {
+ "version": "7.0.4",
+ "resolved": "http://mirrors.tools.huawei.com/npm/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "colorette": {
+ "version": "1.2.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/colorette/-/colorette-1.2.2.tgz",
+ "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w=="
+ },
+ "command-line-args": {
+ "version": "5.1.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/command-line-args/-/command-line-args-5.1.3.tgz",
+ "integrity": "sha512-a5tF6mjqRSOBswBwdMkKY47JQ464Dkg9Pcwbxwo9wxRhKWZjtBktmBASllk3AMJ7qBuWgsAGtVa7b2/+EsymOQ==",
+ "requires": {
+ "array-back": "^3.1.0",
+ "find-replace": "^3.0.0",
+ "lodash.camelcase": "^4.3.0",
+ "typical": "^4.0.0"
+ }
+ },
+ "command-line-usage": {
+ "version": "6.1.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/command-line-usage/-/command-line-usage-6.1.1.tgz",
+ "integrity": "sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA==",
+ "requires": {
+ "array-back": "^4.0.1",
+ "chalk": "^2.4.2",
+ "table-layout": "^1.0.1",
+ "typical": "^5.2.0"
+ },
+ "dependencies": {
+ "array-back": {
+ "version": "4.0.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/array-back/-/array-back-4.0.2.tgz",
+ "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg=="
+ },
+ "typical": {
+ "version": "5.2.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/typical/-/typical-5.2.0.tgz",
+ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg=="
+ }
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "convert-source-map": {
+ "version": "1.8.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/convert-source-map/-/convert-source-map-1.8.0.tgz",
+ "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
+ "requires": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "core-js-compat": {
+ "version": "3.15.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/core-js-compat/-/core-js-compat-3.15.2.tgz",
+ "integrity": "sha512-Wp+BJVvwopjI+A1EFqm2dwUmWYXrvucmtIB2LgXn/Rb+gWPKYxtmb4GKHGKG/KGF1eK9jfjzT38DITbTOCX/SQ==",
+ "requires": {
+ "browserslist": "^4.16.6",
+ "semver": "7.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/semver/-/semver-7.0.0.tgz",
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A=="
+ }
+ }
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "decamelize": {
+ "version": "4.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/decamelize/-/decamelize-4.0.0.tgz",
+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
+ "dev": true
+ },
+ "deep-eql": {
+ "version": "3.0.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/deep-eql/-/deep-eql-3.0.1.tgz",
+ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
+ "dev": true,
+ "requires": {
+ "type-detect": "^4.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "diff": {
+ "version": "5.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/diff/-/diff-5.0.0.tgz",
+ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.3.762",
+ "resolved": "http://mirrors.tools.huawei.com/npm/electron-to-chromium/-/electron-to-chromium-1.3.762.tgz",
+ "integrity": "sha512-LehWjRpfPcK8F1Lf/NZoAwWLWnjJVo0SZeQ9j/tvnBWYcT99qDqgo4raAfS2oTKZjPrR/jxruh85DGgDUmywEA=="
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-replace": {
+ "version": "3.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/find-replace/-/find-replace-3.0.0.tgz",
+ "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==",
+ "requires": {
+ "array-back": "^3.0.1"
+ }
+ },
+ "find-up": {
+ "version": "5.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "flat": {
+ "version": "5.0.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+ "dev": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
+ },
+ "get-func-name": {
+ "version": "2.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/get-func-name/-/get-func-name-2.0.0.tgz",
+ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
+ "dev": true
+ },
+ "get-intrinsic": {
+ "version": "1.1.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+ "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "http://mirrors.tools.huawei.com/npm/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
+ },
+ "graceful-fs": {
+ "version": "4.2.6",
+ "resolved": "http://mirrors.tools.huawei.com/npm/graceful-fs/-/graceful-fs-4.2.6.tgz",
+ "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
+ },
+ "growl": {
+ "version": "1.10.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/growl/-/growl-1.10.5.tgz",
+ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+ "dev": true
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ },
+ "has-symbols": {
+ "version": "1.0.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/has-symbols/-/has-symbols-1.0.2.tgz",
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+ },
+ "he": {
+ "version": "1.2.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "http://mirrors.tools.huawei.com/npm/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "http://mirrors.tools.huawei.com/npm/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-core-module": {
+ "version": "2.4.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/is-core-module/-/is-core-module-2.4.0.tgz",
+ "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==",
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ },
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "dev": true
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "js-yaml": {
+ "version": "3.14.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
+ },
+ "json5": {
+ "version": "2.2.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/json5/-/json5-2.2.0.tgz",
+ "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "just-extend": {
+ "version": "4.2.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/just-extend/-/just-extend-4.2.1.tgz",
+ "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==",
+ "dev": true
+ },
+ "klaw": {
+ "version": "2.1.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/klaw/-/klaw-2.1.1.tgz",
+ "integrity": "sha1-QrdolHARacyRD9DRnOZ3tfs3ivE=",
+ "requires": {
+ "graceful-fs": "^4.1.9"
+ }
+ },
+ "locate-path": {
+ "version": "6.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^5.0.0"
+ }
+ },
+ "lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
+ },
+ "lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "http://mirrors.tools.huawei.com/npm/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
+ },
+ "lodash.get": {
+ "version": "4.4.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "4.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/log-symbols/-/log-symbols-4.0.0.tgz",
+ "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/chalk/-/chalk-4.1.1.tgz",
+ "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "http://mirrors.tools.huawei.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "http://mirrors.tools.huawei.com/npm/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ },
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "mocha": {
+ "version": "8.4.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/mocha/-/mocha-8.4.0.tgz",
+ "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==",
+ "dev": true,
+ "requires": {
+ "@ungap/promise-all-settled": "1.1.2",
+ "ansi-colors": "4.1.1",
+ "browser-stdout": "1.3.1",
+ "chokidar": "3.5.1",
+ "debug": "4.3.1",
+ "diff": "5.0.0",
+ "escape-string-regexp": "4.0.0",
+ "find-up": "5.0.0",
+ "glob": "7.1.6",
+ "growl": "1.10.5",
+ "he": "1.2.0",
+ "js-yaml": "4.0.0",
+ "log-symbols": "4.0.0",
+ "minimatch": "3.0.4",
+ "ms": "2.1.3",
+ "nanoid": "3.1.20",
+ "serialize-javascript": "5.0.1",
+ "strip-json-comments": "3.1.1",
+ "supports-color": "8.1.1",
+ "which": "2.0.2",
+ "wide-align": "1.1.3",
+ "workerpool": "6.1.0",
+ "yargs": "16.2.0",
+ "yargs-parser": "20.2.4",
+ "yargs-unparser": "2.0.0"
+ },
+ "dependencies": {
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "4.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/js-yaml/-/js-yaml-4.0.0.tgz",
+ "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "20.2.4",
+ "resolved": "http://mirrors.tools.huawei.com/npm/yargs-parser/-/yargs-parser-20.2.4.tgz",
+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
+ "dev": true
+ }
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "nanoid": {
+ "version": "3.1.20",
+ "resolved": "http://mirrors.tools.huawei.com/npm/nanoid/-/nanoid-3.1.20.tgz",
+ "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==",
+ "dev": true
+ },
+ "nise": {
+ "version": "4.1.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/nise/-/nise-4.1.0.tgz",
+ "integrity": "sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.7.0",
+ "@sinonjs/fake-timers": "^6.0.0",
+ "@sinonjs/text-encoding": "^0.7.1",
+ "just-extend": "^4.0.2",
+ "path-to-regexp": "^1.7.0"
+ }
+ },
+ "node-releases": {
+ "version": "1.1.73",
+ "resolved": "http://mirrors.tools.huawei.com/npm/node-releases/-/node-releases-1.1.73.tgz",
+ "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg=="
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ },
+ "object.assign": {
+ "version": "4.1.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "5.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^3.0.2"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "http://mirrors.tools.huawei.com/npm/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+ },
+ "path-to-regexp": {
+ "version": "1.8.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
+ "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+ "dev": true,
+ "requires": {
+ "isarray": "0.0.1"
+ }
+ },
+ "pathval": {
+ "version": "1.1.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
+ "dev": true
+ },
+ "picomatch": {
+ "version": "2.3.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/picomatch/-/picomatch-2.3.0.tgz",
+ "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
+ "dev": true
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "readdirp": {
+ "version": "3.5.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/readdirp/-/readdirp-3.5.0.tgz",
+ "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "recast": {
+ "version": "0.20.4",
+ "resolved": "http://mirrors.tools.huawei.com/npm/recast/-/recast-0.20.4.tgz",
+ "integrity": "sha512-6qLIBGGRcwjrTZGIiBpJVC/NeuXpogXNyRQpqU1zWPUigCphvApoCs9KIwDYh1eDuJ6dAFlQoi/QUyE5KQ6RBQ==",
+ "requires": {
+ "ast-types": "0.14.2",
+ "esprima": "~4.0.0",
+ "source-map": "~0.6.1",
+ "tslib": "^2.0.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "reduce-flatten": {
+ "version": "2.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/reduce-flatten/-/reduce-flatten-2.0.0.tgz",
+ "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w=="
+ },
+ "regenerate": {
+ "version": "1.4.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
+ },
+ "regenerate-unicode-properties": {
+ "version": "8.2.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz",
+ "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==",
+ "requires": {
+ "regenerate": "^1.4.0"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.7",
+ "resolved": "http://mirrors.tools.huawei.com/npm/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
+ "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
+ },
+ "regenerator-transform": {
+ "version": "0.14.5",
+ "resolved": "http://mirrors.tools.huawei.com/npm/regenerator-transform/-/regenerator-transform-0.14.5.tgz",
+ "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==",
+ "requires": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "regexpp": {
+ "version": "3.2.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg=="
+ },
+ "regexpu-core": {
+ "version": "4.7.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/regexpu-core/-/regexpu-core-4.7.1.tgz",
+ "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==",
+ "requires": {
+ "regenerate": "^1.4.0",
+ "regenerate-unicode-properties": "^8.2.0",
+ "regjsgen": "^0.5.1",
+ "regjsparser": "^0.6.4",
+ "unicode-match-property-ecmascript": "^1.0.4",
+ "unicode-match-property-value-ecmascript": "^1.2.0"
+ }
+ },
+ "regjsgen": {
+ "version": "0.5.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/regjsgen/-/regjsgen-0.5.2.tgz",
+ "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A=="
+ },
+ "regjsparser": {
+ "version": "0.6.9",
+ "resolved": "http://mirrors.tools.huawei.com/npm/regjsparser/-/regjsparser-0.6.9.tgz",
+ "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==",
+ "requires": {
+ "jsesc": "~0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0="
+ }
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
+ },
+ "resolve": {
+ "version": "1.20.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/resolve/-/resolve-1.20.0.tgz",
+ "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
+ "requires": {
+ "is-core-module": "^2.2.0",
+ "path-parse": "^1.0.6"
+ }
+ },
+ "rxjs": {
+ "version": "6.6.7",
+ "resolved": "http://mirrors.tools.huawei.com/npm/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "requires": {
+ "tslib": "^1.9.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ }
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "serialize-javascript": {
+ "version": "5.0.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
+ "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
+ "dev": true,
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "sinon": {
+ "version": "9.2.4",
+ "resolved": "http://mirrors.tools.huawei.com/npm/sinon/-/sinon-9.2.4.tgz",
+ "integrity": "sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.8.1",
+ "@sinonjs/fake-timers": "^6.0.1",
+ "@sinonjs/samsam": "^5.3.1",
+ "diff": "^4.0.2",
+ "nise": "^4.0.4",
+ "supports-color": "^7.1.0"
+ },
+ "dependencies": {
+ "diff": {
+ "version": "4.0.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "http://mirrors.tools.huawei.com/npm/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ },
+ "string-width": {
+ "version": "4.2.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/string-width/-/string-width-4.2.2.tgz",
+ "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "table-layout": {
+ "version": "1.0.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/table-layout/-/table-layout-1.0.2.tgz",
+ "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==",
+ "requires": {
+ "array-back": "^4.0.1",
+ "deep-extend": "~0.6.0",
+ "typical": "^5.2.0",
+ "wordwrapjs": "^4.0.0"
+ },
+ "dependencies": {
+ "array-back": {
+ "version": "4.0.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/array-back/-/array-back-4.0.2.tgz",
+ "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg=="
+ },
+ "typical": {
+ "version": "5.2.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/typical/-/typical-5.2.0.tgz",
+ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg=="
+ }
+ }
+ },
+ "test262-stream": {
+ "version": "1.4.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/test262-stream/-/test262-stream-1.4.0.tgz",
+ "integrity": "sha512-s364askxqgyWAtIwvYCG5nYT3P32g9ByEt1ML49ubFlPE52GA6fG5ZZGmf4y/YJgKtppRAZZ7YVd9NOsk1oUxA==",
+ "requires": {
+ "js-yaml": "^3.2.1",
+ "klaw": "^2.1.0"
+ }
+ },
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "ts-sinon": {
+ "version": "1.2.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/ts-sinon/-/ts-sinon-1.2.1.tgz",
+ "integrity": "sha512-p+ZtMR7NfeBS0dGvPGhMrUY/wFdmTlhcyHIzKle32lQucPA2tF/2xO6oz5aYoXsxbrySu0SqcaupM6L+L9Msgg==",
+ "dev": true,
+ "requires": {
+ "@types/node": "^11.15.20",
+ "@types/sinon": "^9.0.5",
+ "@types/sinon-chai": "^3.2.4",
+ "sinon": "^9.0.3"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "11.15.54",
+ "resolved": "http://mirrors.tools.huawei.com/npm/@types/node/-/node-11.15.54.tgz",
+ "integrity": "sha512-1RWYiq+5UfozGsU6MwJyFX6BtktcT10XRjvcAQmskCtMcW3tPske88lM/nHv7BQG1w9KBXI1zPGuu5PnNCX14g==",
+ "dev": true
+ }
+ }
+ },
+ "tslib": {
+ "version": "2.3.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/tslib/-/tslib-2.3.0.tgz",
+ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
+ },
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "http://mirrors.tools.huawei.com/npm/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true
+ },
+ "typescript": {
+ "version": "3.9.10",
+ "resolved": "http://mirrors.tools.huawei.com/npm/typescript/-/typescript-3.9.10.tgz",
+ "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==",
+ "dev": true
+ },
+ "typical": {
+ "version": "4.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/typical/-/typical-4.0.0.tgz",
+ "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw=="
+ },
+ "uid2": {
+ "version": "0.0.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/uid2/-/uid2-0.0.3.tgz",
+ "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I="
+ },
+ "unicode-canonical-property-names-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "http://mirrors.tools.huawei.com/npm/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ=="
+ },
+ "unicode-match-property-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "http://mirrors.tools.huawei.com/npm/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
+ "requires": {
+ "unicode-canonical-property-names-ecmascript": "^1.0.4",
+ "unicode-property-aliases-ecmascript": "^1.0.4"
+ }
+ },
+ "unicode-match-property-value-ecmascript": {
+ "version": "1.2.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz",
+ "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ=="
+ },
+ "unicode-property-aliases-ecmascript": {
+ "version": "1.1.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz",
+ "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg=="
+ },
+ "unique-temp-dir": {
+ "version": "1.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz",
+ "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=",
+ "requires": {
+ "mkdirp": "^0.5.1",
+ "os-tmpdir": "^1.0.1",
+ "uid2": "0.0.3"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "http://mirrors.tools.huawei.com/npm/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "wordwrapjs": {
+ "version": "4.0.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/wordwrapjs/-/wordwrapjs-4.0.1.tgz",
+ "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==",
+ "requires": {
+ "reduce-flatten": "^2.0.0",
+ "typical": "^5.2.0"
+ },
+ "dependencies": {
+ "typical": {
+ "version": "5.2.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/typical/-/typical-5.2.0.tgz",
+ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg=="
+ }
+ }
+ },
+ "workerpool": {
+ "version": "6.1.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/workerpool/-/workerpool-6.1.0.tgz",
+ "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "http://mirrors.tools.huawei.com/npm/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "http://mirrors.tools.huawei.com/npm/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "http://mirrors.tools.huawei.com/npm/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "http://mirrors.tools.huawei.com/npm/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
+ },
+ "yargs": {
+ "version": "16.2.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "requires": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "http://mirrors.tools.huawei.com/npm/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
+ },
+ "yargs-unparser": {
+ "version": "2.0.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
+ "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^6.0.0",
+ "decamelize": "^4.0.0",
+ "flat": "^5.0.2",
+ "is-plain-obj": "^2.1.0"
+ }
+ },
+ "yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "http://mirrors.tools.huawei.com/npm/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true
+ }
+ }
+}
diff --git a/ts2panda/package.json b/ts2panda/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..2fc7bed3c1bea20b335152cec5b95574d1ef154e
--- /dev/null
+++ b/ts2panda/package.json
@@ -0,0 +1,53 @@
+{
+ "name": "ts2panda",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "build:ts2abc-linux": "mkdir -p build && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=../../submodules/panda/cmake/toolchain/host_clang_8.cmake ../ts2abc && make ts2abc -j4",
+ "build:ts2abc-win": "mkdir -p build-win && cd build-win && cmake -DCMAKE_TOOLCHAIN_FILE=../../submodules/panda/cmake/toolchain/cross-clang-8-x86_64-w64-mingw32-static.cmake ../ts2abc && make ts2abc -j4",
+ "build:ts2abc-mac": "mkdir -p build-mac && cd build-mac && cmake -DPANDA_ENABLE_CLANG_TIDY=false ../ts2abc && make ts2abc -j4",
+ "build": "npm run build:irnodes && npm run build:diagnostic && npm run build:ts2abc-linux && npm run build:sources-linux",
+ "build-win": "npm run build:irnodes && npm run build:diagnostic && npm run build:ts2abc-win && npm run build:sources-win",
+ "build-mac": "npm run build:irnodes && npm run build:diagnostic && npm run build:ts2abc-mac && npm run build:sources-mac",
+ "build-full": "npm run build && npm run build-win && npm run build-mac",
+ "build:irnodes": "scripts/gen_irnodes.sh",
+ "build:diagnostic": "scripts/gen_diagnostic.sh",
+ "build:sources-linux": "tsc -b src",
+ "build:sources-win": "tsc -b src/tsconfig.win.json",
+ "build:sources-mac": "node_modules/typescript/bin/tsc -b src/tsconfig.mac.json",
+ "build:tests": "tsc -b src tests",
+ "run:tests": "mocha \"build/tests/**/*.test.js\"",
+ "test": "npm run build:tests && npm run run:tests",
+ "ast": "tsc -b tools && node build/tools/astPrinter.js",
+ "dev": "node --expose-gc build/src/index.js",
+ "clean": "rm -rf build && rm -fr build-win && rm -fr build-mac && rm -f src/irnodes.ts && rm -rf src/diagnostic.ts && rm -rf src/builtinsMap.ts"
+ },
+ "author": "",
+ "license": "",
+ "devDependencies": {
+ "@types/chai": "^4.2.12",
+ "@types/mocha": "^8.0.2",
+ "@types/node": "^14.0.27",
+ "chai": "^4.2.0",
+ "mocha": "^8.1.1",
+ "sinon": "^9.0.3",
+ "ts-sinon": "^1.2.1",
+ "typescript": "^3.9.7"
+ },
+ "dependencies": {
+ "@babel/core": "^7.12.10",
+ "@babel/preset-env": "^7.12.11",
+ "@types/command-line-args": "^5.0.0",
+ "@types/command-line-usage": "^5.0.1",
+ "command-line-args": "^5.1.1",
+ "command-line-usage": "^6.1.1",
+ "minimatch": "^3.0.4",
+ "recast": "^0.20.4",
+ "regexpp": "^3.1.0",
+ "rxjs": "^6.6.3",
+ "test262-stream": "^1.3.0",
+ "unique-temp-dir": "^1.0.0",
+ "yargs": "^16.2.0"
+ }
+}
diff --git a/ts2panda/scripts/diagnostic.rb b/ts2panda/scripts/diagnostic.rb
new file mode 100755
index 0000000000000000000000000000000000000000..73e52ad7b11d033da99b5dd764c37f517c24cd6b
--- /dev/null
+++ b/ts2panda/scripts/diagnostic.rb
@@ -0,0 +1,29 @@
+#!/usr/bin/env ruby
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+module Diagnostic
+ module_function
+
+ def datas
+ @data
+ end
+
+ def wrap_data(data)
+ @data = data
+ end
+end
+
+def Gen.on_require(data)
+ Diagnostic.wrap_data(data)
+end
\ No newline at end of file
diff --git a/ts2panda/scripts/diagnosticMessages.json b/ts2panda/scripts/diagnosticMessages.json
new file mode 100644
index 0000000000000000000000000000000000000000..c9ce61034d1ff7912502ade08437f095014df0a2
--- /dev/null
+++ b/ts2panda/scripts/diagnosticMessages.json
@@ -0,0 +1,515 @@
+{
+ "Identifier expected.": {
+ "category": "Error",
+ "code": 1003
+ },
+ "A rest parameter or binding pattern may not have a trailing comma.": {
+ "category": "Error",
+ "code": 1013
+ },
+ "A rest parameter must be last in a parameter list.": {
+ "category": "Error",
+ "code": 1014
+ },
+ "Parameter cannot have question mark and initializer.": {
+ "category": "Error",
+ "code": 1015
+ },
+ "A required parameter cannot follow an optional parameter.": {
+ "category": "Error",
+ "code": 1016
+ },
+ "The 'readonly' modifier can only appear on a property declaration or index signature.": {
+ "category": "Error",
+ "code": 1024
+ },
+ "Accessibility modifier already seen.": {
+ "category": "Error",
+ "code": 1028
+ },
+ "'{0}' modifier must precede '{1}' modifier.": {
+ "category": "Error",
+ "code": 1029
+ },
+ "'{0}' modifier already seen.": {
+ "category": "Error",
+ "code": 1030
+ },
+ "'{0}' modifier cannot appear on class elements of this kind.": {
+ "category": "Error",
+ "code": 1031
+ },
+ "A 'declare' modifier cannot be used in an already ambient context.": {
+ "category": "Error",
+ "code": 1038
+ },
+ "'{0}' modifier cannot be used in an ambient context.": {
+ "category": "Error",
+ "code": 1040
+ },
+ "'{0}' modifier cannot be used here.": {
+ "category": "Error",
+ "code": 1042
+ },
+ "'{0}' modifier cannot appear on a module or namespace element.": {
+ "category": "Error",
+ "code": 1044
+ },
+ "A rest parameter cannot be optional.": {
+ "category": "Error",
+ "code": 1047
+ },
+ "A rest parameter cannot have an initializer.": {
+ "category": "Error",
+ "code": 1048
+ },
+ "'{0}' modifier cannot appear on a type member.": {
+ "category": "Error",
+ "code": 1070
+ },
+ "'{0}' modifier cannot appear on an index signature.": {
+ "category": "Error",
+ "code": 1071
+ },
+ "A '{0}' modifier cannot be used with an import declaration.": {
+ "category": "Error",
+ "code": 1079
+ },
+ "'{0}' modifier cannot appear on a constructor declaration.": {
+ "category": "Error",
+ "code": 1089
+ },
+ "'{0}' modifier cannot appear on a parameter.": {
+ "category": "Error",
+ "code": 1090
+ },
+ "Only a single variable declaration is allowed in a 'for...in' statement.": {
+ "category": "Error",
+ "code": 1091
+ },
+ "Invalid use of '{0}' in strict mode.": {
+ "category": "Error",
+ "code": 1100
+ },
+ "A 'with' statements are not allowed in strict mode.": {
+ "category": "Error",
+ "code": 1101
+ },
+ "A 'delete' cannot be called on an identifier in strict mode.": {
+ "category": "Error",
+ "code": 1102
+ },
+ "A 'continue' statement can only be used within an enclosing iteration statement.": {
+ "category": "Error",
+ "code": 1104
+ },
+ "A 'break' statement can only be used within an enclosing iteration or switch statement.": {
+ "category": "Error",
+ "code": 1105
+ },
+ "Jump target cannot cross function boundary.": {
+ "category": "Error",
+ "code": 1107
+ },
+ "A 'return' statement can only be used within a function body.": {
+ "category": "Error",
+ "code": 1108
+ },
+ "A 'default' clause cannot appear more than once in a 'switch' statement.": {
+ "category": "Error",
+ "code": 1113
+ },
+ "Duplicate label '{0}'.": {
+ "category": "Error",
+ "code": 1114
+ },
+ "A 'continue' statement can only jump to a label of an enclosing iteration statement.": {
+ "category": "Error",
+ "code": 1115
+ },
+ "A 'break' statement can only jump to a label of an enclosing statement.": {
+ "category": "Error",
+ "code": 1116
+ },
+ "An object literal cannot have multiple properties with the same name in strict mode.": {
+ "category": "Error",
+ "code": 1117
+ },
+ "An object literal cannot have multiple get/set accessors with the same name.": {
+ "category": "Error",
+ "code": 1118
+ },
+ "An object literal cannot have property and accessor with the same name.": {
+ "category": "Error",
+ "code": 1119
+ },
+ "Octal literals are not allowed in strict mode.": {
+ "category": "Error",
+ "code": 1121
+ },
+ "Octal escape sequences are not allowed in strict mode.": {
+ "category": "Error",
+ "code": 1122
+ },
+ "Variable declaration list cannot be empty.": {
+ "category": "Error",
+ "code": 1123
+ },
+ "Line break not permitted here.": {
+ "category": "Error",
+ "code": 1142
+ },
+ "The 'const' declarations can only be declared inside a block.": {
+ "category": "Error",
+ "code": 1156
+ },
+ "The 'const' declarations must be initialized.": {
+ "category": "Error",
+ "code": 1155
+ },
+ "The 'let' declarations can only be declared inside a block.": {
+ "category": "Error",
+ "code": 1157
+ },
+ "Unterminated regular expression literal.": {
+ "category": "Error",
+ "code": 1161
+ },
+ "An object member cannot be declared optional.": {
+ "category": "Error",
+ "code": 1162
+ },
+ "A 'yield' expression is only allowed in a generator body.": {
+ "category": "Error",
+ "code": 1163
+ },
+ "A comma expression is not allowed in a computed property name.": {
+ "category": "Error",
+ "code": 1171
+ },
+ "The 'extends' clause already seen.": {
+ "category": "Error",
+ "code": 1172
+ },
+ "Classes can only extend a single class.": {
+ "category": "Error",
+ "code": 1174
+ },
+ "The 'implements' clause already seen.": {
+ "category": "Error",
+ "code": 1175
+ },
+ "Property destructuring pattern expected.": {
+ "category": "Error",
+ "code": 1180
+ },
+ "A destructuring declaration must have an initializer.": {
+ "category": "Error",
+ "code": 1182
+ },
+ "A_rest_element_cannot_have_an_initializer.": {
+ "category": "Error",
+ "code": 1186
+ },
+ "A parameter property may not be declared using a binding pattern.": {
+ "category": "Error",
+ "code": 1187
+ },
+ "Only a single variable declaration is allowed in a 'for...of' statement.": {
+ "category": "Error",
+ "code": 1188
+ },
+ "The variable declaration of a 'for...in' statement cannot have an initializer.": {
+ "category": "Error",
+ "code": 1189
+ },
+ "The variable declaration of a 'for...of' statement cannot have an initializer.": {
+ "category": "Error",
+ "code": 1190
+ },
+ "Line terminator not permitted before arrow.": {
+ "category": "Error",
+ "code": 1200
+ },
+ "Decorators are not valid here.": {
+ "category": "Error",
+ "code": 1206
+ },
+ "Decorators cannot be applied to multiple get/set accessors of the same name.": {
+ "category": "Error",
+ "code": 1207
+ },
+ "Invalid use of '{0}'. Class definitions are automatically in strict mode.": {
+ "category": "Error",
+ "code": 1210
+ },
+ "Identifier expected. '{0}' is a reserved word in strict mode.": {
+ "category": "Error",
+ "code": 1212
+ },
+ "Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode.": {
+ "category": "Error",
+ "code": 1213
+ },
+ "Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode.": {
+ "category": "Error",
+ "code": 1214
+ },
+ "An import declaration can only be used in a namespace or module.": {
+ "category": "Error",
+ "code": 1232
+ },
+ "An export declaration can only be used in a module.": {
+ "category": "Error",
+ "code": 1233
+ },
+ "The 'abstract' modifier can only appear on a class, method, or property declaration.": {
+ "category": "Error",
+ "code": 1242
+ },
+ "'{0}' modifier cannot be used with '{1}' modifier.": {
+ "category": "Error",
+ "code": 1243
+ },
+ "Abstract methods can only appear within an abstract class.": {
+ "category": "Error",
+ "code": 1244
+ },
+ "A class member cannot have the '{0}' keyword.": {
+ "category": "Error",
+ "code": 1248
+ },
+ "A decorator can only decorate a method implementation, not an overload.": {
+ "category": "Error",
+ "code": 1249
+ },
+ "Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'.": {
+ "category": "Error",
+ "code": 1250
+ },
+ "Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Class definitions are automatically in strict mode.": {
+ "category": "Error",
+ "code": 1251
+ },
+ "Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Modules are automatically in strict mode.": {
+ "category": "Error",
+ "code": 1252
+ },
+ "A definite assignment assertion '!' is not permitted in this context.": {
+ "category": "Error",
+ "code": 1255
+ },
+ "Identifier expected. '{0}' is a reserved word at the top-level of a module.": {
+ "category": "Error",
+ "code": 1262
+ },
+ "Declarations with initializers cannot also have definite assignment assertions.": {
+ "category": "Error",
+ "code": 1263
+ },
+ "Declarations with definite assignment assertions must also have type annotations.": {
+ "category": "Error",
+ "code": 1264
+ },
+ "await expressions are only allowed within async functions and at the top levels of modules.": {
+ "category": "Error",
+ "code": 1308
+ },
+ "Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern.": {
+ "category": "Error",
+ "code": 1312
+ },
+ "A parameter property cannot be declared using a rest parameter.": {
+ "category": "Error",
+ "code": 1317
+ },
+ "A default export can only be used in an ECMAScript-style module.": {
+ "category": "Error",
+ "code": 1319
+ },
+ "use strict directive cannot be used with non-simple parameter list.": {
+ "category": "Error",
+ "code": 1347
+ },
+ "Identifier expected. '{0}' is a reserved word that cannot be used here.": {
+ "category": "Error",
+ "code": 1359
+ },
+ "Duplicate identifier '{0}'.": {
+ "category": "Error",
+ "code": 2300
+ },
+ "The 'super' can only be referenced in a derived class.": {
+ "category": "Error",
+ "code": 2335
+ },
+ "The 'super' cannot be referenced in constructor arguments.": {
+ "category": "Error",
+ "code": 2336
+ },
+ "Super calls are not permitted outside constructors or in nested functions inside constructors.": {
+ "category": "Error",
+ "code": 2337
+ },
+ "The 'super' property access is permitted only in a constructor, member function, or member accessor of a derived class.": {
+ "category": "Error",
+ "code": 2338
+ },
+ "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.": {
+ "category": "Error",
+ "code": 2358
+ },
+ "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type.": {
+ "category": "Error",
+ "code": 2359
+ },
+ "The left-hand side of an 'in' expression must be of type 'any', 'string', 'number', or 'symbol'.": {
+ "category": "Error",
+ "code": 2360
+ },
+ "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter.": {
+ "category": "Error",
+ "code": 2361
+ },
+ "The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.": {
+ "category": "Error",
+ "code": 2362
+ },
+ "The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.": {
+ "category": "Error",
+ "code": 2363
+ },
+ "The left-hand side of an assignment expression must be a variable or a property access.": {
+ "category": "Error",
+ "code": 2364
+ },
+ "Multiple constructor implementations are not allowed.": {
+ "category": "Error",
+ "code": 2392
+ },
+ "Declaration name conflicts with built-in global identifier '{0}'.": {
+ "category": "Error",
+ "code": 2397
+ },
+ "The left-hand side of a 'for...in' statement cannot use a type annotation.": {
+ "category": "Error",
+ "code": 2404
+ },
+ "The 'super' cannot be referenced in a computed property name.": {
+ "category": "Error",
+ "code": 2466
+ },
+ "A rest element must be last in a destructuring pattern.": {
+ "category": "Error",
+ "code": 2462
+ },
+ "The 'let' is not allowed to be used as a name in 'let' or 'const' declarations.": {
+ "category": "Error",
+ "code": 2480
+ },
+ "The left-hand side of a 'for...of' statement cannot use a type annotation.": {
+ "category": "Error",
+ "code": 2483
+ },
+ "The left-hand side of a 'for...of' statement must be a variable or a property access.": {
+ "category": "Error",
+ "code": 2487
+ },
+ "The left-hand side of a 'for...in' statement cannot be a destructuring pattern.": {
+ "category": "Error",
+ "code": 2491
+ },
+ "A rest element cannot contain a binding pattern.": {
+ "category": "Error",
+ "code": 2501
+ },
+ "The 'super' can only be referenced in members of derived classes or object literal expressions.": {
+ "category": "Error",
+ "code": 2660
+ },
+ "Cannot export '{0}'. Only local declarations can be exported from a module.": {
+ "category": "Error",
+ "code": 2661
+ },
+ "Left side of comma operator is unused and has no side effects.": {
+ "category": "Error",
+ "code": 2695,
+ "reportsUnnecessary": true
+ },
+ "The target of an object rest assignment must be a variable or a property access.": {
+ "category": "Error",
+ "code": 2701
+ },
+ "The target of an object rest assignment may not be an optional property access.": {
+ "category": "Error",
+ "code": 2778
+ },
+ "The left-hand side of an assignment expression may not be an optional property access.": {
+ "category": "Error",
+ "code": 2779
+ },
+ "The left-hand side of a 'for...of' statement may not be an optional property access.": {
+ "category": "Error",
+ "code": 2781
+ },
+ "'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?": {
+ "category": "Error",
+ "code": 17012
+ },
+ "Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor.": {
+ "category": "Error",
+ "code": 17013
+ },
+ "An accessibility modifier cannot be used with a private identifier.": {
+ "category": "Error",
+ "code": 18010
+ },
+ "Private identifiers are not allowed outside class bodies.": {
+ "category": "Error",
+ "code": 18016
+ },
+ "'{0}' modifier cannot be used with a private identifier.": {
+ "category": "Error",
+ "code": 18019
+ },
+ "In strict mode code, functions can only be declared at top level or inside a block.": {
+ "category": "Error",
+ "code": 19000
+ },
+ "Class Declaration can only be declared at top level or inside a block.": {
+ "category": "Error",
+ "code": 19001
+ },
+ "Incorrect regular expression": {
+ "category": "Error",
+ "code": 19002
+ },
+ "Invalid regular expression: '{0}': Invalid escape": {
+ "category": "Error",
+ "code": 19003
+ },
+ "\\8 and \\9 are not allowed in strict mode": {
+ "category": "Error",
+ "code": 19004
+ },
+ "const and let declarations not allowed in statement positions": {
+ "category": "Error",
+ "code": 19005
+ },
+ "Getter must not have any formal parameters": {
+ "category": "Error",
+ "code": 19006
+ },
+ "Class declaration not allowed in statement position": {
+ "category": "Error",
+ "code": 19007
+ },
+ "Lexical declaration 'let' not allowed in statement position": {
+ "category": "Error",
+ "code": 19008
+ },
+ "Lexical declaration 'const' not allowed in statement position": {
+ "category": "Error",
+ "code": 19009
+ }
+}
\ No newline at end of file
diff --git a/ts2panda/scripts/gen_diagnostic.rb b/ts2panda/scripts/gen_diagnostic.rb
new file mode 100755
index 0000000000000000000000000000000000000000..566ca863d05bba5ad147f6d3a11071495ab7ac66
--- /dev/null
+++ b/ts2panda/scripts/gen_diagnostic.rb
@@ -0,0 +1,72 @@
+#!/usr/bin/env ruby
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+require 'optparse'
+require 'yaml'
+require 'json'
+require 'erb'
+
+module Gen
+ def self.on_require(data); end
+end
+
+require_relative ('diagnostic')
+
+def create_sandbox
+ # nothing but Ruby core libs and 'required' files
+ binding
+end
+
+def check_option(optparser, options, key)
+ return if options[key]
+
+ puts "Missing option: --#{key}"
+ puts optparser
+ exit false
+end
+
+options = OpenStruct.new
+
+optparser = OptionParser.new do |opts|
+ opts.banner = 'Usage: gen.rb [options]'
+
+ opts.on('-t', '--template FILE', 'Template for file generation (required)')
+ opts.on('-d', '--datafile FILE', 'Source data in JSON format (required)')
+ opts.on('-o', '--output FILE', 'Output file (required)')
+ opts.on('-r', '--require foo,bar,baz', Array, 'List of files to be required for generation')
+
+ opts.on('-h', '--help', 'Prints this help') do
+ puts opts
+ exit
+ end
+end
+optparser.parse!(into: options)
+
+check_option(optparser, options, :datafile)
+check_option(optparser, options, :template)
+check_option(optparser, options, :output)
+
+template_file = File.read(options.template)
+output_file = File.open(options.output, 'w')
+
+data = YAML.load_file(options.datafile)
+data = JSON.parse(data.to_json)
+options&.require&.each { |r| require r }
+Gen.on_require(data)
+
+t = ERB.new(template_file, nil, '%-')
+t.filename = options.template
+
+output_file.write(t.result(create_sandbox))
+output_file.close
diff --git a/ts2panda/scripts/gen_diagnostic.sh b/ts2panda/scripts/gen_diagnostic.sh
new file mode 100644
index 0000000000000000000000000000000000000000..7b6481a0a9700c796c201a6c8376c1c1de7bd554
--- /dev/null
+++ b/ts2panda/scripts/gen_diagnostic.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+set -e
+
+PANDA_ROOT="../submodules/panda"
+ISA="scripts/diagnosticMessages.json"
+TEMPLATE="templates/diagnostic.ts.erb"
+OUTPUT="src/diagnostic.ts"
+
+ruby scripts/gen_diagnostic.rb --template $TEMPLATE --data $ISA --output $OUTPUT
diff --git a/ts2panda/scripts/gen_irnodes.sh b/ts2panda/scripts/gen_irnodes.sh
new file mode 100644
index 0000000000000000000000000000000000000000..e3ba64b5af69f6848d67c52571e5352de851dbb7
--- /dev/null
+++ b/ts2panda/scripts/gen_irnodes.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -e
+
+PANDA_ROOT="../submodules/panda"
+ISA="$PANDA_ROOT/isa/isa.yaml"
+DEPS="$PANDA_ROOT/isa/isapi.rb,$PANDA_ROOT/libpandafile/pandafile_isapi.rb"
+TEMPLATE="templates/irnodes.ts.erb"
+OUTPUT="src/irnodes.ts"
+
+ruby $PANDA_ROOT/isa/gen.rb --template $TEMPLATE --data $ISA --output $OUTPUT --require "$DEPS"
+
+BUILTIN_DATA="$PANDA_ROOT/isa/builtins.yaml"
+BUILTIN_REQS="$PANDA_ROOT/isa/builtinsapi.rb,$PANDA_ROOT/runtime/ecmascript/ecma_builtins.rb"
+BUILTIN_TEMPLATE="templates/builtinsMap.ts.erb"
+BUILTIN_OUTPUT="src/builtinsMap.ts"
+
+ruby $PANDA_ROOT/isa/gen.rb --template $BUILTIN_TEMPLATE --data $BUILTIN_DATA --output $BUILTIN_OUTPUT --require "$BUILTIN_REQS"
diff --git a/ts2panda/scripts/generate_js_bytecode.py b/ts2panda/scripts/generate_js_bytecode.py
new file mode 100755
index 0000000000000000000000000000000000000000..d330635db08287ffddcaecb20040f891cfc1be50
--- /dev/null
+++ b/ts2panda/scripts/generate_js_bytecode.py
@@ -0,0 +1,87 @@
+#!/usr/bin/env python3
+# coding: utf-8
+
+"""
+Copyright (c) 2021 Huawei Device Co., Ltd.
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Description: Generate javascript byte code
+"""
+
+import os
+import subprocess
+import platform
+import argparse
+
+
+def parse_args():
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--src-js',
+ help='js source file')
+ parser.add_argument('--dst-file',
+ help='the converted target file')
+ parser.add_argument("--node",
+ help='path to nodejs exetuable')
+ parser.add_argument('--frontend-tool-path',
+ help='path to frontend conversion tool')
+ parser.add_argument("--node-modules",
+ help='path to node-modules exetuable')
+ parser.add_argument("--debug", action='store_true',
+ help='whether add debuginfo')
+ arguments = parser.parse_args()
+ return arguments
+
+
+def set_env(input_arguments):
+ jsoner_format = ":"
+ if platform.system() == "Windows":
+ jsoner_format = ";"
+ os.environ["PATH"] = input_arguments.node + \
+ jsoner_format + os.environ["PATH"]
+
+
+def run_command(cmd, execution_path):
+ print(" ".join(cmd) + " | execution_path: " + execution_path)
+ proc = subprocess.Popen(cmd, cwd=execution_path)
+ proc.wait()
+
+
+def gen_abc_info(input_arguments):
+
+ set_env(input_arguments)
+ frontend_tool_path = input_arguments.frontend_tool_path
+
+ (path, name) = os.path.split(frontend_tool_path)
+
+ if not os.path.exists(os.path.join(path, "node_modules")):
+ if input_arguments.node_modules:
+ cmd = ['cp', "-rf", input_arguments.node_modules, path]
+ run_command(cmd, path)
+ else:
+ cmd = ['npm', 'install']
+ run_command(cmd, path)
+
+ cmd = [os.path.join(input_arguments.node, "node"),
+ '--expose-gc',
+ os.path.join(name, 'src/index.js'),
+ input_arguments.src_js,
+ '-o', input_arguments.dst_file,
+ '-t', '0']
+
+ if input_arguments.debug:
+ cmd.insert(3, '--debug')
+ run_command(cmd, path)
+
+
+if __name__ == '__main__':
+ gen_abc_info(parse_args())
diff --git a/ts2panda/scripts/generate_plugin.py b/ts2panda/scripts/generate_plugin.py
new file mode 100755
index 0000000000000000000000000000000000000000..996cabd9e3724a7c8e7864b0d27513645013d518
--- /dev/null
+++ b/ts2panda/scripts/generate_plugin.py
@@ -0,0 +1,171 @@
+#!/usr/bin/env python3
+#coding: utf-8
+
+"""
+Copyright (c) 2021 Huawei Device Co., Ltd.
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+Description: Generate interface to get java plugin's js code and binary
+"""
+
+import os
+import subprocess
+import argparse
+
+JAVA_FILE_SUFFIX = "JsCode"
+JS_BIN_EXT = ".abc"
+ARRAY_MAX = 8192 # size of 8K
+
+
+def parse_args():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--node",
+ help="path to nodejs exetuable")
+ parser.add_argument("--frontend-tool-path",
+ help="path to frontend conversion tool")
+ parser.add_argument("--node-modules",
+ help='path to node-modules exetuable')
+ parser.add_argument("--plugin-path",
+ help="plugin js file path")
+ parser.add_argument("--plugin-name",
+ help="name of js file, ex: BatteryPlugin.js")
+ parser.add_argument("--generated-file",
+ help="name of generated file")
+ parser.add_argument("--package-name",
+ help="name of generated file's package")
+
+ arguments = parser.parse_args()
+ return arguments
+
+
+def split_array_by_n(array, max_len):
+ for i in range(0, len(array), max_len):
+ yield array[i: i + max_len]
+
+
+def gen_bin_info(input_arguments):
+ file_name = input_arguments.plugin_name
+ file_path = input_arguments.plugin_path
+ js_file = os.path.join(file_path, file_name)
+ file_name_pre = os.path.splitext(file_name)[0]
+
+ generate_js_bytecode = os.path.join(
+ os.path.dirname(__file__), "generate_js_bytecode.py")
+
+ (out_dir, _) = os.path.split(input_arguments.generated_file)
+ dst_file = os.path.join(out_dir, f'{file_name_pre}{JS_BIN_EXT}')
+
+ args = [
+ '--src-js',
+ js_file,
+ '--dst-file',
+ dst_file,
+ '--node',
+ input_arguments.node,
+ '--frontend-tool-path',
+ input_arguments.frontend_tool_path,
+ '--node-modules',
+ input_arguments.node_modules,
+ ]
+
+ proc = subprocess.Popen(['python3', generate_js_bytecode] + args)
+ return_code = proc.wait()
+ return return_code
+
+
+def gen_java_method(input_arguments):
+
+ file_name = input_arguments.plugin_name
+ file_path = input_arguments.plugin_path
+ out_file = input_arguments.generated_file
+
+ file_name_pre = os.path.splitext(file_name)[0]
+ js_src_file = os.path.join(file_path, file_name)
+ (out_dir, _) = os.path.split(input_arguments.generated_file)
+ js_bin_file = os.path.join(out_dir, file_name_pre + JS_BIN_EXT)
+
+ with open(out_file, "w") as output:
+ output.write("/*%s * Generated from Java and JavaScript plugins by ts2abc.%s */%s%s"
+ % (os.linesep, os.linesep, os.linesep, os.linesep))
+
+ output.write("package %s;%s"
+ % (input_arguments.package_name, os.linesep))
+ output.write("%s" % os.linesep)
+ output.write("public class %s%s {%s"
+ % (file_name_pre, JAVA_FILE_SUFFIX, os.linesep))
+
+ # write method: getJsCode
+ with open(js_src_file, "r") as input_src:
+ output.write(" public static String getJsCode() {%s"
+ % os.linesep)
+ output.write(" return%s" % os.linesep)
+ lines = input_src.readlines()
+ for line in lines[:-1]:
+ line = line.strip(os.linesep)
+ line = line.replace("\"", "\\\"")
+ output.write(" \"%s\\n\" +%s" % (line, os.linesep))
+
+ last_line = lines[-1].replace("\"", "\\\"").strip(os.linesep)
+ output.write(" \"%s\";%s" % (last_line, os.linesep))
+ output.write(" }%s" % os.linesep)
+
+ output.write("%s" % os.linesep)
+
+ # write method: getJsBytecode
+ with open(js_bin_file, "rb") as input_bin:
+ # seperate bytecode list
+ buf = bytearray(os.path.getsize(js_bin_file))
+ input_bin.readinto(buf)
+ hex_str = [hex(i) for i in buf]
+ byte_str = ["(byte)" + i for i in hex_str]
+ seperate_array = split_array_by_n(byte_str, ARRAY_MAX)
+
+ # generate seperate methods for js bytecode with ARRAY_MAX
+ method_idx = 0
+ method_len_list = []
+ for array in seperate_array:
+ output.write(" private static byte[] getJsByteCode_%s() {%s"
+ % (method_idx, os.linesep))
+ output.write(" return new byte[] {")
+ output.write(", ".join(array))
+ output.write("};%s" % os.linesep)
+ output.write(" }%s" % os.linesep)
+ method_idx = method_idx + 1
+ method_len_list.append(len(array))
+
+ # generate a method collect all seperated arrays
+ cur_pos = 0
+ output.write(" public static byte[] getJsByteCode() {%s"
+ % os.linesep)
+ output.write(" byte[] allByteCode = new byte[%s];%s"
+ % (len(byte_str), os.linesep))
+ for idx, method_len in enumerate(method_len_list):
+ output.write(" System.arraycopy(getJsByteCode_%s(), "
+ "0, allByteCode, %s, %s);%s"
+ % (idx, cur_pos, method_len, os.linesep))
+ cur_pos = cur_pos + method_len
+ output.write(" return allByteCode;%s" % os.linesep)
+ output.write(" }%s" % os.linesep)
+
+ output.write("}")
+
+
+def operate_file(input_arguments):
+ retcode = gen_bin_info(input_arguments)
+ if retcode != 0:
+ return
+
+ gen_java_method(input_arguments)
+
+
+if __name__ == "__main__":
+ operate_file(parse_args())
diff --git a/ts2panda/scripts/run.py b/ts2panda/scripts/run.py
new file mode 100755
index 0000000000000000000000000000000000000000..2f3e6e33af523b36b52aa2ee81e69a8a9f3c77bd
--- /dev/null
+++ b/ts2panda/scripts/run.py
@@ -0,0 +1,95 @@
+#!/usr/bin/env python3
+# coding: utf-8
+
+"""
+Copyright (c) 2021 Huawei Device Co., Ltd.
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Description: Compile ark front-end code with tsc
+"""
+
+import os
+import subprocess
+import argparse
+import platform
+
+
+def parse_args():
+
+ parser = argparse.ArgumentParser()
+
+ parser.add_argument('--src-dir',
+ help='Source directory')
+ parser.add_argument('--dist-dir',
+ help='Destination directory')
+ parser.add_argument('--platform',
+ help='platform, as: linux, mac, win')
+ parser.add_argument('--node',
+ help='node path')
+ parser.add_argument("--node-modules",
+ help='path to node-modules exetuable')
+
+ arguments = parser.parse_args()
+ return arguments
+
+
+def set_env(node_dir):
+ jsoner_format = ":"
+ if platform.system() == "Windows":
+ jsoner_format = ";"
+ os.environ["PATH"] = f'{node_dir}{jsoner_format}{os.environ["PATH"]}'
+
+
+def run_command(cmd, execution_path=os.getcwd()):
+ print(" ".join(cmd) + " | execution_path: " + execution_path)
+ proc = subprocess.Popen(cmd, cwd=execution_path)
+ ret = proc.wait()
+ assert not ret, f'\n{" ".join(cmd)} failed'
+
+
+def node_modules(options):
+ src_dir = options.src_dir
+ dist_dir = options.dist_dir
+ run_command(['cp', '-f', os.path.join(src_dir, "package.json"),
+ os.path.join(dist_dir, "package.json")])
+ run_command(['cp', '-f', os.path.join(src_dir, "package-lock.json"),
+ os.path.join(dist_dir, "package-lock.json")])
+
+ if options.node_modules:
+ run_command(['cp', '-rf', options.node_modules,
+ os.path.join(dist_dir, "node_modules")])
+ else:
+ run_command(['npm', 'install'], dist_dir)
+
+
+def npm_run_build(options):
+ plat_form = options.platform
+ node_modules_dir = os.path.join(options.dist_dir, 'node_modules')
+ tsc = os.path.join(node_modules_dir, "typescript/bin/tsc")
+
+ if plat_form == "linux":
+ cmd = [tsc, '-b', 'src']
+ run_command(cmd, options.dist_dir)
+ elif plat_form == "win":
+ cmd = [tsc, '-b', 'src/tsconfig.win.json']
+ run_command(cmd, options.dist_dir)
+ elif plat_form == 'mac':
+ cmd = [tsc, '-b', 'src/tsconfig.mac.json']
+ run_command(cmd, options.dist_dir)
+
+
+if __name__ == "__main__":
+ ARGS = parse_args()
+ set_env(ARGS.node)
+ node_modules(ARGS)
+ npm_run_build(ARGS)
diff --git a/ts2panda/scripts/ts2abc.js b/ts2panda/scripts/ts2abc.js
new file mode 100644
index 0000000000000000000000000000000000000000..f71d0196246db7d8bb383927c40278602f887517
--- /dev/null
+++ b/ts2panda/scripts/ts2abc.js
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+"use strict";
+const path = require("path");
+const fs = require("fs");
+const spawn = require('child_process').spawn;
+
+let isWin = !1;
+let isMac = !1;
+
+const arkDir = path.resolve(__dirname);
+
+if (fs.existsSync(path.join(arkDir, 'build-win'))) {
+ isWin = !0;
+} else if (fs.existsSync(path.join(arkDir, 'build-mac'))) {
+ isMac = !0;
+} else if (!fs.existsSync(path.join(arkDir, 'build'))) {
+ throw Error('find build fail').message;
+}
+
+let js2abc;
+if (isWin) {
+ js2abc = path.join(arkDir, 'build-win', 'bin', 'js2abc.exe');
+} else if (isMac) {
+ js2abc = path.join(arkDir, 'build-mac', 'bin', 'js2abc');
+} else {
+ js2abc = path.join(arkDir, 'build', 'bin', 'js2abc');
+}
+
+let args = process.argv.splice(2);
+let proc = spawn(`${js2abc}`, args);
+
+proc.stderr.on('data', (data) => {
+ throw Error(`${data}`).message;
+});
+
+proc.stdout.on('data', (data) => {
+ process.stdout.write(`${data}`);
+});
diff --git a/ts2panda/src/addVariable2Scope.ts b/ts2panda/src/addVariable2Scope.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8ecc7a1d3fcf59e2b3bad1383a79e4c53e8a7dd8
--- /dev/null
+++ b/ts2panda/src/addVariable2Scope.ts
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { isBindingPattern } from "./base/util";
+import * as jshelpers from "./jshelpers";
+import { Recorder } from "./recorder";
+import {
+ CatchParameter,
+ ClassDecl,
+ ConstDecl,
+ Decl,
+ FuncDecl,
+ InitStatus,
+ LetDecl,
+ ModDecl,
+ ModuleScope,
+ Scope,
+ VarDecl,
+ VariableScope
+} from "./scope";
+import { isGlobalIdentifier } from "./syntaxCheckHelper";
+import { VarDeclarationKind } from "./variable";
+
+
+function addInnerArgs(node: ts.Node, scope: VariableScope): void {
+ // the first argument for js function is func_obj
+ scope.addParameter("4funcObj", VarDeclarationKind.CONST, -1);
+ // the second argument for newTarget
+
+ if (node.kind == ts.SyntaxKind.ArrowFunction) {
+ scope.addParameter("0newTarget", VarDeclarationKind.CONST, -1);
+ scope.addParameter("0this", VarDeclarationKind.CONST, 0);
+ } else {
+ scope.addParameter("4newTarget", VarDeclarationKind.CONST, -1);
+ scope.addParameter("this", VarDeclarationKind.CONST, 0);
+ }
+
+ if (node.kind != ts.SyntaxKind.SourceFile) {
+ let funcNode = node;
+ addParameters(funcNode, scope);
+ }
+
+ if (scope.getUseArgs()) {
+ if (ts.isArrowFunction(node)) {
+ let parentVariableScope = scope.getParentVariableScope();
+ parentVariableScope.add("arguments", VarDeclarationKind.CONST, InitStatus.INITIALIZED);
+ parentVariableScope.setUseArgs(true);
+
+ scope.setUseArgs(false);
+ } else {
+ if (!scope.findLocal("arguments")) {
+ scope.add("arguments", VarDeclarationKind.CONST, InitStatus.INITIALIZED);
+ }
+ }
+ }
+}
+
+export function addVariableToScope(recorder: Recorder) {
+ let scopeMap = recorder.getScopeMap();
+ let hoistMap = recorder.getHoistMap();
+
+ scopeMap.forEach((scope, node) => {
+ let hoistDecls = [];
+ if (scope instanceof VariableScope) {
+ addInnerArgs(node, scope);
+
+ hoistDecls = hoistMap.get(scope);
+ if (hoistDecls) {
+ hoistDecls.forEach(hoistDecl => {
+ if (hoistDecl instanceof VarDecl) {
+ scope.add(hoistDecl.name, VarDeclarationKind.VAR);
+ } else if (hoistDecl instanceof FuncDecl) {
+ scope.add(hoistDecl.name, VarDeclarationKind.FUNCTION);
+ } else {
+ throw new Error("Wrong type of declaration to be hoisted")
+ }
+ })
+ }
+ }
+
+
+ let decls = scope.getDecls();
+ let nearestVariableScope = scope.getNearestVariableScope();
+ hoistDecls = hoistMap.get(nearestVariableScope);
+ for (let j = 0; j < decls.length; j++) {
+ let decl = decls[j];
+ if (hoistDecls && hoistDecls.includes(decl)) {
+ continue;
+ }
+
+ if (decl instanceof LetDecl) {
+ scope.add(decl.name, VarDeclarationKind.LET, InitStatus.UNINITIALIZED);
+ } else if (decl instanceof ConstDecl) {
+ scope.add(decl.name, VarDeclarationKind.CONST, InitStatus.UNINITIALIZED);
+ } else if (decl instanceof FuncDecl) {
+ scope.add(decl.name, VarDeclarationKind.FUNCTION);
+ } else if (decl instanceof CatchParameter) {
+ scope.add(decl.name, VarDeclarationKind.LET);
+ } else if (decl instanceof ModDecl) {
+ if (!(scope instanceof ModuleScope)) {
+ throw new Error("ModuleVariable can't exist without ModuleScope");
+ }
+ scope.add(decl.name, VarDeclarationKind.MODULE);
+ } else if (decl instanceof ClassDecl) {
+ let classNode = decl.node;
+ if (ts.isClassDeclaration(classNode)) {
+ scope.add(decl.name, VarDeclarationKind.CLASS, InitStatus.UNINITIALIZED);
+ } else {
+ let classScope = recorder.getScopeOfNode(classNode);
+ classScope.add(decl.name, VarDeclarationKind.CLASS, InitStatus.UNINITIALIZED);
+ }
+ } else {
+ /**
+ * Case 1: var declaration share a same name with function declaration, then
+ * function declaration will be hoisted and the var declaration will be left be.
+ * Case 2: "var undefined" in global scope is not added to hoistDecls,
+ * but it should be added to scope
+ */
+ if (isGlobalIdentifier(decls[j].name)) {
+ scope.add(decls[j].name, VarDeclarationKind.VAR);
+ }
+ }
+ }
+ })
+}
+
+function addParameters(node: ts.FunctionLikeDeclaration, scope: VariableScope): void {
+ let patternParams: Array = new Array();
+ for (let i = 0; i < node.parameters.length; ++i) {
+ let param = node.parameters[i];
+ let name: string = '';
+ if (isBindingPattern(param.name)) {
+ patternParams.push(param.name);
+ name = i.toString() + "pattern";
+ } else if (ts.isIdentifier(param.name)) {
+ name = jshelpers.getTextOfIdentifierOrLiteral(param.name);
+ }
+
+ scope.addParameter(name, VarDeclarationKind.VAR, i + 1);
+ }
+
+ for (let i = 0; i < patternParams.length; i++) {
+ addPatternParamterElements(patternParams[i], scope);
+ }
+}
+
+function addPatternParamterElements(pattern: ts.BindingPattern, scope: VariableScope) {
+ let name: string = '';
+ pattern.elements.forEach(bindingElement => {
+ if (ts.isOmittedExpression(bindingElement)) {
+ return;
+ }
+
+ bindingElement = bindingElement;
+ if (ts.isIdentifier(bindingElement.name)) {
+ name = jshelpers.getTextOfIdentifierOrLiteral(bindingElement.name);
+ scope.add(name, VarDeclarationKind.VAR);
+ } else if (isBindingPattern(bindingElement.name)) {
+ let innerPattern = bindingElement.name;
+ addPatternParamterElements(innerPattern, scope);
+ }
+ });
+}
diff --git a/ts2panda/src/assemblyDumper.ts b/ts2panda/src/assemblyDumper.ts
new file mode 100644
index 0000000000000000000000000000000000000000..cf52cbb5d0519db9a46e05aea4377bbf3e1eb97f
--- /dev/null
+++ b/ts2panda/src/assemblyDumper.ts
@@ -0,0 +1,220 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {
+ BuiltinR2i,
+ Imm,
+ IRNode,
+ IRNodeKind,
+ Label,
+ OperandKind,
+ VReg
+} from "./irnodes";
+import { generateCatchTables } from "./statement/tryStatement";
+import { PandaGen } from "./pandagen";
+import { CmdOptions } from "./cmdOptions";
+import { builtinsCodeMap } from "./builtinsMap";
+
+export class IntrinsicInfo {
+ readonly intrinsicName: string;
+ readonly argsNum: number;
+ readonly returnType: string;
+
+ constructor(intrinsicName: string, argsNum: number, returnType: string) {
+ this.intrinsicName = intrinsicName;
+ this.argsNum = argsNum;
+ this.returnType = returnType;
+ }
+}
+
+export class AssemblyDumper {
+ private labels: Map // Label.id : Label string name
+ private labelId: number;
+ private pg: PandaGen;
+ readonly labelPrefix = "LABEL_";
+ static intrinsicRec: Map = new Map();
+ private output: string;
+
+ constructor(pg: PandaGen) {
+ this.pg = pg;
+ this.labels = new Map();
+ this.labelId = 0;
+ this.output = "";
+ }
+
+ static writeLanguageTag(out: any): void {
+ out.str += ".language ECMAScript\n";
+ out.str += "\n";
+ }
+
+ static writeIntrinsicDecl(out: any): void {
+ out.str += ".record Ecmascript.Intrinsics \n";
+ AssemblyDumper.intrinsicRec.forEach((intrinsicInfo, mnemonic) => {
+ out.str += ".function " + intrinsicInfo!.returnType + " Ecmascript.Intrinsics." + mnemonic + "(";
+ let intrinsicArgNum = intrinsicInfo!.argsNum;
+ for (let i = 0; i < intrinsicArgNum; i++) {
+ out.str += "any a" + i.toString();
+ if (i != intrinsicArgNum - 1) {
+ out.str += ", ";
+ }
+ }
+ out.str += ") \n";
+ })
+ }
+
+ writeFunctionHeader(): void {
+ let parametersCount = this.pg.getParametersCount();
+ this.output += ".function any " + this.pg.internalName + "("
+ for (let i = 0; i < parametersCount; ++i) {
+ this.output += "any a" + i.toString();
+ if (i !== parametersCount - 1) {
+ this.output += ", ";
+ }
+ }
+ this.output += ") {\n";
+ }
+
+ writeFunctionBody(): void {
+ let irNodes: IRNode[] = this.pg.getInsns();
+ let parametersCount = this.pg.getParametersCount();
+
+ /* the first parametersCount insns are mov.dyn insns for argument initialization,
+ we can directly dump them into text
+ */
+ for (let i = 0; i < parametersCount; ++i) {
+ let node = irNodes[i];
+ this.output += "\t";
+ this.output += node.mnemonic + " v" + (node.operands[0]).num + ", a" + ((node.operands[0]).num) + "\n";
+ }
+
+ for (let i = parametersCount; i < irNodes.length; ++i) {
+ let node = irNodes[i];
+ if (node.kind === IRNodeKind.VREG || node.kind === IRNodeKind.IMM) {
+ continue;
+ }
+ if (node.kind === IRNodeKind.LABEL) {
+ this.writeLabel(node);
+ continue;
+ }
+
+ this.output += "\t"
+ this.output += node.mnemonic + " ";
+ let operands = node.operands;
+ let formats = node.formats;
+ for (let j = 0; j < operands.length; ++j) {
+ let format = formats[0];
+ let kind = format[j].kind;
+ let op = operands[j];
+
+ if (kind == OperandKind.Imm) {
+ let imm = op;
+ this.output += imm.value.toString();
+ } else if (kind == OperandKind.Id) {
+ this.output += op;
+ } else if (kind == OperandKind.StringId) {
+ let escapedOp = op.toString().replace(/\\/g, "\\\\").replace(/\t/g, "\\t")
+ .replace(/\n/g, "\\n").replace(/\"/g, "\\\"")
+ this.output += "\"" + escapedOp + "\"";
+ } else if (kind == OperandKind.DstVReg
+ || kind == OperandKind.SrcDstVReg
+ || kind == OperandKind.SrcVReg) {
+ let v = op;
+ if (v.num < 0) {
+ throw Error("invalid register, please check your insn!\nRegister was allocated at:\n" + v.getStackTrace() + "\n");
+ }
+ this.output += "v" + v.num.toString();
+ if (node instanceof BuiltinR2i) {
+ break; // we don't need to print all the registers, just the first one
+ }
+ } else if (kind == OperandKind.Label) {
+ this.output += this.getLabelName(op);
+ } else {
+ throw new Error("Unexpected OperandKind");
+ }
+ if (j < operands.length - 1) {
+ this.output += ", ";
+ }
+ }
+ if (CmdOptions.isVariantBytecode()) {
+ if (node.mnemonic.startsWith('builtin')) {
+ if (node.operands[0] instanceof Imm) {
+ let subcode = node.operands[0].value;
+ this.output += " # " + (builtinsCodeMap as any)[node.mnemonic][subcode];
+ } else {
+ throw new Error("can't go here" + node.toString());
+ }
+ }
+ }
+ this.output += "\n";
+ }
+ }
+
+ writeFunctionTail(): void {
+ this.output += "}\n";
+ }
+
+ writeFunctionCatchTable(): void {
+ let catchTables = generateCatchTables(this.pg.getCatchMap());
+ if (catchTables.length == 0) {
+ return;
+ }
+
+ this.output += "\n";
+ catchTables.forEach((catchTable) => {
+ let catchBeginLabel = catchTable.getCatchBeginLabel();
+ let labelPairs = catchTable.getLabelPairs();
+ labelPairs.forEach((labelPair) => {
+ this.output += ".catchall " + this.getLabelName(labelPair.getBeginLabel())
+ + ", " + this.getLabelName(labelPair.getEndLabel())
+ + ", " + this.getLabelName(catchBeginLabel)
+ + "\n"
+ });
+ });
+ }
+
+ getLabelName(label: Label): string {
+ let labelName: string;
+ if (!this.labels.has(label.id)) {
+ labelName = this.labelPrefix + this.labelId++;
+ this.labels.set(label.id, labelName);
+ } else {
+ labelName = this.labels.get(label.id)!;
+ }
+ return labelName;
+ }
+
+ writeLabel(label: Label): void {
+ let labelName = this.getLabelName(label);
+ this.output += labelName + ":\n";
+ }
+
+ dump(): void {
+ this.writeFunctionHeader();
+ this.writeFunctionBody();
+ this.writeFunctionCatchTable();
+ this.writeFunctionTail();
+
+ console.log(this.output);
+ }
+
+ static dumpHeader(): void {
+ let out = { str: "" };
+ AssemblyDumper.writeLanguageTag(out);
+ if (!CmdOptions.isVariantBytecode()) {
+ AssemblyDumper.writeIntrinsicDecl(out);
+ }
+ console.log(out.str)
+ }
+}
diff --git a/ts2panda/src/astutils.ts b/ts2panda/src/astutils.ts
new file mode 100644
index 0000000000000000000000000000000000000000..de080462b7d758b22034febc9553a7d10ab09116
--- /dev/null
+++ b/ts2panda/src/astutils.ts
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { VarDeclarationKind } from "./variable";
+
+export function getVarDeclarationKind(decl: ts.VariableDeclaration): VarDeclarationKind {
+ if (decl.parent.kind == ts.SyntaxKind.VariableDeclarationList) {
+ let declList = decl.parent;
+ if ((declList.flags & ts.NodeFlags.Let) != 0) {
+ return VarDeclarationKind.LET;
+ } else if ((declList.flags & ts.NodeFlags.Const) != 0) {
+ return VarDeclarationKind.CONST;
+ } else {
+ return VarDeclarationKind.VAR;
+ }
+ } else if (decl.parent.kind == ts.SyntaxKind.CatchClause) {
+ return VarDeclarationKind.LET;
+ } else {
+ throw new Error("VariableDeclaration inside " + ts.SyntaxKind[decl.parent] + " is not implemented");
+ }
+}
+
diff --git a/ts2panda/src/base/bcGenUtil.ts b/ts2panda/src/base/bcGenUtil.ts
new file mode 100644
index 0000000000000000000000000000000000000000..70061b09074ae9dca8ac9bd9df93d5de9eda075e
--- /dev/null
+++ b/ts2panda/src/base/bcGenUtil.ts
@@ -0,0 +1,385 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {
+ Call0Dyn,
+ Call1Dyn,
+ Call2Dyn,
+ Call3Dyn,
+ CalliRangeDyn,
+ CalliThisRangeDyn,
+ CloseIterator,
+ CopyDataProperties,
+ CopyModule,
+ CreateArrayWithBuffer,
+ CreateEmptyArray,
+ CreateEmptyObject,
+ CreateObjectHavingMethod,
+ CreateObjectWithBuffer,
+ CreateObjectWithExcludedKeys,
+ SetObjectWithProto,
+ Debugger,
+ DefineClassWithBuffer,
+ DefineGetterSetterByValue,
+ DelObjProp,
+ FldaiDyn,
+ GetIterator,
+ GetIteratorNext,
+ GetNextPropName,
+ GetPropertiesIterator,
+ Imm,
+ ImportModule,
+ IRNode,
+ Jmp,
+ Label,
+ LdaDyn,
+ LdaiDyn,
+ LdaStr,
+ LdGlobalVar,
+ LdHomeObject,
+ LdLexEnv,
+ LdLexVar,
+ LdModvarByName,
+ LdObjByIndex,
+ LdObjByName,
+ LdObjByValue,
+ LdSuperByName,
+ LdSuperByValue,
+ MovDyn,
+ NewLexEnv,
+ NewObjDynRange,
+ PopLexEnv,
+ ResultType,
+ ReturnUndefined,
+ StaDyn,
+ StArraySpread,
+ StGlobalVar,
+ StLexVar,
+ StModuleVar,
+ StObjByIndex,
+ StObjByName,
+ StObjByValue,
+ StOwnByIndex,
+ StOwnByName,
+ StOwnByValue,
+ StSuperByName,
+ StSuperByValue,
+ SuperCall,
+ SuperCallSpread,
+ ThrowConstAssignment,
+ ThrowDyn,
+ ThrowDeleteSuperProperty,
+ ThrowIfNotObject,
+ ThrowIfSuperNotCorrectCall,
+ ThrowPatternNonCoercible,
+ ThrowThrowNotExists,
+ ThrowUndefinedIfHole,
+ TryLdGlobalByName,
+ TryLdGlobalByValue,
+ TryStGlobalByName,
+ TryStGlobalByValue,
+ VReg
+} from "../irnodes";
+
+export function loadAccumulatorInt(value: number): IRNode {
+ return new LdaiDyn(new Imm(ResultType.Int, value));
+}
+
+export function loadAccumulatorFloat(value: number): IRNode {
+ return new FldaiDyn(new Imm(ResultType.Float, value));
+}
+
+export function loadAccumulatorString(value: string): IRNode {
+ return new LdaStr(value);
+}
+
+export function loadAccumulator(vreg: VReg): IRNode {
+ return new LdaDyn(vreg);
+}
+
+export function storeAccumulator(vreg: VReg): IRNode {
+ return new StaDyn(vreg);
+}
+
+export function deleteObjProperty(obj: VReg, prop: VReg): IRNode {
+ return new DelObjProp(obj, prop);
+}
+
+export function moveVreg(vd: VReg, vs: VReg): IRNode {
+ return new MovDyn(vd, vs);
+}
+
+export function jumpTarget(target: Label): IRNode {
+ return new Jmp(target);
+}
+
+export function creatDebugger(): IRNode {
+ return new Debugger();
+}
+
+export function throwException(): IRNode {
+ return new ThrowDyn();
+}
+
+export function throwConstAssignment(name: VReg) {
+ return new ThrowConstAssignment(name);
+}
+
+export function throwUndefinedIfHole(hole: VReg, name: VReg) {
+ return new ThrowUndefinedIfHole(hole, name);
+}
+
+export function throwThrowNotExists() {
+ return new ThrowThrowNotExists();
+}
+
+export function throwDeleteSuperProperty() {
+ return new ThrowDeleteSuperProperty();
+}
+
+export function newLexicalEnv(numVars: number) {
+ return new NewLexEnv(new Imm(ResultType.Int, numVars));
+}
+
+export function loadLexicalEnv() {
+ return new LdLexEnv();
+}
+
+export function popLexicalEnv() {
+ return new PopLexEnv();
+}
+
+export function loadLexicalVar(level: number, slot: number) {
+ return new LdLexVar(new Imm(ResultType.Int, level), new Imm(ResultType.Int, slot));
+}
+
+export function storeLexicalVar(level: number, slot: number, value: VReg) {
+ return new StLexVar(new Imm(ResultType.Int, level), new Imm(ResultType.Int, slot), value);
+}
+
+export function tryLoadGlobalByName(key: string) {
+ return new TryLdGlobalByName(key);
+}
+
+export function tryStoreGlobalByName(key: string) {
+ return new TryStGlobalByName(key);
+}
+
+export function tryLoadGlobalByValue(key: VReg) {
+ return new TryLdGlobalByValue(key);
+}
+
+export function tryStoreGlobalByValue(prop: VReg): IRNode {
+ return new TryStGlobalByValue(prop);
+}
+
+export function loadGlobalVar(name: string) {
+ return new LdGlobalVar(name);
+}
+
+export function storeGlobalVar(name: string) {
+ return new StGlobalVar(name);
+}
+
+export function loadObjByName(obj: VReg, key: string) {
+ return new LdObjByName(key, obj);
+}
+
+export function storeObjByName(obj: VReg, key: string) {
+ return new StObjByName(key, obj);
+}
+
+export function loadObjByIndex(obj: VReg, index: VReg) {
+ return new LdObjByIndex(obj, index);
+}
+
+export function storeObjByIndex(obj: VReg, index: VReg) {
+ return new StObjByIndex(obj, index);
+}
+
+export function loadObjByValue(obj: VReg, prop: VReg): IRNode {
+ return new LdObjByValue(obj, prop);
+}
+
+export function storeObjByValue(obj: VReg, prop: VReg): IRNode {
+ return new StObjByValue(obj, prop);
+}
+
+export function storeOwnByName(obj: VReg, key: string): IRNode {
+ return new StOwnByName(key, obj);
+}
+
+export function storeOwnByIndex(obj: VReg, index: VReg) {
+ return new StOwnByIndex(obj, index);
+}
+
+export function storeOwnByValue(obj: VReg, value: VReg) {
+ return new StOwnByValue(obj, value);
+}
+
+export function throwIfSuperNotCorrectCall(num: number) {
+ return new ThrowIfSuperNotCorrectCall(new Imm(ResultType.Int, num));
+}
+
+export function call(args: VReg[], passThis: boolean) {
+ let length = args.length;
+ let insn: IRNode;
+ if (!passThis) {
+ switch (length) {
+ case 1:
+ insn = new Call0Dyn(args[0]);
+ break;
+ case 2:
+ insn = new Call1Dyn(args[0], args[1]);
+ break;
+ case 3:
+ insn = new Call2Dyn(args[0], args[1], args[2]);
+ break;
+ case 4:
+ insn = new Call3Dyn(args[0], args[1], args[2], args[3]);
+ break;
+ default:
+ insn = new CalliRangeDyn(new Imm(ResultType.Int, length - 1), args);
+ }
+ } else {
+ insn = new CalliThisRangeDyn(new Imm(ResultType.Int, length - 1), args);
+ }
+
+ return insn;
+}
+
+export function newObject(args: VReg[]) {
+ return new NewObjDynRange(new Imm(ResultType.Int, args.length), args);
+}
+
+export function getPropIterator() {
+ return new GetPropertiesIterator();
+}
+
+export function getNextPropName(iter: VReg) {
+ return new GetNextPropName(iter);
+}
+
+export function returnUndefined() {
+ return new ReturnUndefined();
+}
+
+export function createEmptyObject() {
+ return new CreateEmptyObject();
+}
+
+export function createObjectHavingMethod(idx: number) {
+ return new CreateObjectHavingMethod(new Imm(ResultType.Int, idx));
+}
+
+export function createObjectWithBuffer(idx: number) {
+ return new CreateObjectWithBuffer(new Imm(ResultType.Int, idx));
+}
+
+export function setObjectWithProto(proto: VReg, object: VReg) {
+ return new SetObjectWithProto(proto, object);
+}
+
+export function copyDataProperties(dstObj: VReg, srcObj: VReg) {
+ return new CopyDataProperties(dstObj, srcObj);
+}
+
+export function defineGetterSetterByValue(obj: VReg, name: VReg, getter: VReg, setter: VReg) {
+ return new DefineGetterSetterByValue(obj, name, getter, setter);
+}
+
+export function createEmptyArray() {
+ return new CreateEmptyArray();
+}
+
+export function createArrayWithBuffer(idx: number) {
+ return new CreateArrayWithBuffer(new Imm(ResultType.Int, idx));
+}
+
+export function storeArraySpread(array: VReg, index: VReg) {
+ return new StArraySpread(array, index);
+}
+
+export function defineClassWithBuffer(id: string, idx: number, env: VReg, base: VReg) {
+ return new DefineClassWithBuffer(id, new Imm(ResultType.Int, idx), env, base);
+}
+
+export function createObjectWithExcludedKeys(obj: VReg, args: VReg[]) {
+ return new CreateObjectWithExcludedKeys(new Imm(ResultType.Int, args.length - 1), obj, args);
+}
+
+export function throwObjectNonCoercible() {
+ return new ThrowPatternNonCoercible();
+}
+
+export function throwIfNotObject(v: VReg) {
+ return new ThrowIfNotObject(v);
+}
+
+export function getIterator() {
+ return new GetIterator();
+}
+
+export function getIteratorNext(iter: VReg, nextMethod: VReg) {
+ return new GetIteratorNext(iter, nextMethod);
+}
+
+export function closeIterator(iter: VReg) {
+ return new CloseIterator(iter);
+}
+
+export function superCall(num: number, start: VReg) {
+ return new SuperCall(new Imm(ResultType.Int, num), start);
+}
+
+export function superCallSpread(vs: VReg) {
+ return new SuperCallSpread(vs);
+}
+
+export function ldSuperByName(obj: VReg, key: string) {
+ return new LdSuperByName(key, obj);
+}
+
+export function stSuperByName(obj: VReg, key: string) {
+ return new StSuperByName(key, obj);
+}
+
+export function stSuperByValue(obj: VReg, prop: VReg) {
+ return new StSuperByValue(obj, prop);
+}
+
+export function ldSuperByValue(obj: VReg, prop: VReg): IRNode {
+ return new LdSuperByValue(obj, prop);
+}
+
+export function importModule(name: string) {
+ return new ImportModule(name);
+}
+
+export function loadModuleVarByName(name: string, module: VReg) {
+ return new LdModvarByName(name, module);
+}
+
+export function storeModuleVariable(name: string) {
+ return new StModuleVar(name);
+}
+
+export function copyModuleIntoCurrentModule(mod: VReg) {
+ return new CopyModule(mod);
+}
+
+export function loadHomeObject() {
+ return new LdHomeObject();
+}
diff --git a/ts2panda/src/base/builtIn.ts b/ts2panda/src/base/builtIn.ts
new file mode 100644
index 0000000000000000000000000000000000000000..27032afa888fbb103adcad4c95874b63564812e4
--- /dev/null
+++ b/ts2panda/src/base/builtIn.ts
@@ -0,0 +1,165 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { PandaGen } from "src/pandagen";
+import {
+ IRNode,
+ LdBigInt,
+ LdBoolean,
+ LdFalse,
+ LdFunction,
+ LdGlobal,
+ LdHole,
+ LdInfinity,
+ LdNaN,
+ LdNull,
+ LdNumber,
+ LdObject,
+ LdRegExp,
+ LdString,
+ LdSymbol,
+ LdTrue,
+ LdUndefined,
+ StaDyn
+} from "../irnodes";
+import { CacheList, getVregisterCache } from "./vregisterCache";
+
+export function expandHole(pandaGen: PandaGen): IRNode[] {
+ let vreg = getVregisterCache(pandaGen, CacheList.HOLE);
+ return [
+ new LdHole(),
+ new StaDyn(vreg)
+ ]
+}
+
+export function expandNaN(pandaGen: PandaGen): IRNode[] {
+ let vreg = getVregisterCache(pandaGen, CacheList.NaN);
+ return [
+ new LdNaN(),
+ new StaDyn(vreg)
+ ];
+}
+
+export function expandInfinity(pandaGen: PandaGen): IRNode[] {
+ let vreg = getVregisterCache(pandaGen, CacheList.Infinity);
+ return [
+ new LdInfinity(),
+ new StaDyn(vreg)
+ ];
+}
+
+export function expandGlobal(pandaGen: PandaGen): IRNode[] {
+ let vreg = getVregisterCache(pandaGen, CacheList.Global);
+ return [
+ new LdGlobal(),
+ new StaDyn(vreg)
+ ];
+}
+
+export function expandUndefined(pandaGen: PandaGen): IRNode[] {
+ let vreg = getVregisterCache(pandaGen, CacheList.undefined);
+ return [
+ new LdUndefined(),
+ new StaDyn(vreg)
+ ];
+}
+
+export function expandBoolean(pandaGen: PandaGen): IRNode[] {
+ let vreg = getVregisterCache(pandaGen, CacheList.Boolean);
+ return [
+ new LdBoolean(),
+ new StaDyn(vreg)
+ ];
+}
+
+export function expandNumber(pandaGen: PandaGen): IRNode[] {
+ let vreg = getVregisterCache(pandaGen, CacheList.Number);
+ return [
+ new LdNumber(),
+ new StaDyn(vreg)
+ ];
+}
+
+export function expandString(pandaGen: PandaGen): IRNode[] {
+ let vreg = getVregisterCache(pandaGen, CacheList.String);
+ return [
+ new LdString(),
+ new StaDyn(vreg)
+ ];
+}
+
+export function expandBigInt(pandaGen: PandaGen): IRNode[] {
+ let vreg = getVregisterCache(pandaGen, CacheList.BigInt);
+ return [
+ new LdBigInt(),
+ new StaDyn(vreg)
+ ];
+}
+
+export function expandSymbol(pandaGen: PandaGen): IRNode[] {
+ let vreg = getVregisterCache(pandaGen, CacheList.Symbol);
+ return [
+ new LdSymbol(),
+ new StaDyn(vreg)
+ ];
+}
+
+export function expandRegExp(pandaGen: PandaGen): IRNode[] {
+ let vreg = getVregisterCache(pandaGen, CacheList.RegExp);
+ return [
+ new LdRegExp(),
+ new StaDyn(vreg)
+ ];
+}
+
+export function expandNull(pandaGen: PandaGen): IRNode[] {
+ let vreg = getVregisterCache(pandaGen, CacheList.Null);
+ return [
+ new LdNull(),
+ new StaDyn(vreg)
+ ];
+}
+
+export function expandObject(pandaGen: PandaGen): IRNode[] {
+ let vreg = getVregisterCache(pandaGen, CacheList.Object);
+ return [
+ new LdObject(),
+ new StaDyn(vreg)
+ ];
+}
+
+export function expandFunction(pandaGen: PandaGen): IRNode[] {
+ let vreg = getVregisterCache(pandaGen, CacheList.Function);
+ return [
+ new LdFunction(),
+ new StaDyn(vreg)
+ ];
+}
+
+export function expandTrue(pandaGen: PandaGen): IRNode[] {
+ let vreg = getVregisterCache(pandaGen, CacheList.True);
+ return [
+ new LdTrue(),
+ new StaDyn(vreg)
+ ];
+}
+
+export function expandFalse(pandaGen: PandaGen): IRNode[] {
+ let vreg = getVregisterCache(pandaGen, CacheList.False);
+ return [
+ new LdFalse(),
+ new StaDyn(vreg)
+ ];
+}
\ No newline at end of file
diff --git a/ts2panda/src/base/iterator.ts b/ts2panda/src/base/iterator.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ac9d404c77b3c2f74b9877af1535593d65482b4e
--- /dev/null
+++ b/ts2panda/src/base/iterator.ts
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import {
+ VReg
+} from "../irnodes";
+import { PandaGen } from "../pandagen";
+
+export class Iterator {
+ private iterRecord: { iterator: VReg, nextMethod: VReg };
+ private iterDone: VReg;
+ private iterValue: VReg;
+ private pandaGen: PandaGen;
+ private node: ts.Node;
+
+ constructor(iterRecord: {iterator: VReg, nextMethod: VReg}, iterDone: VReg, iterValue: VReg, pandaGen: PandaGen, node: ts.Node) {
+ this.iterRecord = iterRecord;
+ this.iterDone = iterDone;
+ this.iterValue = iterValue;
+ this.pandaGen = pandaGen;
+ this.node = node;
+ }
+
+ getIterator() {
+ let pandaGen = this.pandaGen;
+ let iterator = this.iterRecord.iterator;
+
+ // get iterator
+ pandaGen.getIterator(this.node);
+ pandaGen.storeAccumulator(this.node, iterator);
+
+ // get the next method
+ pandaGen.loadObjProperty(this.node, iterator, "next");
+ pandaGen.storeAccumulator(this.node, this.iterRecord.nextMethod);
+ }
+
+ /**
+ * iterResult = nextMethod.call(iterator);
+ * if (!isObject(iterResult)) {
+ * throw TypeError
+ * }
+ **/
+ callNext(iterResult: VReg) {
+ this.pandaGen.getIteratorNext(this.node, this.iterRecord.iterator, this.iterRecord.nextMethod);
+ this.pandaGen.storeAccumulator(this.node, iterResult);
+ }
+
+ iteratorComplete(iterResult: VReg) {
+ this.pandaGen.loadObjProperty(this.node, iterResult, "done");
+ this.pandaGen.storeAccumulator(this.node, this.iterDone);
+ }
+
+ iteratorValue(iterResult: VReg) {
+ this.pandaGen.loadObjProperty(this.node, iterResult, "value");
+ this.pandaGen.storeAccumulator(this.node, this.iterValue);
+ }
+
+ close() {
+ this.pandaGen.closeIterator(this.node, this.iterRecord.iterator);
+ }
+
+ getCurrentValue() {
+ return this.iterValue;
+ }
+
+ getCurrrentDone() {
+ return this.iterDone;
+ }
+}
\ No newline at end of file
diff --git a/ts2panda/src/base/lexEnv.ts b/ts2panda/src/base/lexEnv.ts
new file mode 100644
index 0000000000000000000000000000000000000000..7a01c4bb58491ddfafae9cdaa29a4b166ce95ae6
--- /dev/null
+++ b/ts2panda/src/base/lexEnv.ts
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {
+ IRNode
+} from "../irnodes";
+import { PandaGen } from "../pandagen";
+import { VariableScope } from "../scope";
+import {
+ loadLexicalEnv,
+ newLexicalEnv,
+ storeAccumulator
+} from "./bcGenUtil";
+import { CacheList, getVregisterCache } from "./vregisterCache";
+
+function createLexEnv(pandaGen: PandaGen, scope: VariableScope): IRNode[] {
+ let lexEnvVars = scope.getNumLexEnv();
+ let insns: IRNode[] = [];
+
+ insns.push(
+ newLexicalEnv(lexEnvVars),
+ storeAccumulator(getVregisterCache(pandaGen, CacheList.LexEnv))
+ );
+
+ return insns;
+}
+
+function loadLexEnv(pandaGen: PandaGen): IRNode[] {
+ let insns: IRNode[] = [];
+
+ insns.push(
+ loadLexicalEnv(),
+ storeAccumulator(getVregisterCache(pandaGen, CacheList.LexEnv)),
+ );
+ return insns;
+}
+
+export function expandLexEnv(pandaGen: PandaGen): IRNode[] {
+ let scope = pandaGen.getScope()!.getNearestVariableScope();
+ let insns: IRNode[];
+
+ if (!scope) {
+ throw new Error("pandagen must have one variable scope");
+ }
+
+ if (scope.need2CreateLexEnv()) {
+ insns = createLexEnv(pandaGen, scope);
+ } else {
+ insns = loadLexEnv(pandaGen);
+ }
+
+ return insns;
+}
diff --git a/ts2panda/src/base/literal.ts b/ts2panda/src/base/literal.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5222b304e0a4ac1f5d9f945c3231952d9c44781a
--- /dev/null
+++ b/ts2panda/src/base/literal.ts
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export enum LiteralTag {
+ BOOLEAN = 1,
+ INTEGER = 2,
+ DOUBLE = 4,
+ STRING = 5,
+ METHOD = 6,
+ GENERATOR = 7,
+ ACCESSOR = 8,
+ NULLVALUE = 9
+}
+
+export class Literal {
+ private tag: LiteralTag;
+ private value: any;
+
+ constructor(tag: LiteralTag, value: any) {
+ this.tag = tag;
+ this.value = value;
+ }
+
+ getTag() {
+ return this.tag;
+ }
+
+ getValue() {
+ return this.value;
+ }
+}
+
+export class LiteralBuffer {
+ private literalBuffer: Literal[] = [];
+
+ constructor() { };
+
+ addLiterals(...literals: Array) {
+ this.literalBuffer.push(...literals);
+ }
+
+ isEmpty() {
+ return this.literalBuffer.length == 0;
+ }
+}
\ No newline at end of file
diff --git a/ts2panda/src/base/lreference.ts b/ts2panda/src/base/lreference.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e27363aee3be3827527764c52f8feb4640fce0c0
--- /dev/null
+++ b/ts2panda/src/base/lreference.ts
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { PandaGen } from "src/pandagen";
+import * as ts from "typescript";
+import { Compiler } from "../compiler";
+import { compileDestructuring } from "../compilerUtils";
+import { DiagnosticCode, DiagnosticError } from "../diagnostic";
+import { getObjAndProp } from "../expression/memberAccessExpression";
+import { findInnerExprOfParenthesis } from "../expression/parenthesizedExpression";
+import { VReg } from "../irnodes";
+import * as jshelpers from "../jshelpers";
+import { Scope } from "../scope";
+import { VarDeclarationKind, Variable } from "../variable";
+import { isBindingOrAssignmentPattern } from "./util";
+
+enum ReferenceKind { MemberAccess, LocalOrGlobal, Destructuring };
+export class LReference {
+ private node: ts.Node;
+ private compiler: Compiler;
+ private refKind: ReferenceKind;
+ private isDeclaration: boolean;
+ private obj: VReg | undefined = undefined;
+ private prop: VReg | undefined = undefined;
+ private propLiteral: string | number | undefined = undefined;
+ readonly variable: { scope: Scope | undefined, level: number, v: Variable | undefined } | undefined;
+ private destructuringTarget: ts.BindingOrAssignmentPattern | undefined;
+
+ constructor(
+ node: ts.Node,
+ compiler: Compiler,
+ isDeclaration: boolean,
+ refKind: ReferenceKind,
+ variable: { scope: Scope | undefined, level: number, v: Variable | undefined } | undefined) {
+ this.node = node;
+ this.compiler = compiler;
+ this.isDeclaration = isDeclaration;
+ this.refKind = refKind;
+
+ if (refKind == ReferenceKind.Destructuring) {
+ this.destructuringTarget = node;
+ } else if (refKind == ReferenceKind.LocalOrGlobal) {
+ this.variable = variable!;
+ } else if (refKind == ReferenceKind.MemberAccess) {
+ this.obj = compiler.getPandaGen().getTemp();
+ this.prop = compiler.getPandaGen().getTemp();
+ }
+ }
+
+ getValue() {
+ let pandaGen = this.compiler.getPandaGen();
+ switch (this.refKind) {
+ case ReferenceKind.MemberAccess:
+ let prop: VReg | number | string;
+ if (this.propLiteral === undefined) {
+ prop = this.prop!;
+ } else {
+ prop = this.propLiteral;
+ }
+ pandaGen.loadObjProperty(this.node, this.obj, prop);
+ return;
+ case ReferenceKind.LocalOrGlobal:
+ this.compiler.loadTarget(this.node, this.variable!);
+ return;
+ case ReferenceKind.Destructuring:
+ throw new Error("Destructuring target can't be loaded");
+ default:
+ throw new Error("Invalid LReference kind to GetValue")
+ }
+ }
+
+ setValue() {
+ let pandaGen = this.compiler.getPandaGen();
+ switch (this.refKind) {
+ case ReferenceKind.MemberAccess: {
+ let prop: VReg | number | string
+ if (this.propLiteral === undefined) {
+ prop = this.prop!;
+ } else {
+ prop = this.propLiteral;
+ }
+ if (jshelpers.isSuperProperty(this.node)) {
+ let thisReg = pandaGen.getTemp();
+ this.compiler.getThis(this.node, thisReg);
+ pandaGen.storeSuperProperty(this.node, thisReg, prop);
+ pandaGen.freeTemps(thisReg);
+ } else {
+ pandaGen.storeObjProperty(this.node, this.obj, prop);
+ }
+ pandaGen.freeTemps(...[this.obj, this.prop]);
+ return;
+ }
+ case ReferenceKind.LocalOrGlobal:
+ this.compiler.storeTarget(this.node, this.variable!, this.isDeclaration);
+ return;
+ case ReferenceKind.Destructuring:
+ compileDestructuring(this.destructuringTarget, pandaGen, this.compiler);
+ return;
+ default:
+ throw new Error("Invalid LReference kind to SetValue")
+ }
+ }
+
+ setObjectAndProperty(pandaGen: PandaGen, obj: VReg, prop: VReg | number | string) {
+ if (!jshelpers.isSuperProperty(this.node)) {
+ pandaGen.moveVreg(this.node, this.obj, obj);
+ }
+
+ if (prop instanceof VReg) {
+ pandaGen.moveVreg(this.node, this.prop, prop);
+ return;
+ }
+
+ this.propLiteral = prop;
+ }
+
+ static generateLReference(compiler: Compiler, node: ts.Node, isDeclaration: boolean): LReference {
+ let pandaGen = compiler.getPandaGen();
+
+ let realNode: ts.Node = node;
+
+ if (ts.isParenthesizedExpression(node)) {
+ realNode = findInnerExprOfParenthesis(node);
+ }
+
+ if (ts.isIdentifier(realNode)) {
+ let name = jshelpers.getTextOfIdentifierOrLiteral(realNode);
+ let variable = compiler.getCurrentScope().find(name);
+ if (!variable.v) {
+ variable.v = compiler.getCurrentScope().add(name, VarDeclarationKind.NONE);
+ }
+
+ return new LReference(realNode, compiler, isDeclaration, ReferenceKind.LocalOrGlobal, variable);
+ }
+
+ if (ts.isPropertyAccessExpression(realNode) || ts.isElementAccessExpression(realNode)) {
+ let lref = new LReference(realNode, compiler, false, ReferenceKind.MemberAccess, undefined);
+ let objReg = pandaGen.getTemp();
+ let propReg = pandaGen.getTemp();
+ let { obj: object, prop: property } = getObjAndProp(realNode, objReg, propReg, compiler);
+ lref.setObjectAndProperty(pandaGen, object, property);
+ pandaGen.freeTemps(objReg, propReg);
+ return lref;
+ }
+
+ if (ts.isVariableDeclarationList(realNode)) {
+ let decls = realNode.declarations;
+ if (decls.length != 1) {
+ throw new Error("Malformed variable declaration");
+ }
+ return LReference.generateLReference(compiler, decls[0].name, true);
+ }
+
+ if (isBindingOrAssignmentPattern(realNode)) {
+ return new LReference(realNode, compiler, isDeclaration, ReferenceKind.Destructuring, undefined);
+ }
+
+ throw new DiagnosticError(
+ node,
+ DiagnosticCode.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access
+ );
+ }
+}
+
diff --git a/ts2panda/src/base/properties.ts b/ts2panda/src/base/properties.ts
new file mode 100644
index 0000000000000000000000000000000000000000..55560c9a69489e99fee70f52ab6182f5396f1f5b
--- /dev/null
+++ b/ts2panda/src/base/properties.ts
@@ -0,0 +1,275 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { isValidIndex } from "../expression/memberAccessExpression";
+import * as jshelpers from "../jshelpers";
+
+export enum PropertyKind {
+ Variable,
+ Constant,
+ Computed, // Property with computed value (execution time).
+ Prototype,
+ Accessor,
+ Spread
+}
+
+export class Property {
+ private propKind: PropertyKind;
+ private valueNode: ts.Node | undefined;
+ private setterNode: ts.SetAccessorDeclaration | undefined;
+ private getterNode: ts.GetAccessorDeclaration | undefined;
+ private compiled: boolean = false;
+ private redeclared: boolean = false;
+ private name: string | number | ts.ComputedPropertyName | undefined;
+
+ constructor(propKind: PropertyKind, name: string | number | ts.ComputedPropertyName | undefined) {
+ this.propKind = propKind;
+ if (typeof (name) != 'undefined') {
+ this.name = name;
+ }
+ }
+
+ setCompiled() {
+ this.compiled = true;
+ }
+
+ setRedeclared() {
+ this.redeclared = true;
+ }
+
+ isCompiled() {
+ return this.compiled;
+ }
+
+ isRedeclared() {
+ return this.redeclared;
+ }
+
+ getName() {
+ if (typeof (this.name) == 'undefined') {
+ throw new Error("this property doesn't have a name");
+ }
+ return this.name;
+ }
+
+ getKind() {
+ return this.propKind;
+ }
+
+ getValue() {
+ if (this.propKind == PropertyKind.Accessor) {
+ throw new Error("Accessor doesn't have valueNode")
+ }
+ return this.valueNode!;
+ }
+
+ getGetter() {
+ return this.getterNode;
+ }
+
+ getSetter() {
+ return this.setterNode;
+ }
+
+ setValue(valueNode: ts.Node) {
+ this.valueNode = valueNode;
+ this.getterNode = undefined;
+ this.setterNode = undefined;
+ }
+
+ setGetter(getter: ts.GetAccessorDeclaration) {
+ if (this.propKind != PropertyKind.Accessor) {
+ this.valueNode = undefined;
+ this.setterNode = undefined;
+ this.propKind = PropertyKind.Accessor;
+ }
+ this.getterNode = getter;
+ }
+
+ setSetter(setter: ts.SetAccessorDeclaration) {
+ if (this.propKind != PropertyKind.Accessor) {
+ this.valueNode = undefined;
+ this.getterNode = undefined;
+ this.propKind = PropertyKind.Accessor;
+ }
+ this.setterNode = setter;
+ }
+
+ setKind(propKind: PropertyKind) {
+ this.propKind = propKind;
+ }
+}
+
+
+export function generatePropertyFromExpr(expr: ts.ObjectLiteralExpression): Property[] {
+ let hasProto: boolean = false;
+ let properties: Property[] = [];
+ let namedPropertyMap: Map = new Map();
+
+ expr.properties.forEach(property => {
+ switch (property.kind) {
+ case ts.SyntaxKind.PropertyAssignment: {
+ if (property.name.kind == ts.SyntaxKind.ComputedPropertyName) {
+ defineProperty(property.name, property, PropertyKind.Computed, properties, namedPropertyMap);
+ break;
+ }
+
+ let propName: number | string = getPropName(property.name);
+
+ if (propName == "__proto__") {
+ if (!hasProto) {
+ defineProperty(propName, property.initializer, PropertyKind.Prototype, properties, namedPropertyMap);
+ hasProto = true;
+ break;
+ } else {
+ throw new Error("__proto__ was set multiple times in the object definition.");
+ }
+ }
+
+ if (isConstantExpr(property.initializer)) {
+ defineProperty(propName, property.initializer, PropertyKind.Constant, properties, namedPropertyMap);
+ } else {
+ defineProperty(propName, property.initializer, PropertyKind.Variable, properties, namedPropertyMap);
+ }
+ break;
+ }
+ case ts.SyntaxKind.ShorthandPropertyAssignment: {
+ // ShorthandProperty's name always be Identifier
+ let propName = jshelpers.getTextOfIdentifierOrLiteral(property.name);
+ defineProperty(propName, property.name, PropertyKind.Variable, properties, namedPropertyMap);
+ break;
+ }
+ case ts.SyntaxKind.SpreadAssignment: {
+ defineProperty(undefined, property.expression, PropertyKind.Spread, properties, namedPropertyMap);
+ break;
+ }
+ case ts.SyntaxKind.MethodDeclaration: {
+ let propName = getPropName(property.name);
+ if (typeof (propName) == 'string' || typeof (propName) == 'number') {
+ defineProperty(propName, property, PropertyKind.Variable, properties, namedPropertyMap);
+ } else {
+ defineProperty(propName, property, PropertyKind.Computed, properties, namedPropertyMap);
+ }
+ break;
+ }
+ case ts.SyntaxKind.GetAccessor:
+ case ts.SyntaxKind.SetAccessor: {
+ let propName = getPropName(property.name);
+ if (typeof (propName) == 'string' || typeof (propName) == 'number') {
+ defineProperty(propName, property, PropertyKind.Accessor, properties, namedPropertyMap);
+ } else {
+ defineProperty(propName, property, PropertyKind.Computed, properties, namedPropertyMap);
+ }
+ break;
+ }
+ default:
+ throw new Error("Unreachable Kind");
+ }
+ });
+
+ return properties;
+}
+
+function defineProperty(
+ propName: string | number | ts.ComputedPropertyName | undefined,
+ propValue: ts.Node,
+ propKind: PropertyKind,
+ properties: Property[],
+ namedPropertyMap: Map) {
+ if (propKind == PropertyKind.Computed || propKind == PropertyKind.Spread) {
+ let prop = new Property(propKind, propName);
+ prop.setValue(propValue);
+ properties.push(prop);
+ } else {
+ let prop = new Property(propKind, propName);
+ let name_str = propertyKeyAsString(propName);
+
+ if (namedPropertyMap.has(name_str)) {
+ let prevProp = properties[namedPropertyMap.get(name_str)!];
+
+ if ((prevProp.getKind() == PropertyKind.Accessor || prevProp.getKind() == PropertyKind.Constant)
+ && (propKind == PropertyKind.Accessor || propKind == PropertyKind.Constant)) {
+ if (propKind == PropertyKind.Accessor) {
+ if (ts.isGetAccessorDeclaration(propValue)) {
+ prevProp!.setGetter(propValue);
+ } else if (ts.isSetAccessorDeclaration(propValue)) {
+ prevProp!.setSetter(propValue);
+ }
+ } else {
+ prevProp!.setValue(propValue);
+ prevProp!.setKind(PropertyKind.Constant);
+ }
+ return;
+ }
+
+ prop.setRedeclared();
+ }
+
+ namedPropertyMap.set(name_str, properties.length);
+ if (propKind == PropertyKind.Accessor) {
+ if (ts.isGetAccessorDeclaration(propValue)) {
+ prop.setGetter(propValue);
+ } else if (ts.isSetAccessorDeclaration(propValue)) {
+ prop.setSetter(propValue);
+ }
+ } else {
+ prop.setValue(propValue);
+ }
+ properties.push(prop);
+ }
+}
+
+export function isConstantExpr(node: ts.Node): boolean {
+ switch (node.kind) {
+ case ts.SyntaxKind.StringLiteral:
+ case ts.SyntaxKind.NumericLiteral:
+ case ts.SyntaxKind.NullKeyword:
+ case ts.SyntaxKind.TrueKeyword:
+ case ts.SyntaxKind.FalseKeyword:
+ return true;
+ default:
+ return false;
+ }
+}
+
+export function propertyKeyAsString(propName: string | number) {
+ if (typeof (propName) == 'number') {
+ return propName.toString();
+ }
+ return propName;
+}
+
+export function getPropName(propertyName: ts.PropertyName) {
+ if (ts.isComputedPropertyName(propertyName)) {
+ return propertyName;
+ }
+
+ let propName: number | string = jshelpers.getTextOfIdentifierOrLiteral(propertyName);
+
+ if (propertyName.kind == ts.SyntaxKind.NumericLiteral) {
+ propName = Number.parseFloat(propName);
+ if (!isValidIndex(propName)) {
+ propName = propName.toString();
+ }
+ } else if (propertyName.kind == ts.SyntaxKind.StringLiteral) {
+ let temp = Number(propName);
+ if (!isNaN(Number.parseFloat(propName)) && !isNaN(temp) && isValidIndex(temp) && String(temp) == propName) {
+ propName = temp;
+ }
+ }
+
+ return propName;
+}
\ No newline at end of file
diff --git a/ts2panda/src/base/util.ts b/ts2panda/src/base/util.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c114000a65579c7ce6c971ddd1e42455eb751fe7
--- /dev/null
+++ b/ts2panda/src/base/util.ts
@@ -0,0 +1,216 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import path = require("path");
+import { LocalVariable, Variable } from "src/variable";
+import * as ts from "typescript";
+import * as jshelpers from "../jshelpers";
+import { LOGD, LOGE } from "../log";
+import { ModuleScope, Scope } from "../scope";
+import { isFunctionLikeDeclaration } from "../syntaxCheckHelper";
+
+export function containSpreadElement(args?: ts.NodeArray): boolean {
+ if (!args) {
+ return false;
+ }
+
+ for (let i = 0; i < args.length; i++) {
+ if (args[i].kind === ts.SyntaxKind.SpreadElement) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+export function hasExportKeywordModifier(node: ts.Node): boolean {
+ let hasExport: boolean = false;
+ if (node.modifiers) {
+ node.modifiers.forEach((mod) => {
+ if (mod.kind == ts.SyntaxKind.ExportKeyword) {
+ hasExport = true;
+ }
+ });
+ }
+
+ return hasExport;
+}
+
+export function hasDefaultKeywordModifier(node: ts.Node): boolean {
+ let hasDefault: boolean = false;
+ if (node.modifiers) {
+ node.modifiers.forEach((mod) => {
+ if (mod.kind == ts.SyntaxKind.DefaultKeyword) {
+ hasDefault = true;
+ }
+ });
+ }
+
+ return hasDefault;
+}
+
+export function setVariableExported(varName: string, scope: Scope) {
+ if (!(scope instanceof ModuleScope)) {
+ throw new Error("variable can't be exported out of module scope");
+ }
+
+ let variable: { scope: Scope | undefined, level: number, v: Variable | undefined } = scope.find(varName);
+ (variable.v!).setExport();
+ (variable.v!).setExportedName(varName);
+}
+
+export function execute(cmd: string, args: Array) {
+ var spawn = require('child_process').spawn;
+
+ let child = spawn(cmd, [...args], {
+ stdio: ['pipe', 'inherit', 'inherit']
+ });
+
+ child.on('exit', (code: any) => {
+ if (code === 1) {
+ LOGD("fail to execute cmd: ", cmd);
+ return 0;
+ }
+ LOGD("execute cmd successfully: ", cmd);
+ return 1;
+ });
+
+ return 1;
+}
+
+export function addUnicodeEscape(text: string) {
+ let firstIdx = 0;
+ let secondIdx = 0;
+ let len = text.length;
+ let newText = "";
+ while (secondIdx != len) {
+ if (text[secondIdx] == '\\' && secondIdx + 1 != len && text[secondIdx + 1] == 'u') {
+ if (secondIdx != 0 && text[secondIdx - 1] == '\\') {
+ newText += text.substr(firstIdx, secondIdx - firstIdx) + "\\\\" + "\\u";
+ } else {
+ newText += text.substr(firstIdx, secondIdx - firstIdx) + "\\" + "\\u";
+ }
+ secondIdx += 2;
+ firstIdx = secondIdx;
+ } else {
+ secondIdx++;
+ }
+ }
+
+ if (secondIdx == len && firstIdx != secondIdx) {
+ newText += text.substr(firstIdx);
+ }
+
+ return newText;
+}
+
+export function isBindingPattern(node: ts.Node) {
+ return ts.isArrayBindingPattern(node) || ts.isObjectBindingPattern(node);
+}
+
+export function isObjectBindingOrAssignmentPattern(node: ts.Node) {
+ return ts.isObjectLiteralExpression(node) || ts.isObjectBindingPattern(node);
+}
+
+export function isArrayBindingOrAssignmentPattern(node: ts.Node) {
+ return ts.isArrayLiteralExpression(node) || ts.isArrayBindingPattern(node);
+}
+
+export function isBindingOrAssignmentPattern(node: ts.Node) {
+ return isArrayBindingOrAssignmentPattern(node) || isObjectBindingOrAssignmentPattern(node);
+}
+
+export function isMemberExpression(node: ts.Node) {
+ if (ts.isPropertyAccessExpression(node)
+ || ts.isElementAccessExpression(node)) {
+ return true;
+ }
+
+ return false;
+}
+
+export function isUndefinedIdentifier(node: ts.Node) {
+ if (!ts.isIdentifier(node)) {
+ return false;
+ }
+
+ if (jshelpers.getTextOfIdentifierOrLiteral(node) != "undefined") {
+ return false;
+ }
+
+ return true;
+}
+
+export function isAnonymousFunctionDefinition(node: ts.Node) {
+ if (!isFunctionLikeDeclaration(node)) {
+ return false;
+ }
+
+ if (node.name) {
+ return false;
+ } else {
+ return true;
+ }
+}
+
+export function escapeUnicode(data: string) {
+ let char = '\n';
+ let i = 0;
+ let j = 0;
+ let new_data = ""
+ while ((j = data.indexOf(char, i)) !== -1) {
+ let tmp = data.substring(i, j);
+ if (tmp.indexOf("\\u") != -1) {
+ tmp = addUnicodeEscape(tmp);
+ }
+ new_data = new_data.concat(tmp, "\n");
+ i = j + 1;
+ }
+
+ new_data = new_data.concat("}\n");
+ return new_data
+}
+
+export function initiateTs2abc(args: Array) {
+ let js2abc = path.join(path.resolve(__dirname, '../../bin'), "js2abc");
+ args.unshift("--compile-by-pipe");
+ var spawn = require('child_process').spawn;
+ let child = spawn(js2abc, [...args], {
+ stdio: ['pipe', 'inherit', 'inherit', 'pipe']
+ });
+
+ return child;
+}
+
+export function terminateWritePipe(ts2abc: any) {
+ if (!ts2abc) {
+ LOGD("ts2abc is not a valid object");
+ }
+
+ ts2abc.stdio[3].end();
+}
+
+export function listenChildExit(child: any) {
+ if (!child) {
+ LOGD("child is not a valid object");
+ }
+
+ child.on('exit', (code: any) => {
+ if (code === 1) {
+ LOGD("fail to generate panda binary file");
+ }
+ LOGD("success to generate panda binary file");
+ });
+}
diff --git a/ts2panda/src/base/vregisterCache.ts b/ts2panda/src/base/vregisterCache.ts
new file mode 100644
index 0000000000000000000000000000000000000000..287a30c471139658b6b8a4182a52a7f8fd0780da
--- /dev/null
+++ b/ts2panda/src/base/vregisterCache.ts
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {
+ VReg
+} from "../irnodes";
+import { PandaGen } from "../pandagen";
+import {
+ expandBigInt,
+ expandBoolean,
+ expandFalse,
+ expandFunction,
+ expandGlobal,
+ expandHole,
+ expandInfinity,
+ expandNaN,
+ expandNull,
+ expandNumber,
+ expandObject,
+ expandRegExp,
+ expandString,
+ expandSymbol,
+ expandTrue,
+ expandUndefined
+} from "./builtIn";
+import { expandLexEnv } from "./lexEnv";
+export enum CacheList {
+ MIN,
+ NaN = MIN,
+ HOLE,
+ Infinity,
+ undefined,
+ Boolean,
+ Number,
+ String,
+ BigInt,
+ Symbol,
+ RegExp,
+ Null,
+ Object,
+ Function,
+ Global,
+ LexEnv, // Lex Env must come before True and False, because LexEnv depends on True and False
+ True,
+ False,
+ MAX,
+}
+let cacheExpandHandlers = new Map([
+ [CacheList.HOLE, expandHole],
+ [CacheList.NaN, expandNaN],
+ [CacheList.Infinity, expandInfinity],
+ [CacheList.undefined, expandUndefined],
+ [CacheList.Boolean, expandBoolean],
+ [CacheList.Number, expandNumber],
+ [CacheList.String, expandString],
+ [CacheList.BigInt, expandBigInt],
+ [CacheList.Symbol, expandSymbol],
+ [CacheList.RegExp, expandRegExp],
+ [CacheList.Null, expandNull],
+ [CacheList.Object, expandObject],
+ [CacheList.Function, expandFunction],
+ [CacheList.Global, expandGlobal],
+ [CacheList.LexEnv, expandLexEnv],
+ [CacheList.True, expandTrue],
+ [CacheList.False, expandFalse],
+]);
+
+class CacheItem {
+ constructor(handler: Function) {
+ this.flag = false;
+ this.vreg = undefined;
+ this.expander = handler;
+ }
+ private flag: boolean;
+ private vreg: VReg | undefined;
+ private expander: Function;
+ isNeeded() {
+ return this.flag;
+ }
+ getCache(): VReg {
+ if (!this.flag || !this.vreg) {
+ this.flag = true;
+ this.vreg = new VReg();
+ }
+ return this.vreg;
+ }
+ getExpander() {
+ return this.expander;
+ }
+}
+
+export class VregisterCache {
+ private cache: CacheItem[] = [];
+ constructor() {
+ for (let i = CacheList.MIN; i < CacheList.MAX; ++i) {
+ let handler = cacheExpandHandlers.get(i);
+ if (!handler) {
+ throw new Error("invalid expand handler");
+ }
+ this.cache[i] = new CacheItem(handler);
+ }
+ }
+ getCache(index: CacheList) {
+ if (index < CacheList.MIN || index > CacheList.MAX) {
+ throw new Error("invalid builtin index");
+ }
+ return this.cache[index];
+ }
+}
+
+export function getVregisterCache(pandaGen: PandaGen, index: CacheList) {
+ let cache = pandaGen.getVregisterCache();
+ let cacheItem = cache.getCache(index);
+
+ return cacheItem.getCache();
+}
\ No newline at end of file
diff --git a/ts2panda/src/cmdOptions.ts b/ts2panda/src/cmdOptions.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6a14324b7f9888be4733769f9c83c00aa53d944f
--- /dev/null
+++ b/ts2panda/src/cmdOptions.ts
@@ -0,0 +1,189 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// singleton to parse commandLine infos
+import commandLineArgs from "command-line-args";
+import commandLineUsage from "command-line-usage";
+import * as ts from "typescript";
+import { LOGE } from "./log";
+import path = require("path");
+import { execute } from "./base/util";
+
+const ts2pandaOptions = [
+ { name: 'variant-bytecode', alias: 'r', type: Boolean, defaultValue: true, description: "emit 2nd bytecode to pandafile."},
+ { name: 'modules', alias: 'm', type: Boolean, defaultValue: false, description: "compile as module."},
+ { name: 'debug-log', alias: 'l', type: Boolean, defaultValue: false, description: "show info debug log."},
+ { name: 'dump-assembly', alias: 'a', type: Boolean, defaultValue: false, description: "dump assembly to file."},
+ { name: 'debug', alias: 'd', type: Boolean, defaultValue: false, description: "compile with debug info."},
+ { name: 'show-statistics', alias: 's', type: String, lazyMultiple: true, defaultValue: "", description: "show compile statistics(ast, histogram, hoisting, all)."},
+ { name: 'output', alias: 'o', type: String, defaultValue: "", description: "set output file."},
+ { name: 'timeout', alias: 't', type: Number, defaultValue: 0, description: "js to abc timeout threshold(unit: seconds)."},
+ { name: 'opt-log-level', type: String, defaultValue: "error", description: "specifie optimizer log level. Possible values: ['debug', 'info', 'error', 'fatal']"},
+ { name: 'opt-level', type: Number, defaultValue: 1, description: "Optimization level. Possible values: [0, 1, 2]. Default: 0\n 0: no optimizations\n \
+ 1: basic bytecode optimizations, including valueNumber, lowering, constantResolver, regAccAllocator\n \
+ 2: other bytecode optimizations, unimplemented yet"},
+ { name: 'help', alias: 'h', type: Boolean, description: "Show usage guide."},
+ { name: 'bc-version', alias: 'v', type: Boolean, defaultValue: false, description: "Print ark bytecode version"},
+ { name: 'bc-min-version', type: Boolean, defaultValue: false, description: "Print ark bytecode minimum supported version"}
+]
+
+export class CmdOptions {
+ private static parsedResult: ts.ParsedCommandLine;
+ private static options: commandLineArgs.CommandLineOptions;
+
+ static isEnableDebugLog(): boolean {
+ if (!this.options) {
+ return false;
+ }
+ return this.options["debug-log"];
+ }
+
+ static isAssemblyMode(): boolean {
+ if (!this.options) {
+ return false;
+ }
+ return this.options["dump-assembly"];
+ }
+
+ static isDebugMode(): boolean {
+ if (!this.options) {
+ return false;
+ }
+ return this.options["debug"];
+ }
+
+ static isModules(): boolean {
+ if (!this.options) {
+ return false;
+ }
+ return this.options["modules"];
+ }
+
+ static isVariantBytecode(): boolean {
+ if (!this.options) {
+ return true;
+ }
+ return this.options["variant-bytecode"];
+ }
+
+ static getOptLevel(): number {
+ return this.options["opt-level"];
+ }
+
+ static getOptLogLevel(): string {
+ return this.options["opt-log-level"];
+ }
+
+ static showASTStatistics(): boolean {
+ if (!this.options) {
+ return false;
+ }
+ return this.options["show-statistics"].includes("ast") || this.options["show-statistics"].includes("all");
+ }
+
+ static showHistogramStatistics(): boolean {
+ if (!this.options) {
+ return false;
+ }
+ return this.options["show-statistics"].includes("all") || this.options["show-statistics"].includes("histogram");
+ }
+
+ static showHoistingStatistics(): boolean {
+ if (!this.options) {
+ return false;
+ }
+ return this.options["show-statistics"].includes("all") || this.options["show-statistics"].includes("hoisting");
+ }
+
+ static getInputFileName(): string {
+ let path = this.parsedResult.fileNames[0];
+ let inputFile = path.substring(0, path.lastIndexOf('.'));
+ return inputFile;
+ }
+
+ static getOutputBinName(): string {
+ let outputFile = this.options.output;
+ if (outputFile == "") {
+ outputFile = CmdOptions.getInputFileName() + ".abc";
+ }
+ return outputFile;
+ }
+
+ static getTimeOut(): Number {
+ if (!this.options) {
+ return 0;
+ }
+ return this.options["timeout"];
+ }
+
+ static showHelp(): void {
+ const usage = commandLineUsage([
+ {
+ header: "Ark JavaScript Compiler",
+ content: 'node --expose-gc index.js [options] file.js'
+ },
+ {
+ header: 'Options',
+ optionList: ts2pandaOptions
+ },
+ {
+ content: 'Project Ark'
+ }
+ ])
+ LOGE(usage);
+ }
+
+ static isBcVersion(): boolean {
+ if (!this.options) {
+ return false;
+ }
+ return this.options["bc-version"];
+ }
+
+ static getVersion(isBcVersion : boolean = true) : void {
+ let js2abc = path.join(path.resolve(__dirname, '../bin'), "js2abc");
+ let version_arg = isBcVersion ? "--bc-version" : "--bc-min-version"
+ execute(`${js2abc}`, [version_arg]);
+ }
+
+ static isBcMinVersion(): boolean {
+ if (!this.options) {
+ return false;
+ }
+ return this.options["bc-min-version"];
+ }
+
+ static parseUserCmd(args: string[]): ts.ParsedCommandLine | undefined {
+ this.options = commandLineArgs(ts2pandaOptions, { partial: true });
+ if (this.options.help) {
+ this.showHelp();
+ return undefined;
+ }
+
+ if (this.isBcVersion() || this.isBcMinVersion()) {
+ this.getVersion(this.isBcVersion());
+ return undefined;
+ }
+
+ if (!this.options._unknown) {
+ LOGE("options at least one file is needed");
+ this.showHelp();
+ return undefined;
+ }
+
+ this.parsedResult = ts.parseCommandLine(this.options._unknown!);
+ return this.parsedResult;
+ }
+}
diff --git a/ts2panda/src/compiler.ts b/ts2panda/src/compiler.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e3f64edce2e7deeaa779d92ecf4ab874fac1a4b0
--- /dev/null
+++ b/ts2panda/src/compiler.ts
@@ -0,0 +1,1453 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * The compiler implementation.
+ * The compiler traverses TypeScript's AST, splits operations into sinmple ones
+ * and asks Pandagen to generate bytecode.
+ *
+ * This file shold not contain import from irnodes.ts.
+ * The interface of PandaGen shold be enough.
+ */
+
+import * as ts from "typescript";
+import { AssignmentOperator } from "typescript";
+import * as astutils from "./astutils";
+import { LReference } from "./base/lreference";
+import {
+ hasDefaultKeywordModifier,
+ hasExportKeywordModifier,
+ isBindingPattern,
+ setVariableExported
+} from "./base/util";
+import { CacheList, getVregisterCache } from "./base/vregisterCache";
+import { CompilerDriver } from "./compilerDriver";
+import { DebugInfo, NodeKind } from "./debuginfo";
+import { DiagnosticCode, DiagnosticError } from "./diagnostic";
+import { compileArrayLiteralExpression } from "./expression/arrayLiteralExpression";
+import {
+ compileCallExpression,
+ getHiddenParameters
+} from "./expression/callExpression";
+import {
+ compileMemberAccessExpression,
+ getObjAndProp
+} from "./expression/memberAccessExpression";
+import { compileMetaProperty } from "./expression/metaProperty";
+import { compileNewExpression } from "./expression/newExpression";
+import { compileNumericLiteral } from "./expression/numericLiteral";
+import { compileObjectLiteralExpression } from "./expression/objectLiteralExpression";
+import {
+ findInnerExprOfParenthesis,
+ findOuterNodeOfParenthesis
+} from "./expression/parenthesizedExpression";
+import { compileStringLiteral } from "./expression/stringLiteral";
+import { getTemplateObject } from "./expression/templateExpression";
+import { compileYieldExpression } from "./expression/yieldExpression";
+import { AsyncFunctionBuilder } from "./function/asyncFunctionBuilder";
+import { FunctionBuilder, FunctionBuilderType } from "./function/functionBuilder";
+import { GeneratorFunctionBuilder } from "./function/generatorFunctionBuilder";
+import {
+ hoistFunctionInBlock
+} from "./hoisting";
+import {
+ Label,
+ VReg
+} from "./irnodes";
+import * as jshelpers from "./jshelpers";
+import { LOGD } from "./log";
+import {
+ PandaGen
+} from "./pandagen";
+import { Recorder } from "./recorder";
+import {
+ GlobalScope,
+ LoopScope,
+ ModuleScope,
+ Scope,
+ VariableScope
+} from "./scope";
+import {
+ checkValidUseSuperBeforeSuper,
+ compileClassDeclaration,
+ compileConstructor
+} from "./statement/classStatement";
+import { compileForOfStatement } from "./statement/forOfStatement";
+import { LabelTarget } from "./statement/labelTarget";
+import {
+ compileDoStatement,
+ compileForInStatement,
+ compileForStatement,
+ compileWhileStatement
+} from "./statement/loopStatement";
+import { compileReturnStatement } from "./statement/returnStatement";
+import { compileSwitchStatement } from "./statement/switchStatement";
+import {
+ CatchTable,
+ LabelPair,
+ transformTryCatchFinally,
+ TryBuilder,
+ TryBuilderBase,
+ TryStatement,
+ updateCatchTables
+} from "./statement/tryStatement";
+import { isStrictMode } from "./strictMode";
+import { isAssignmentOperator } from "./syntaxCheckHelper";
+import {
+ GlobalVariable,
+ LocalVariable,
+ ModuleVariable,
+ VarDeclarationKind,
+ Variable
+} from "./variable";
+
+export enum ControlFlowChange { Continue, Break }
+export class Compiler {
+ private debugTag = "compiler";
+ private rootNode: ts.SourceFile | ts.FunctionLikeDeclaration;
+ private pandaGen: PandaGen;
+ private scope: Scope;
+ private compilerDriver: CompilerDriver;
+ private funcBuilder: FunctionBuilderType;
+ private recorder: Recorder;
+ private envUnion: Array = new Array();
+
+ constructor(node: ts.SourceFile | ts.FunctionLikeDeclaration, pandaGen: PandaGen, compilerDriver: CompilerDriver, recorder: Recorder) {
+ this.rootNode = node;
+ this.pandaGen = pandaGen;
+ this.compilerDriver = compilerDriver;
+ this.recorder = recorder;
+ this.funcBuilder = new FunctionBuilder();
+
+ // At the beginning of function compile, alloc pandagen.local for 4funcObj/newTarget/this/parameters, because of
+ // maybe no one used this parameter, will get undefined for RA
+ this.scope = this.pandaGen.getScope()!;
+ let parameters = (this.scope).getParameters();
+
+ for (let i = 0; i < parameters.length; ++i) {
+ this.pandaGen.getVregForVariable(parameters[i]);
+ }
+
+ // spare v3 to save the currrent lexcial env
+ getVregisterCache(this.pandaGen, CacheList.LexEnv);
+ this.envUnion.push(getVregisterCache(this.pandaGen, CacheList.LexEnv))
+
+ this.pandaGen.loadAccFromArgs(this.rootNode);
+ }
+
+ compile() {
+ this.compileLexicalBindingForArrowFunction();
+
+ if (this.rootNode.kind == ts.SyntaxKind.SourceFile) {
+ this.compileSourceFileOrBlock(this.rootNode);
+ } else {
+ this.compileFunctionLikeDeclaration(this.rootNode);
+ }
+ }
+
+ pushEnv(env: VReg) {
+ this.envUnion.push(env);
+ }
+
+ popEnv() {
+ this.envUnion.pop();
+ }
+
+ getCurrentEnv() {
+ return this.envUnion[this.envUnion.length - 1];
+ }
+
+ private compileLexicalBindingForArrowFunction() {
+ let rootNode = this.rootNode;
+
+ if (!ts.isArrowFunction(rootNode)) {
+ let childVariableScopes: Array = (this.scope).getChildVariableScope();
+ let hasAFChild = false;
+
+ childVariableScopes.forEach(scope => {
+ let funcNode: ts.Node = scope.getBindingNode();
+
+ if (ts.isArrowFunction(funcNode)) {
+ hasAFChild = true;
+ }
+ });
+
+ if (hasAFChild) {
+ this.storeSpecialArg2LexEnv("4newTarget");
+ this.storeSpecialArg2LexEnv("arguments");
+
+ if (ts.isConstructorDeclaration(rootNode) && rootNode.parent.heritageClauses) {
+ this.storeSpecialArg2LexEnv("4funcObj");
+ return;
+ }
+
+ this.storeSpecialArg2LexEnv("this");
+ }
+ }
+ }
+
+ private storeSpecialArg2LexEnv(arg: string) {
+ let variableInfo = this.scope.find(arg);
+ let v = variableInfo.v;
+
+ if (v && v.isLexVar) {
+ let pandaGen = this.pandaGen;
+ let vreg = pandaGen.getVregForVariable(variableInfo.v);
+ let slot = (variableInfo.v).idxLex;
+ pandaGen.storeLexicalVar(this.rootNode, variableInfo.level, slot, vreg);
+ }
+ }
+
+ private compileSourceFileOrBlock(body: ts.SourceFile | ts.Block) {
+ let pandaGen = this.pandaGen;
+ let statements = body.statements;
+ let unreachableFlag = false;
+
+ statements.forEach((stmt) => {
+ this.compileStatement(stmt);
+ if (stmt.kind == ts.SyntaxKind.ReturnStatement) {
+ unreachableFlag = true;
+ }
+ });
+
+ if (body.parent && ts.isConstructorDeclaration(body.parent)) {
+
+ compileConstructor(this, body.parent, unreachableFlag);
+ return;
+ }
+
+ if (!unreachableFlag) { // exit GlobalScopefunction or Function Block return
+ if (this.funcBuilder instanceof AsyncFunctionBuilder) {
+ this.funcBuilder.resolve(NodeKind.Invalid, getVregisterCache(pandaGen, CacheList.undefined));
+ pandaGen.return(DebugInfo.getLastNode());
+ } else {
+ pandaGen.returnUndefined(DebugInfo.getLastNode());
+ }
+ }
+ }
+
+ private compileFunctionBody(kind: number, body: ts.ConciseBody): void {
+ let pandaGen = this.pandaGen;
+
+ if (body.kind == ts.SyntaxKind.Block) {
+ this.pushScope(body);
+ this.compileSourceFileOrBlock(body);
+ this.popScope();
+ } else if (kind == ts.SyntaxKind.ArrowFunction) {
+ this.compileExpression(body);
+
+ let retValue = pandaGen.getTemp();
+ pandaGen.storeAccumulator(body, retValue);
+
+ if (this.funcBuilder instanceof AsyncFunctionBuilder) {
+ this.funcBuilder.resolve(body, retValue);
+ pandaGen.return(NodeKind.Invalid);
+ } else {
+ pandaGen.loadAccumulator(body, retValue);
+ }
+ pandaGen.freeTemps(retValue);
+ pandaGen.return(NodeKind.Invalid);
+ } else {
+ throw new Error("Node " + this.getNodeName(body) + " is unimplemented as a function body");
+ }
+ }
+
+ private compileFunctionParameterDeclaration(decl: ts.FunctionLikeDeclaration): void {
+ let pandaGen = this.pandaGen;
+
+ for (let index = 0; index < decl.parameters.length; ++index) {
+ let param = decl.parameters[index];
+ let parameter = param.name;
+ let paramRef = LReference.generateLReference(this, parameter, true);
+
+ let variable: Variable;
+ if (ts.isIdentifier(parameter)) {
+ variable = paramRef.variable!.v;
+ } else if (isBindingPattern(parameter)) {
+ let paramName = index.toString() + "pattern";
+ variable = this.scope.find(paramName).v;
+ }
+
+ let paramReg = pandaGen.getVregForVariable(variable!);
+ if (param.dotDotDotToken) {
+ pandaGen.copyRestArgs(param, index);
+ pandaGen.storeAccumulator(param, paramReg);
+ }
+
+ if (param.initializer) {
+ let endLabel = new Label();
+
+ pandaGen.loadAccumulator(decl, paramReg);
+ pandaGen.condition(
+ decl,
+ ts.SyntaxKind.EqualsEqualsEqualsToken,
+ getVregisterCache(pandaGen, CacheList.undefined),
+ endLabel);
+ this.compileExpression(param.initializer);
+ pandaGen.storeAccumulator(param, paramReg);
+ pandaGen.label(decl, endLabel);
+ }
+
+ if (isBindingPattern(parameter) ||
+ (ts.isIdentifier(parameter) && (variable!.isLexVar))) {
+ pandaGen.loadAccumulator(param, paramReg);
+ paramRef.setValue();
+ }
+ }
+ }
+
+ private createFuncBuilder(decl: ts.FunctionLikeDeclaration): FunctionBuilderType {
+ let pandaGen = this.pandaGen;
+
+ if (decl.modifiers) {
+ for (let i = 0; i < decl.modifiers.length; i++) {
+ if (decl.modifiers[i].kind == ts.SyntaxKind.AsyncKeyword) {
+ // async generator
+ if (decl.asteriskToken) {
+ throw new Error("Async generator is not supported");
+ } else { // async
+ return new AsyncFunctionBuilder(pandaGen);
+ }
+ }
+ }
+ }
+
+ if (decl.asteriskToken) {
+ return new GeneratorFunctionBuilder(pandaGen, this);
+ }
+
+ return new FunctionBuilder();
+ }
+
+ private compileFunctionLikeDeclaration(decl: ts.FunctionLikeDeclaration): void {
+ let pandaGen = this.pandaGen;
+ this.compileFunctionParameterDeclaration(decl);
+
+ if (decl.kind == ts.SyntaxKind.FunctionExpression) {
+ if (decl.name) {
+ let funcName = jshelpers.getTextOfIdentifierOrLiteral(decl.name);
+ (pandaGen.getScope()!).addFuncName(funcName);
+ }
+ }
+
+ this.funcBuilder = this.createFuncBuilder(decl);
+
+ this.funcBuilder.prepare(decl, this.recorder);
+
+ if (decl.body) {
+ this.compileFunctionBody(decl.kind, decl.body);
+ }
+
+ this.funcBuilder.cleanUp(decl);
+ }
+
+
+ compileStatement(stmt: ts.Statement) {
+ // for debug info
+ this.pandaGen.setFirstStmt(stmt);
+
+ // Please keep order of cases the same as in types.ts
+ LOGD(this.debugTag, "compile statement: " + this.getNodeName(stmt));
+ switch (stmt.kind) {
+ case ts.SyntaxKind.Block: // line 273
+ this.compileBlock(stmt);
+ break;
+ case ts.SyntaxKind.EmptyStatement: // line 274
+ break;
+ case ts.SyntaxKind.VariableStatement: // line 275
+ this.compileVariableStatement(stmt);
+ break;
+ case ts.SyntaxKind.ExpressionStatement: // line 276
+ this.compileExpression((stmt).expression);
+ break;
+ case ts.SyntaxKind.IfStatement: // line 277
+ this.compileIfStatement(stmt);
+ break;
+ case ts.SyntaxKind.DoStatement: // line 278
+ compileDoStatement(stmt, this);
+ break;
+ case ts.SyntaxKind.WhileStatement: // line 279
+ compileWhileStatement(stmt, this);
+ break;
+ case ts.SyntaxKind.ForStatement: // line 280
+ compileForStatement(stmt, this);
+ break;
+ case ts.SyntaxKind.ForInStatement: //line 281
+ compileForInStatement(stmt, this);
+ break;
+ case ts.SyntaxKind.ForOfStatement: //line 282
+ compileForOfStatement(stmt, this);
+ break;
+ case ts.SyntaxKind.ContinueStatement: // line 283
+ this.compileContinueStatement(stmt);
+ break;
+ case ts.SyntaxKind.BreakStatement: // line 284
+ this.compileBreakStatement(stmt);
+ break;
+ case ts.SyntaxKind.ReturnStatement: // line 285
+ compileReturnStatement(stmt, this);
+ break;
+ case ts.SyntaxKind.SwitchStatement: // line 287
+ compileSwitchStatement(stmt, this);
+ break;
+ case ts.SyntaxKind.LabeledStatement: // line 288
+ this.compileLabeledStatement(stmt);
+ break;
+ case ts.SyntaxKind.ThrowStatement: // line 289
+ this.compileThrowStatement(stmt);
+ break;
+ case ts.SyntaxKind.TryStatement: // line 290
+ this.compileTryStatement(stmt);
+ break;
+ case ts.SyntaxKind.DebuggerStatement: // line 291
+ this.pandaGen.debugger(stmt);
+ break;
+ case ts.SyntaxKind.FunctionDeclaration: // line 294
+ this.compileFunctionDeclaration(stmt);
+ break;
+ case ts.SyntaxKind.ClassDeclaration:
+ compileClassDeclaration(this, stmt);
+ case ts.SyntaxKind.ImportDeclaration:
+ break;
+ case ts.SyntaxKind.ExportAssignment:
+ this.compileExportAssignment(stmt);
+ break;
+ case ts.SyntaxKind.ExportDeclaration:
+ break;
+ default:
+ throw new Error("Statement " + this.getNodeName(stmt) + " is unimplemented");
+ }
+ }
+
+ private compileBlock(block: ts.Block) {
+ this.pushScope(block);
+ hoistFunctionInBlock(this.scope, this.pandaGen, isStrictMode(block), this);
+
+ block.statements.forEach((stmt) => this.compileStatement(stmt));
+
+ this.popScope();
+ }
+
+ private compileVariableStatement(stmt: ts.VariableStatement) {
+ let declList = stmt.declarationList;
+ let isExported: boolean = hasExportKeywordModifier(stmt);
+ declList.declarations.forEach((decl) => {
+ this.compileVariableDeclaration(decl, isExported)
+ });
+ }
+
+ compileVariableDeclaration(decl: ts.VariableDeclaration, isExported: boolean = false) {
+ if (isExported) {
+ let name = jshelpers.getTextOfIdentifierOrLiteral(decl.name);
+ setVariableExported(name, this.getCurrentScope());
+ }
+
+ let lref = LReference.generateLReference(this, decl.name, true);
+ if (decl.initializer) {
+ this.compileExpression(decl.initializer);
+ } else {
+ // global var without init should not be assigned undefined twice
+ if (astutils.getVarDeclarationKind(decl) == VarDeclarationKind.VAR) {
+ return;
+ }
+
+ if ((astutils.getVarDeclarationKind(decl) == VarDeclarationKind.LET)
+ && decl.parent.kind != ts.SyntaxKind.CatchClause) {
+ this.pandaGen.loadAccumulator(decl, getVregisterCache(this.pandaGen, CacheList.undefined));
+ }
+
+ }
+ lref.setValue();
+ }
+
+ private compileIfStatement(stmt: ts.IfStatement) {
+ this.pushScope(stmt);
+ let ifElseLabel = new Label();
+ let ifEndLabel = new Label();
+
+ this.compileCondition(stmt.expression, stmt.elseStatement ? ifElseLabel : ifEndLabel);
+ this.compileStatement(stmt.thenStatement);
+ if (stmt.elseStatement) {
+ let flowNode = jshelpers.getFlowNode(stmt);
+ if (flowNode !== undefined) {
+ if (!(flowNode.flags & ts.FlowFlags.Unreachable)) { // if not unreachable
+ this.pandaGen.branch(DebugInfo.getLastNode(), ifEndLabel);
+ }
+ }
+ this.pandaGen.label(stmt, ifElseLabel);
+ this.compileStatement(stmt.elseStatement);
+ }
+ this.pandaGen.label(stmt, ifEndLabel);
+ this.popScope();
+ }
+
+ private compileContinueStatement(stmt: ts.ContinueStatement) {
+ let continueLabelTarget = LabelTarget.getLabelTarget(stmt);
+
+ this.compileFinallyBeforeCFC(
+ continueLabelTarget.getTryStatement(),
+ ControlFlowChange.Continue,
+ continueLabelTarget.getContinueTargetLabel()!
+ );
+
+ this.pandaGen.branch(stmt, continueLabelTarget.getContinueTargetLabel()!);
+ }
+
+ private compileBreakStatement(stmt: ts.BreakStatement) {
+ let breakLabelTarget = LabelTarget.getLabelTarget(stmt);
+
+ this.compileFinallyBeforeCFC(
+ breakLabelTarget.getTryStatement(),
+ ControlFlowChange.Break,
+ undefined
+ );
+
+ this.pandaGen.branch(stmt, breakLabelTarget.getBreakTargetLabel());
+ }
+
+ private compileLabeledStatement(stmt: ts.LabeledStatement) {
+ this.pushScope(stmt);
+ let labelName: string = jshelpers.getTextOfIdentifierOrLiteral(stmt.label);
+ let blockEndLabel = undefined;
+
+ // because there is no label in the block statement, we need to add the end label.
+ if (stmt.statement.kind == ts.SyntaxKind.Block) {
+ blockEndLabel = new Label();
+
+ let labelTarget = new LabelTarget(blockEndLabel, undefined);
+
+ LabelTarget.updateName2LabelTarget(stmt, labelTarget);
+ }
+
+ this.compileStatement(stmt.statement);
+
+ if (blockEndLabel) {
+ this.pandaGen.label(stmt, blockEndLabel);
+ }
+
+ // because the scope of the label just in labeld statment, we need to delete it.
+ LabelTarget.deleteName2LabelTarget(labelName);
+ this.popScope();
+ }
+
+ private compileThrowStatement(stmt: ts.ThrowStatement) {
+ let pandaGen = this.pandaGen;
+ if (stmt.expression) {
+ this.compileExpression(stmt.expression);
+ } else {
+ throw new DiagnosticError(stmt, DiagnosticCode.Line_break_not_permitted_here);
+ }
+ pandaGen.throw(stmt);
+ }
+
+ compileFinallyBeforeCFC(endTry: TryStatement | undefined, cfc: ControlFlowChange, continueTargetLabel: Label | undefined) {// compile finally before control flow change
+ let startTry = TryStatement.getCurrentTryStatement();
+ let originTry = startTry;
+ for (; startTry != endTry; startTry = startTry?.getOuterTryStatement()) {
+
+ if (startTry && startTry.trybuilder) {
+ let inlineFinallyBegin = new Label();
+ let inlineFinallyEnd = new Label();
+ let inlinedLabelPair = new LabelPair(inlineFinallyBegin, inlineFinallyEnd);
+ // adjust the current tryStatement before inlining finallyBlock
+ let saveTry = TryStatement.getCurrentTryStatement();
+ TryStatement.setCurrentTryStatement(startTry.getOuterTryStatement())
+
+ this.pandaGen.label(startTry.getStatement(), inlineFinallyBegin);
+ startTry.trybuilder.compileFinalizer(cfc, continueTargetLabel);
+ this.pandaGen.label(startTry.getStatement(), inlineFinallyEnd);
+ // restore pandaGen.tryStatement
+ TryStatement.setCurrentTryStatement(saveTry);
+
+ updateCatchTables(originTry, startTry, inlinedLabelPair);
+ }
+ }
+ }
+
+ constructTry(node: ts.Node, tryBuilder: TryBuilderBase, endLabel?: Label) {
+ let pandaGen = this.pandaGen;
+ let tryBeginLabel = new Label();
+ let tryEndLabel = new Label();
+ let catchBeginLabel = new Label();
+ let catchEndLabel = endLabel ? endLabel : new Label();
+
+ let catchTable = new CatchTable(
+ pandaGen,
+ catchBeginLabel,
+ new LabelPair(tryBeginLabel, tryEndLabel));
+
+ // TryBlock begins
+ pandaGen.label(node, tryBeginLabel);
+ tryBuilder.compileTryBlock(catchTable);
+ pandaGen.label(node, tryEndLabel);
+
+ // Finally after normal try
+ tryBuilder.compileFinallyBlockIfExisted();
+ if (ts.isForOfStatement(node)) {
+ let loopScope = this.getRecorder().getScopeOfNode(node);
+ let needCreateLoopEnv = loopScope.need2CreateLexEnv();
+ if (needCreateLoopEnv) {
+ pandaGen.popLexicalEnv(node);
+ }
+ }
+ pandaGen.branch(node, catchEndLabel);
+
+ // exception Handler
+ pandaGen.label(node, catchBeginLabel);
+ tryBuilder.compileExceptionHandler();
+ if (!endLabel) {
+ pandaGen.label(node, catchEndLabel);
+ }
+ }
+
+ private compileTryStatement(stmt: ts.TryStatement) {
+ this.pushScope(stmt);
+ // try-catch-finally statements must have been transformed into
+ // two nested try statements with only "catch" or "finally" each.
+ if (stmt.catchClause && stmt.finallyBlock) {
+ transformTryCatchFinally(stmt, this.recorder);
+ }
+
+ let tryBuilder = new TryBuilder(this, this.pandaGen, stmt);
+ this.constructTry(stmt, tryBuilder);
+ this.popScope();
+ }
+
+ private compileFunctionDeclaration(decl: ts.FunctionDeclaration) {
+ if (!decl.name) {
+ let hasExport: boolean = hasExportKeywordModifier(decl);
+ let hasDefault: boolean = hasDefaultKeywordModifier(decl);
+ if (hasExport && hasDefault) {
+ if (this.scope instanceof ModuleScope) {
+ let internalName = this.compilerDriver.getFuncInternalName(decl);
+ let env = this.getCurrentEnv();
+ this.pandaGen.defineFunction(NodeKind.FirstNodeOfFunction, decl, internalName, env);
+ this.pandaGen.storeModuleVar(decl, "default");
+ } else {
+ throw new Error("SyntaxError: export function declaration cannot in other scope except ModuleScope");
+ }
+ } else {
+ throw new Error("Function declaration without name is unimplemented");
+ }
+ }
+ }
+
+ private compileExportAssignment(stmt: ts.ExportAssignment) {
+ this.compileExpression(stmt.expression);
+ this.pandaGen.storeModuleVar(stmt, "default");
+ }
+
+ compileCondition(expr: ts.Expression, ifFalseLabel: Label) {
+ let pandaGen = this.pandaGen;
+ if (expr.kind == ts.SyntaxKind.BinaryExpression) {
+ let binExpr = expr;
+
+ switch (binExpr.operatorToken.kind) {
+ case ts.SyntaxKind.LessThanToken: // line 57
+ case ts.SyntaxKind.GreaterThanToken: // line 59
+ case ts.SyntaxKind.LessThanEqualsToken: // line 60
+ case ts.SyntaxKind.GreaterThanEqualsToken: // line 61
+ case ts.SyntaxKind.EqualsEqualsToken: // line 62
+ case ts.SyntaxKind.ExclamationEqualsToken: // line 63
+ case ts.SyntaxKind.EqualsEqualsEqualsToken: // line 64
+ case ts.SyntaxKind.ExclamationEqualsEqualsToken: { // line 65
+ // This is a special case
+ // These operators are expressed via cmp instructions and the following
+ // if-else branches. Condition also expressed via cmp instruction and
+ // the following if-else.
+ // the goal of this method is to merge these two sequences of instructions.
+ let lhs = pandaGen.getTemp();
+ this.compileExpression(binExpr.left);
+ pandaGen.storeAccumulator(binExpr, lhs);
+ this.compileExpression(binExpr.right);
+ pandaGen.condition(binExpr, binExpr.operatorToken.kind, lhs, ifFalseLabel);
+ pandaGen.freeTemps(lhs);
+ return;
+ }
+ case ts.SyntaxKind.AmpersandAmpersandToken: {
+ this.compileExpression(binExpr.left);
+ pandaGen.toBoolean(binExpr.left);
+ pandaGen.condition(binExpr, ts.SyntaxKind.EqualsEqualsToken, getVregisterCache(pandaGen, CacheList.True), ifFalseLabel);
+ this.compileExpression(binExpr.right);
+ pandaGen.toBoolean(binExpr.right);
+ pandaGen.condition(binExpr, ts.SyntaxKind.EqualsEqualsToken, getVregisterCache(pandaGen, CacheList.True), ifFalseLabel);
+ return;
+ }
+ case ts.SyntaxKind.BarBarToken: {
+ let endLabel = new Label();
+ this.compileExpression(binExpr.left);
+ pandaGen.toBoolean(binExpr.left);
+ pandaGen.condition(binExpr, ts.SyntaxKind.EqualsEqualsToken, getVregisterCache(pandaGen, CacheList.False), endLabel);
+ this.compileExpression(binExpr.right);
+ pandaGen.toBoolean(binExpr.right);
+ pandaGen.condition(binExpr, ts.SyntaxKind.ExclamationEqualsToken, getVregisterCache(pandaGen, CacheList.False), ifFalseLabel);
+ pandaGen.label(binExpr, endLabel);
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ // General case including some binExpr i.e.(a+b)
+ this.compileExpression(expr);
+ pandaGen.toBoolean(expr);
+ pandaGen.condition(expr, ts.SyntaxKind.EqualsEqualsToken, getVregisterCache(pandaGen, CacheList.True), ifFalseLabel);
+ }
+
+ compileExpression(expr: ts.Expression) {
+ // Please keep order of cases the same as in types.ts
+ LOGD(this.debugTag, "compile expr:" + expr.kind);
+ switch (expr.kind) {
+ case ts.SyntaxKind.NumericLiteral: // line 34
+ compileNumericLiteral(this.pandaGen, expr);
+ break;
+ case ts.SyntaxKind.BigIntLiteral: // line 35
+ break;
+ case ts.SyntaxKind.StringLiteral: // line 36
+ compileStringLiteral(this.pandaGen, expr);
+ break;
+ case ts.SyntaxKind.RegularExpressionLiteral: // line 39
+ this.compileRegularExpressionLiteral(expr);
+ break;
+ case ts.SyntaxKind.Identifier: // line 109
+ this.compileIdentifier(expr);
+ break;
+ case ts.SyntaxKind.TrueKeyword: // line 114
+ case ts.SyntaxKind.FalseKeyword: // line 126
+ this.compileBooleanLiteral(expr);
+ break;
+ case ts.SyntaxKind.CallExpression: // line 243
+ compileCallExpression(expr, this);
+ break;
+ case ts.SyntaxKind.NullKeyword: // line 135
+ this.pandaGen.loadAccumulator(expr, getVregisterCache(this.pandaGen, CacheList.Null));
+ break;
+ case ts.SyntaxKind.ThisKeyword: // line 139
+ this.compileThisKeyword(expr);
+ break;
+ case ts.SyntaxKind.MetaProperty:
+ compileMetaProperty(expr, this);
+ break;
+ case ts.SyntaxKind.ArrayLiteralExpression: // line 239
+ compileArrayLiteralExpression(this, expr);
+ break;
+ case ts.SyntaxKind.ObjectLiteralExpression: // line 240
+ compileObjectLiteralExpression(this, expr);
+ break;
+ case ts.SyntaxKind.PropertyAccessExpression: // line 241
+ case ts.SyntaxKind.ElementAccessExpression: // line 242
+ compileMemberAccessExpression(expr, this);
+ break;
+ case ts.SyntaxKind.NewExpression: // line 244
+ compileNewExpression(expr, this);
+ break;
+ case ts.SyntaxKind.ParenthesizedExpression: // line 247
+ this.compileExpression(findInnerExprOfParenthesis(expr));
+ break;
+ case ts.SyntaxKind.FunctionExpression: // line 248
+ this.compileFunctionExpression(expr);
+ break;
+ case ts.SyntaxKind.DeleteExpression: // line 250
+ this.compileDeleteExpression(expr);
+ break;
+ case ts.SyntaxKind.TypeOfExpression: // line 251
+ this.compileTypeOfExpression(expr);
+ break;
+ case ts.SyntaxKind.VoidExpression: // line 252
+ this.compileVoidExpression(expr);
+ break;
+ case ts.SyntaxKind.AwaitExpression:
+ this.compileAwaitExpression(expr);
+ break;
+ case ts.SyntaxKind.PrefixUnaryExpression: // line 254
+ this.compilePrefixUnaryExpression(expr);
+ break;
+ case ts.SyntaxKind.PostfixUnaryExpression: // line 255
+ this.compilePostfixUnaryExpression(expr);
+ break;
+ case ts.SyntaxKind.BinaryExpression: // line 256
+ this.compileBinaryExpression(expr);
+ break;
+ case ts.SyntaxKind.ConditionalExpression: // line 257
+ this.compileConditionalExpression(expr);
+ break;
+ case ts.SyntaxKind.YieldExpression: // line 259
+ compileYieldExpression(this, expr);
+ break;
+ case ts.SyntaxKind.ArrowFunction: //line 249
+ this.compileArrowFunction(expr);
+ break;
+ case ts.SyntaxKind.TemplateExpression:
+ this.compileTemplateExpression(expr);
+ break;
+ case ts.SyntaxKind.NoSubstitutionTemplateLiteral:
+ case ts.SyntaxKind.FirstTemplateToken:
+ case ts.SyntaxKind.LastLiteralToken:
+ this.compileNoSubstitutionTemplateLiteral(expr);
+ break;
+ case ts.SyntaxKind.TaggedTemplateExpression:
+ this.compileTaggedTemplateExpression(expr);
+ break;
+ case ts.SyntaxKind.Constructor:
+ break;
+ case ts.SyntaxKind.PropertyDeclaration:
+ break;
+ case ts.SyntaxKind.ClassExpression:
+ compileClassDeclaration(this, expr);
+ break;
+ default:
+ throw new Error("Expression of type " + this.getNodeName(expr) + " is unimplemented");
+ }
+ }
+
+ private compileRegularExpressionLiteral(regexp: ts.RegularExpressionLiteral) {
+ let pandaGen = this.pandaGen;
+
+ let ctorReg = pandaGen.getTemp();
+ let newTargetReg = pandaGen.getTemp();
+ let regexpText = regexp.text;
+ let regexpPatternReg = pandaGen.getTemp();
+ let regexpPattern = regexpText;
+ let regexpFlags = "";
+ let firstSlashPos = regexpText.indexOf('/');
+ let lastSlashPos = regexpText.lastIndexOf('/');
+ if (firstSlashPos == -1 ||
+ lastSlashPos == -1 ||
+ firstSlashPos == lastSlashPos) {
+ throw new Error("Incorrect regular expression");
+ }
+ regexpPattern = regexpText.substring(firstSlashPos + 1, lastSlashPos);
+ regexpFlags = regexpText.substring(lastSlashPos + 1);
+
+ pandaGen.tryLoadGlobalByName(regexp, "RegExp");
+ pandaGen.storeAccumulator(regexp, ctorReg);
+ pandaGen.moveVreg(regexp, newTargetReg, ctorReg);
+
+ pandaGen.loadAccumulatorString(regexp, regexpPattern);
+ pandaGen.storeAccumulator(regexp, regexpPatternReg);
+
+ let argsArray = [ctorReg, newTargetReg, regexpPatternReg];
+
+ if (regexpFlags.length > 0) {
+ let regexpFlagsReg = pandaGen.getTemp();
+ pandaGen.loadAccumulatorString(regexp, regexpFlags);
+ pandaGen.storeAccumulator(regexp, regexpFlagsReg);
+ argsArray.push(regexpFlagsReg);
+ }
+ pandaGen.newObject(regexp, argsArray);
+ pandaGen.freeTemps(...argsArray);
+ }
+
+ private compileIdentifier(id: ts.Identifier) {
+ let name = jshelpers.getTextOfIdentifierOrLiteral(id);
+ let { scope, level, v } = this.scope.find(name);
+
+ if (!v) {
+ // the variable may appear after function call
+ // any way it is a global variable.
+ this.compileUnscopedIdentifier(id);
+ } else {
+ this.loadTarget(id, { scope, level, v });
+ }
+ }
+
+ private compileUnscopedIdentifier(id: ts.Identifier) {
+ let name = jshelpers.getTextOfIdentifierOrLiteral(id);
+ let pandaGen = this.pandaGen;
+ switch (name) {
+ // Those identifier are Built-In value properties
+ case "NaN":
+ pandaGen.loadAccumulator(id, getVregisterCache(this.pandaGen, CacheList.NaN));
+ return;
+ case "Infinity":
+ pandaGen.loadAccumulator(id, getVregisterCache(this.pandaGen, CacheList.Infinity));
+ return;
+ case "globalThis":
+ pandaGen.loadAccumulator(id, getVregisterCache(this.pandaGen, CacheList.Global));
+ return;
+ case "undefined":
+ pandaGen.loadAccumulator(id, getVregisterCache(this.pandaGen, CacheList.undefined));
+ return;
+ default: {
+ // typeof an undeclared variable will return undefined instead of throwing reference error
+ let parent = findOuterNodeOfParenthesis(id);
+
+ if ((parent.kind == ts.SyntaxKind.TypeOfExpression)) {
+ let obj = getVregisterCache(pandaGen, CacheList.Global);
+ pandaGen.loadObjProperty(id, obj, name);
+ } else {
+ pandaGen.tryLoadGlobalByName(id, name);
+ }
+ break;
+ }
+ }
+ }
+
+ private compileBooleanLiteral(lit: ts.BooleanLiteral) {
+ if (lit.kind == ts.SyntaxKind.TrueKeyword) {
+ this.pandaGen.loadAccumulator(lit, getVregisterCache(this.pandaGen, CacheList.True));
+ } else {
+ this.pandaGen.loadAccumulator(lit, getVregisterCache(this.pandaGen, CacheList.False));
+ }
+ }
+
+ compileFunctionReturnThis(expr: ts.NewExpression | ts.CallExpression): boolean {
+ if (expr.expression.kind == ts.SyntaxKind.Identifier) {
+ let identifier = expr.expression;
+ let args = expr.arguments;
+ if (identifier.escapedText == "Function") {
+ if (args && args.length > 0) {
+ if (!ts.isStringLiteral(args[args.length - 1])) {
+ return false;
+ }
+ let arg = args[args.length - 1];
+ if (arg.text.match(/ *return +this[;]? *$/) == null) {
+ return false;
+ } else {
+ this.pandaGen.loadAccumulator(expr, getVregisterCache(this.pandaGen, CacheList.Global))
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private compileThisKeyword(node: ts.Node) {
+ let pandaGen = this.pandaGen;
+
+ checkValidUseSuperBeforeSuper(this, node);
+
+ let { scope, level, v } = this.scope.find("this");
+ if (!v) {
+ throw new Error("\"this\" not found");
+ }
+
+ if (v instanceof LocalVariable) {
+ if (scope && level >= 0) {
+ let curScope = this.scope;
+ let needSetLexVar: boolean = false;
+ while (curScope != scope) {
+ if (curScope instanceof VariableScope) {
+ needSetLexVar = true;
+ break;
+ }
+ curScope = curScope.getParent();
+ }
+
+ if (needSetLexVar) {
+ scope.setLexVar(v, this.scope);
+ }
+ }
+ pandaGen.loadAccFromLexEnv(node, scope!, level, v);
+ } else {
+ throw new Error("\"this\" must be a local variable");
+ }
+ }
+
+ private compileFunctionExpression(expr: ts.FunctionExpression) {
+ let internalName = this.compilerDriver.getFuncInternalName(expr);
+ let env = this.getCurrentEnv();
+ this.pandaGen.defineFunction(expr, expr, internalName, env);
+ }
+
+ private compileDeleteExpression(expr: ts.DeleteExpression) {
+ let pandaGen = this.pandaGen;
+ let objReg: VReg;
+ let propReg: VReg;
+ let unaryExpr = expr.expression;
+ switch (unaryExpr.kind) {
+ case ts.SyntaxKind.Identifier: {
+ // Check if this is a known variable.
+ let name = jshelpers.getTextOfIdentifierOrLiteral(unaryExpr);
+ let { scope, level, v } = this.scope.find(name);
+
+ if (!v || ((scope instanceof GlobalScope) && (v instanceof GlobalVariable))) {
+ // If the variable doesn't exist or if it is global, we must generate
+ // a delete global property instruction.
+ let variableReg = pandaGen.getTemp();
+ objReg = getVregisterCache(pandaGen, CacheList.Global);
+ pandaGen.loadAccumulatorString(unaryExpr, name);
+ pandaGen.storeAccumulator(unaryExpr, variableReg);
+ pandaGen.deleteObjProperty(expr, objReg, variableReg);
+ pandaGen.freeTemps(variableReg);
+ } else {
+ // Otherwise it is a local variable which can't be deleted and we just
+ // return false.
+ pandaGen.loadAccumulator(unaryExpr, getVregisterCache(pandaGen, CacheList.False));
+ }
+ break;
+ }
+ case ts.SyntaxKind.PropertyAccessExpression:
+ case ts.SyntaxKind.ElementAccessExpression: {
+ objReg = pandaGen.getTemp();
+ propReg = pandaGen.getTemp();
+
+ if (jshelpers.isSuperProperty(unaryExpr)) {
+ pandaGen.throwDeleteSuperProperty(unaryExpr);
+ pandaGen.freeTemps(objReg, propReg);
+ return;
+ }
+
+ let { prop: prop } = getObjAndProp(unaryExpr, objReg, propReg, this);
+ switch (typeof prop) {
+ case "string":
+ pandaGen.loadAccumulatorString(expr, prop);
+ pandaGen.storeAccumulator(expr, propReg);
+ break;
+ case "number":
+ pandaGen.loadAccumulatorInt(expr, prop);
+ pandaGen.storeAccumulator(expr, propReg);
+ break;
+ default:
+ break;
+ }
+
+ pandaGen.deleteObjProperty(expr, objReg, propReg);
+ pandaGen.freeTemps(objReg, propReg);
+ break;
+ }
+ default: {
+ // compile the delete operand.
+ this.compileExpression(unaryExpr);
+
+ // Deleting any value or a result of an expression returns True.
+ pandaGen.loadAccumulator(expr, getVregisterCache(pandaGen, CacheList.True));
+ }
+ }
+ }
+
+ private compileTypeOfExpression(expr: ts.TypeOfExpression) {
+ // expr -> acc
+ this.compileExpression(expr.expression);
+ this.pandaGen.typeOf(expr);
+ }
+
+ private compileVoidExpression(expr: ts.VoidExpression) {
+ let pandaGen = this.pandaGen;
+ // compileExpression() must be called even though its value is not used
+ // because it may have observable sideeffects.
+ this.compileExpression(expr.expression);
+ pandaGen.loadAccumulator(expr, getVregisterCache(pandaGen, CacheList.undefined));
+ }
+
+ private compileAwaitExpression(expr: ts.AwaitExpression) {
+ let pandaGen = this.pandaGen;
+
+ if (!(this.funcBuilder instanceof AsyncFunctionBuilder)) {
+ throw new DiagnosticError(expr.parent, DiagnosticCode.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules);
+ }
+
+ if (expr.expression) {
+ let retValue = pandaGen.getTemp();
+
+ this.compileExpression(expr.expression);
+ pandaGen.storeAccumulator(expr, retValue);
+
+ this.funcBuilder.await(expr, retValue);
+
+ pandaGen.freeTemps(retValue);
+ } else {
+ this.funcBuilder.await(expr, getVregisterCache(pandaGen, CacheList.undefined));
+ }
+ }
+
+ private compilePrefixUnaryExpression(expr: ts.PrefixUnaryExpression) {
+ let pandaGen = this.pandaGen;
+ let operandReg = pandaGen.getTemp();
+ // acc -> op(acc)
+ switch (expr.operator) {
+ case ts.SyntaxKind.PlusPlusToken: // line 73
+ case ts.SyntaxKind.MinusMinusToken: { // line 74
+ let lref = LReference.generateLReference(this, expr.operand, false);
+ lref.getValue();
+ pandaGen.storeAccumulator(expr, operandReg);
+ pandaGen.unary(expr, expr.operator, operandReg);
+ lref.setValue();
+ break;
+ }
+ case ts.SyntaxKind.PlusToken: // line 67
+ case ts.SyntaxKind.MinusToken: // line 68
+ case ts.SyntaxKind.ExclamationToken: // line 81
+ case ts.SyntaxKind.TildeToken: { // line 82
+ this.compileExpression(expr.operand);
+ pandaGen.storeAccumulator(expr, operandReg);
+ pandaGen.unary(expr, expr.operator, operandReg);
+ break;
+ }
+ default:
+ break;
+ }
+ pandaGen.freeTemps(operandReg);
+ }
+
+ private compilePostfixUnaryExpression(expr: ts.PostfixUnaryExpression) {
+ let pandaGen = this.pandaGen;
+ let operandReg = pandaGen.getTemp();
+ // expr -> acc
+ let lref = LReference.generateLReference(this, expr.operand, false);
+ lref.getValue();
+ // operand = acc
+ pandaGen.storeAccumulator(expr, operandReg);
+ // acc +/- 1
+ switch (expr.operator) {
+ case ts.SyntaxKind.PlusPlusToken:
+ case ts.SyntaxKind.MinusMinusToken:
+ pandaGen.unary(expr, expr.operator, operandReg);
+ break;
+ default:
+ break;
+ }
+ // lvalue var = acc +/- 1
+ lref.setValue();
+ // acc = operand_old
+ pandaGen.toNumber(expr, operandReg);
+ pandaGen.freeTemps(operandReg);
+ }
+
+ private compileLogicalExpression(expr: ts.BinaryExpression) {
+ let pandaGen = this.pandaGen;
+ let lhs = pandaGen.getTemp();
+ switch (expr.operatorToken.kind) {
+ case ts.SyntaxKind.AmpersandAmpersandToken: { // line 83
+ let leftFalseLabel = new Label();
+ let endLabel = new Label();
+
+ // left -> acc -> lhs -> toboolean -> acc -> boolLhs
+ this.compileExpression(expr.left);
+ pandaGen.storeAccumulator(expr, lhs);
+ pandaGen.toBoolean(expr.left);
+ pandaGen.condition(expr, ts.SyntaxKind.EqualsEqualsToken, getVregisterCache(pandaGen, CacheList.True), leftFalseLabel);
+ // left is true then right -> acc
+ this.compileExpression(expr.right);
+ pandaGen.branch(expr, endLabel);
+ // left is false then lhs -> acc
+ pandaGen.label(expr, leftFalseLabel);
+ pandaGen.loadAccumulator(expr, lhs);
+ pandaGen.label(expr, endLabel);
+ break;
+ }
+ case ts.SyntaxKind.BarBarToken: { // line 84
+ let leftTrueLabel = new Label();
+ let endLabel = new Label();
+
+ // left -> acc -> lhs -> toboolean -> acc -> boolLhs
+ this.compileExpression(expr.left);
+ pandaGen.storeAccumulator(expr, lhs);
+ pandaGen.toBoolean(expr.left);
+ pandaGen.condition(expr, ts.SyntaxKind.EqualsEqualsToken, getVregisterCache(pandaGen, CacheList.False), leftTrueLabel);
+ // left is false then right -> acc
+ this.compileExpression(expr.right);
+ pandaGen.branch(expr, endLabel);
+ // left is true then lhs -> acc
+ pandaGen.label(expr, leftTrueLabel);
+ pandaGen.loadAccumulator(expr, lhs);
+ pandaGen.label(expr, endLabel);
+ break;
+ }
+ case ts.SyntaxKind.QuestionQuestionToken: { // line 90
+ let leftNullishLabel = new Label();
+ let endLabel = new Label();
+ // left -> acc -> lhs
+ this.compileExpression(expr.left);
+ pandaGen.storeAccumulator(expr, lhs);
+ // eqaulity comparasion between lhs and null, if true, load right
+ pandaGen.condition(expr, ts.SyntaxKind.ExclamationEqualsEqualsToken, getVregisterCache(pandaGen, CacheList.Null), leftNullishLabel);
+ // eqaulity comparasion between lhs and undefined, if true, load right
+ pandaGen.loadAccumulator(expr.left, lhs);
+ pandaGen.condition(expr, ts.SyntaxKind.ExclamationEqualsEqualsToken, getVregisterCache(pandaGen, CacheList.undefined), leftNullishLabel);
+ // lhs is either null or undefined, load left
+ pandaGen.loadAccumulator(expr, lhs);
+ pandaGen.branch(expr, endLabel);
+ pandaGen.label(expr, leftNullishLabel);
+ this.compileExpression(expr.right);
+ pandaGen.label(expr, endLabel);
+ break;
+ }
+ default:
+ throw new Error("BinaryExpression with operatorToken " + this.getNodeName(expr.operatorToken) + " is not Logical Operator");
+ }
+ pandaGen.freeTemps(lhs);
+ }
+
+ private compileBinaryExpression(expr: ts.BinaryExpression) {
+ if (isAssignmentOperator(expr.operatorToken.kind)) {
+ this.compileAssignmentExpression(expr.left, expr.right, expr.operatorToken.kind);
+ return;
+ }
+ // LogicAnd, LogicOr and Coalesce are Short-circuiting
+ if (expr.operatorToken.kind == ts.SyntaxKind.AmpersandAmpersandToken
+ || expr.operatorToken.kind == ts.SyntaxKind.BarBarToken
+ || expr.operatorToken.kind == ts.SyntaxKind.QuestionQuestionToken) {
+ this.compileLogicalExpression(expr);
+ return;
+ }
+
+ let pandaGen = this.pandaGen;
+ let lhs = pandaGen.getTemp();
+ this.compileExpression(expr.left);
+ pandaGen.storeAccumulator(expr, lhs);
+ this.compileExpression(expr.right);
+
+ if (expr.operatorToken.kind != ts.SyntaxKind.CommaToken) {
+ pandaGen.binary(expr, expr.operatorToken.kind, lhs);
+ }
+
+ pandaGen.freeTemps(lhs);
+ }
+
+ private compileConditionalExpression(expr: ts.ConditionalExpression) {
+ let falseLabel = new Label();
+ let endLabel = new Label();
+
+ this.compileCondition(expr.condition, falseLabel);
+ this.compileExpression(expr.whenTrue);
+ this.pandaGen.branch(expr, endLabel);
+ this.pandaGen.label(expr, falseLabel);
+ this.compileExpression(expr.whenFalse);
+ this.pandaGen.label(expr, endLabel);
+ }
+
+ private compileArrowFunction(expr: ts.ArrowFunction) {
+ let internalName = this.compilerDriver.getFuncInternalName(expr);
+ let env = this.getCurrentEnv();
+ this.pandaGen.defineFunction(expr, expr, internalName, env);
+ }
+
+ private compileTemplateSpan(expr: ts.TemplateSpan) {
+ let span = expr.expression;
+ this.compileExpression(span);
+ let literal = expr.literal;
+ let lrh = this.pandaGen.getTemp();
+ let text = literal.text;
+
+ if (text.length != 0) {
+ this.pandaGen.storeAccumulator(expr, lrh);
+ this.pandaGen.loadAccumulatorString(expr, text);
+ this.pandaGen.binary(expr, ts.SyntaxKind.PlusToken, lrh);
+ }
+
+ this.pandaGen.freeTemps(lrh);
+ }
+
+ private compileTemplateExpression(expr: ts.TemplateExpression) {
+ let pandaGen = this.pandaGen;
+ let head = expr.head;
+ let spans = expr.templateSpans;
+
+ let lrh = pandaGen.getTemp();
+ pandaGen.loadAccumulatorString(expr, head.text);
+
+ if (spans && spans.length > 0) {
+ spans.forEach((spanExp: ts.TemplateSpan) => {
+ pandaGen.storeAccumulator(expr, lrh);
+ this.compileTemplateSpan(spanExp);
+ pandaGen.binary(expr, ts.SyntaxKind.PlusToken, lrh);
+ });
+ }
+
+ pandaGen.freeTemps(lrh);
+ }
+
+ private compileNoSubstitutionTemplateLiteral(expr: ts.NoSubstitutionTemplateLiteral) {
+ let text = expr.text;
+ this.pandaGen.loadAccumulatorString(expr, text);
+ }
+
+ private compileTaggedTemplateExpression(expr: ts.TaggedTemplateExpression) {
+ let pandaGen = this.pandaGen;
+ let spans = undefined;
+ if (ts.isTemplateExpression(expr.template)) {
+ spans = expr.template.templateSpans;
+ }
+
+ let { arguments: argRegs, passThis: passThis } = getHiddenParameters(expr.tag, this); // +3 for function and this
+ getTemplateObject(pandaGen, expr);
+ let templateObj = pandaGen.getTemp();
+ pandaGen.storeAccumulator(expr, templateObj)
+ argRegs.push(templateObj);
+
+ if (spans && spans.length) {
+ spans.forEach((spanExp: ts.TemplateSpan) => {
+ let exprReg = pandaGen.getTemp();
+ this.compileExpression(spanExp.expression);
+ pandaGen.storeAccumulator(spanExp, exprReg);
+ argRegs.push(exprReg);
+ });
+ }
+
+ pandaGen.call(expr, argRegs, passThis);
+ pandaGen.freeTemps(...argRegs);
+
+ return;
+ }
+
+ private compileAssignmentExpression(lhs: ts.Expression, rhs: ts.Expression, operator: AssignmentOperator) {
+ let lref = LReference.generateLReference(this, lhs, false);
+
+ if (operator != ts.SyntaxKind.EqualsToken) {
+ let lhsVreg = this.pandaGen.getTemp();
+
+ lref.getValue();
+ this.pandaGen.storeAccumulator(lhs, lhsVreg);
+ this.compileExpression(rhs);
+ this.pandaGen.binary(lhs.parent, operator, lhsVreg);
+ this.pandaGen.freeTemps(lhsVreg);
+ } else {
+ this.compileExpression(rhs);
+ }
+
+ lref.setValue();
+ }
+
+ pushScope(node: ts.Node) {
+ let scope = this.recorder.getScopeOfNode(node);
+ this.scope = scope;
+ // for debug info
+ DebugInfo.addDebugIns(scope, this.pandaGen, true);
+ }
+
+ popScope() {
+ // for debug info
+ DebugInfo.addDebugIns(this.scope, this.pandaGen, false);
+ this.scope = this.scope.getParent();
+ }
+
+ private getNodeName(node: ts.Node): string {
+ return ts.SyntaxKind[node.kind];
+ }
+
+ getThis(node: ts.Node, res: VReg) {
+ let pandaGen = this.pandaGen;
+ let thisInfo = this.getCurrentScope().find("this");
+ if (thisInfo.v!.isLexVar) {
+ let slot = (thisInfo.v).idxLex;
+ pandaGen.loadLexicalVar(node, thisInfo.level, slot);
+ pandaGen.storeAccumulator(node, res);
+ } else {
+ pandaGen.moveVreg(node, res, pandaGen.getVregForVariable(thisInfo.v))
+ }
+ }
+
+ setThis(node: ts.Node) {
+ let pandaGen = this.pandaGen;
+ let thisInfo = this.getCurrentScope().find("this");
+ if (thisInfo.v!.isLexVar) {
+ let slot = (thisInfo.v).idxLex;
+ let value = pandaGen.getTemp();
+ pandaGen.storeAccumulator(node, value);
+ pandaGen.storeLexicalVar(node, thisInfo.level, slot, value);
+ pandaGen.freeTemps(value);
+ } else {
+ pandaGen.storeAccumulator(node, pandaGen.getVregForVariable(thisInfo.v))
+ }
+ }
+
+ getPandaGen() {
+ return this.pandaGen;
+ }
+
+ getCurrentScope() {
+ return this.scope;
+ }
+
+ getCompilerDriver() {
+ return this.compilerDriver;
+ }
+
+ getRecorder() {
+ return this.recorder;
+ }
+
+ getFuncBuilder() {
+ return this.funcBuilder;
+ }
+
+ storeTarget(node: ts.Node,
+ variable: { scope: Scope | undefined, level: number, v: Variable | undefined },
+ isDeclaration: boolean) {
+ if (variable.v instanceof LocalVariable) {
+ if (isDeclaration) {
+ if (variable.v.isLetOrConst()) {
+ variable.v.initialize();
+ }
+ }
+ if (variable.scope && variable.level >= 0) { // inner most function will load outer env instead of new a lex env
+ let scope = this.scope;
+ let needSetLexVar: boolean = false;
+ while (scope != variable.scope) {
+ if (scope instanceof VariableScope) {
+ needSetLexVar = true;
+ break;
+ }
+ scope = scope.getParent();
+ }
+
+ if (needSetLexVar) {
+ variable.scope.setLexVar(variable.v, this.scope);
+ }
+ }
+ // storeAcc must after setLexVar, because next statement will emit bc intermediately
+ this.pandaGen.storeAccToLexEnv(node, variable.scope!, variable.level, variable.v, isDeclaration);
+ } else if (variable.v instanceof GlobalVariable) {
+ if (variable.v.isNone() && isStrictMode(node)) {
+ this.pandaGen.tryStoreGlobalByName(node, variable.v.getName());
+ } else {
+ this.pandaGen.storeGlobalVar(node, variable.v.getName());
+ }
+ } else {
+ throw new Error("invalid lhsRef to store");
+ }
+ }
+
+ loadTarget(node: ts.Node, variable: { scope: Scope | undefined, level: number, v: Variable | undefined }) {
+ if (variable.v instanceof ModuleVariable) {
+ this.pandaGen.loadModuleVariable(node, variable.v.getModule(), variable.v.getExoticName());
+ } else if (variable.v instanceof LocalVariable) {
+ if (variable.scope && variable.level >= 0) { // inner most function will load outer env instead of new a lex env
+ let scope = this.scope;
+ let needSetLexVar: boolean = false;
+ while (scope != variable.scope) {
+ if (scope instanceof VariableScope) {
+ needSetLexVar = true;
+ break;
+ }
+ scope = scope.getParent();
+ }
+
+ if (needSetLexVar) {
+ variable.scope.setLexVar((variable.v), this.scope);
+ }
+ }
+
+ this.pandaGen.loadAccFromLexEnv(node, variable.scope!, variable.level, (variable.v));
+ } else if (variable.v instanceof GlobalVariable) {
+ if (variable.v.isNone()) {
+ let parent = findOuterNodeOfParenthesis(node);
+ if ((parent.kind == ts.SyntaxKind.TypeOfExpression)) {
+ let obj = getVregisterCache(this.pandaGen, CacheList.Global);
+ this.pandaGen.loadObjProperty(node, obj, variable.v.getName());
+ } else {
+ this.pandaGen.tryLoadGlobalByName(node, variable.v.getName());
+ }
+ } else {
+ this.pandaGen.loadGlobalVar(node, variable.v.getName());
+ }
+ } else {
+ // Handle the variables from lexical scope
+ throw new Error("Only local and global variables are implemented");
+ }
+ }
+}
diff --git a/ts2panda/src/compilerDriver.ts b/ts2panda/src/compilerDriver.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6e2fab7dc8a64354dfca8f816234e1d66d81ba91
--- /dev/null
+++ b/ts2panda/src/compilerDriver.ts
@@ -0,0 +1,381 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { writeFileSync } from "fs";
+import { addVariableToScope } from "./addVariable2Scope";
+import { AssemblyDumper } from "./assemblyDumper";
+import { isAnonymousFunctionDefinition, initiateTs2abc, terminateWritePipe, listenChildExit } from "./base/util";
+import { CmdOptions } from "./cmdOptions";
+import {
+ Compiler
+} from "./compiler";
+import { CompilerStatistics } from "./compilerStatistics";
+import { DebugInfo } from "./debuginfo";
+import { hoisting } from "./hoisting";
+import { IntrinsicExpander } from "./intrinsicExpander";
+import * as jshelpers from "./jshelpers";
+import { LOGD } from "./log";
+import { setExportBinding, setImport } from "./modules";
+import { PandaGen } from "./pandagen";
+import { Pass } from "./pass";
+import { CacheExpander } from "./pass/cacheExpander";
+import { Recorder } from "./recorder";
+import { RegAlloc } from "./regAllocator";
+import {
+ GlobalScope,
+ ModuleScope,
+ Scope,
+ VariableScope
+} from "./scope";
+import { checkDuplicateDeclaration, checkExportEntries } from "./syntaxChecker";
+import { Ts2Panda } from "./ts2panda";
+import { findOuterNodeOfParenthesis } from "./expression/parenthesizedExpression";
+import { getClassNameForConstructor } from "./statement/classStatement";
+
+export class PendingCompilationUnit {
+ constructor(
+ readonly decl: ts.FunctionLikeDeclaration,
+ readonly scope: Scope,
+ readonly internalName: string
+ ) { }
+}
+
+/**
+ * The class which drives the compilation process.
+ * It handles all dependencies and run passes.
+ */
+export class CompilerDriver {
+ private fileName: string;
+ private passes: Pass[];
+ private compilationUnits: PandaGen[];
+ pendingCompilationUnits: PendingCompilationUnit[];
+ private functionId: number = 1; // 0 reserved for main
+ private funcIdMap: Map = new Map();
+ private statistics: CompilerStatistics;
+ private needDumpHeader: boolean = true;
+ private ts2abcProcess: any = undefined;
+
+ constructor(fileName: string) {
+ this.fileName = fileName;
+ // register passes here
+ this.passes = [
+ new CacheExpander(),
+ new IntrinsicExpander(),
+ new RegAlloc()
+ ];
+ this.compilationUnits = [];
+ this.pendingCompilationUnits = [];
+ this.statistics = new CompilerStatistics();
+ }
+
+ initiateTs2abcChildProcess() {
+ this.ts2abcProcess = initiateTs2abc([this.fileName]);
+ }
+
+ getTs2abcProcess(): any {
+ if (this.ts2abcProcess === undefined) {
+ throw new Error("ts2abc hasn't been initiated")
+ }
+ return this.ts2abcProcess;
+ }
+
+ getStatistics() {
+ return this.statistics;
+ }
+
+ setCustomPasses(passes: Pass[]) {
+ this.passes = passes;
+ }
+
+ addCompilationUnit(decl: ts.FunctionLikeDeclaration, scope: Scope): string {
+ let internalName = this.getFuncInternalName(decl);
+ this.pendingCompilationUnits.push(
+ new PendingCompilationUnit(decl, scope, internalName)
+ );
+ return internalName;
+ }
+
+ getCompilationUnits() {
+ return this.compilationUnits;
+ }
+
+ kind2String(kind: ts.SyntaxKind) {
+ return ts.SyntaxKind[kind];
+ }
+
+ getASTStatistics(node: ts.Node, statics: number[]) {
+ node.forEachChild(childNode => {
+ statics[childNode.kind] = statics[childNode.kind] + 1;
+ this.getASTStatistics(childNode, statics);
+ })
+ }
+
+ // sort all function by post order
+ postOrderAnalysis(scope: GlobalScope): VariableScope[] {
+ let spArray: VariableScope[] = [];
+ let stack: VariableScope[] = [];
+
+ stack.push(scope);
+ while (stack.length > 0) {
+ let temp: VariableScope | undefined = stack.pop();
+ if (temp == undefined) {
+ break;
+ }
+ spArray.push(temp);
+
+ for (let childVariableScope of temp.getChildVariableScope()) {
+ stack.push(childVariableScope);
+ }
+ }
+
+ return spArray.reverse();
+ }
+
+ compile(node: ts.SourceFile): void {
+ if (CmdOptions.showASTStatistics()) {
+ let statics: number[] = new Array(ts.SyntaxKind.Count).fill(0);
+
+ this.getASTStatistics(node, statics);
+ statics.forEach((element, idx) => {
+ if (element > 0) {
+ LOGD(this.kind2String(idx) + " = " + element);
+ }
+ });
+ }
+
+ let recorder = this.compilePrologue(node);
+
+ // initiate ts2abc
+ if (!CmdOptions.isAssemblyMode()) {
+ this.initiateTs2abcChildProcess();
+ let ts2abcProc = this.getTs2abcProcess();
+ try {
+ Ts2Panda.dumpCmdOptions(ts2abcProc);
+
+ for (let i = 0; i < this.pendingCompilationUnits.length; i++) {
+ let unit: PendingCompilationUnit = this.pendingCompilationUnits[i];
+ this.compileImpl(unit.decl, unit.scope, unit.internalName, recorder);
+ }
+
+ Ts2Panda.dumpStringsArray(ts2abcProc);
+ Ts2Panda.dumpConstantPool(ts2abcProc);
+
+ terminateWritePipe(ts2abcProc);
+
+ if (CmdOptions.isEnableDebugLog()) {
+ let jsonFileName = this.fileName.substring(0, this.fileName.lastIndexOf(".")).concat(".json");
+ writeFileSync(jsonFileName, Ts2Panda.jsonString);
+ LOGD("Successfully generate ", `${jsonFileName}`);
+ }
+
+ Ts2Panda.clearDumpData();
+ } catch (err) {
+ terminateWritePipe(ts2abcProc);
+ ts2abcProc.kill();
+ throw err;
+ }
+
+ listenChildExit(ts2abcProc);
+ } else {
+ for (let i = 0; i < this.pendingCompilationUnits.length; i++) {
+ let unit: PendingCompilationUnit = this.pendingCompilationUnits[i];
+ this.compileImpl(unit.decl, unit.scope, unit.internalName, recorder);
+ }
+ }
+
+ PandaGen.clearLiteralArrayBuffer();
+ }
+
+ private compileImpl(node: ts.SourceFile | ts.FunctionLikeDeclaration, scope: Scope,
+ internalName: string, recorder: Recorder): void {
+ let pandaGen = new PandaGen(internalName, this.getParametersCount(node), scope);
+ // for debug info
+ DebugInfo.addDebugIns(scope, pandaGen, true);
+
+ let compiler = new Compiler(node, pandaGen, this, recorder);
+
+ if (CmdOptions.isModules() && ts.isSourceFile(node) && scope instanceof ModuleScope) {
+ setImport(recorder.getImportStmts(), scope, pandaGen, compiler);
+ setExportBinding(recorder.getExportStmts(), scope, pandaGen);
+ }
+
+ // because of para vreg, don't change hosting's position
+ hoisting(node, pandaGen, recorder, compiler);
+ compiler.compile();
+
+ this.passes.forEach((pass) => pass.run(pandaGen));
+
+ // for debug info
+ DebugInfo.addDebugIns(scope, pandaGen, false);
+ DebugInfo.setDebugInfo(pandaGen);
+ DebugInfo.setSourceFileDebugInfo(pandaGen, node);
+
+ if (CmdOptions.isAssemblyMode()) {
+ this.writeBinaryFile(pandaGen);
+ } else {
+ Ts2Panda.dumpPandaGen(pandaGen, this.getTs2abcProcess());
+ }
+
+ if (CmdOptions.showHistogramStatistics()) {
+ this.statistics.getInsHistogramStatistics(pandaGen);
+ }
+ }
+
+ compileUnitTest(node: ts.SourceFile): void {
+ let recorder = this.compilePrologue(node);
+
+ for (let i = 0; i < this.pendingCompilationUnits.length; i++) {
+ let unit: PendingCompilationUnit = this.pendingCompilationUnits[i];
+ this.compileUnitTestImpl(unit.decl, unit.scope, unit.internalName, recorder);
+ }
+
+ PandaGen.clearLiteralArrayBuffer();
+ }
+
+ private compileUnitTestImpl(node: ts.SourceFile | ts.FunctionLikeDeclaration, scope: Scope,
+ internalName: string, recorder: Recorder) {
+ let pandaGen = new PandaGen(internalName, this.getParametersCount(node), scope);
+ let compiler = new Compiler(node, pandaGen, this, recorder);
+
+ if (CmdOptions.isModules() && ts.isSourceFile(node) && scope instanceof ModuleScope) {
+ setImport(recorder.getImportStmts(), scope, pandaGen, compiler);
+ setExportBinding(recorder.getExportStmts(), scope, pandaGen);
+ }
+
+ hoisting(node, pandaGen, recorder, compiler);
+ compiler.compile();
+
+ this.passes.forEach((pass) => pass.run(pandaGen));
+
+ this.compilationUnits.push(pandaGen);
+ }
+
+ private compilePrologue(node: ts.SourceFile) {
+ let topLevelScope: GlobalScope | ModuleScope;
+ if (CmdOptions.isModules()) {
+ topLevelScope = new ModuleScope(node);
+ } else {
+ topLevelScope = new GlobalScope(node);
+ }
+
+ let recorder = new Recorder(node, topLevelScope, this);
+ recorder.record();
+
+ checkDuplicateDeclaration(recorder);
+ checkExportEntries(recorder);
+ addVariableToScope(recorder);
+ let postOrderVariableScopes = this.postOrderAnalysis(topLevelScope);
+
+ for (let variableScope of postOrderVariableScopes) {
+ this.addCompilationUnit(variableScope.getBindingNode(), variableScope);
+ }
+
+ return recorder;
+ }
+
+ showStatistics(): void {
+ if (CmdOptions.showHistogramStatistics()) {
+ this.statistics.printHistogram(false);
+ }
+
+ if (CmdOptions.showHoistingStatistics()) {
+ this.statistics.printHoistStatistics();
+ }
+ }
+
+ getFuncId(node: ts.SourceFile | ts.FunctionLikeDeclaration | ts.ClassLikeDeclaration): number {
+ if (this.funcIdMap.has(node)) {
+ return this.funcIdMap.get(node)!;
+ }
+
+ if (ts.isSourceFile(node)) {
+ this.funcIdMap.set(node, 0);
+ return 0;
+ }
+
+ let idx = this.functionId++;
+
+ this.funcIdMap.set(node, idx);
+ return idx;
+ }
+
+ /**
+ * Internal name is used to indentify a function in panda file
+ * Runtime uses this name to bind code and a Function object
+ */
+ getFuncInternalName(node: ts.SourceFile | ts.FunctionLikeDeclaration): string {
+ let name: string = '';
+ if (ts.isSourceFile(node)) {
+ name = "main";
+ } else if (ts.isConstructorDeclaration(node)) {
+ let classNode = node.parent;
+ return this.getInternalNameForCtor(classNode);
+ } else {
+ let funcNode = node;
+ if (isAnonymousFunctionDefinition(funcNode)) {
+ let outerNode = findOuterNodeOfParenthesis(funcNode);
+ if (ts.isVariableDeclaration(outerNode)) {
+ let id = outerNode.name;
+ if (ts.isIdentifier(id)) {
+ name = jshelpers.getTextOfIdentifierOrLiteral(id);
+ }
+ } else if (ts.isBinaryExpression(outerNode)) {
+ if (outerNode.operatorToken.kind == ts.SyntaxKind.EqualsToken && ts.isIdentifier(outerNode.left)) {
+ name = jshelpers.getTextOfIdentifierOrLiteral(outerNode.left);
+ }
+ }
+ } else {
+ if (ts.isIdentifier(funcNode.name!)) {
+ name = jshelpers.getTextOfIdentifierOrLiteral(funcNode.name);
+ }
+ }
+ }
+
+ let internalName = "func_";
+ if (name == '') {
+ internalName += this.getFuncId(node);
+ } else {
+ internalName += name + '_' + this.getFuncId(node);
+ }
+
+ return internalName;
+ }
+
+ getInternalNameForCtor(node: ts.ClassLikeDeclaration) {
+ let name = getClassNameForConstructor(node);
+ return "func_" + name + "_" + this.getFuncId(node);
+ }
+
+ writeBinaryFile(pandaGen: PandaGen) {
+ if (this.needDumpHeader) {
+ AssemblyDumper.dumpHeader();
+ this.needDumpHeader = false;
+ }
+ new AssemblyDumper(pandaGen).dump();
+ }
+
+ private getParametersCount(node: ts.SourceFile | ts.FunctionLikeDeclaration): number {
+ // each function and global scope accepts three parameters - funcObj + newTarget + this.
+ // the runtime passes these to global scope when calls it
+ let parametersCount = 3;
+ if (node.kind == ts.SyntaxKind.SourceFile) {
+ return parametersCount;
+ }
+ let decl = node;
+ parametersCount += decl.parameters.length;
+ return parametersCount;
+ }
+}
\ No newline at end of file
diff --git a/ts2panda/src/compilerStatistics.ts b/ts2panda/src/compilerStatistics.ts
new file mode 100644
index 0000000000000000000000000000000000000000..964dcb483930f33a97d63621d53216dc73b69705
--- /dev/null
+++ b/ts2panda/src/compilerStatistics.ts
@@ -0,0 +1,286 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { builtinsCodeMap } from "./builtinsMap";
+import { CmdOptions } from "./cmdOptions";
+import { getInstructionSize, Imm, IRNode, IRNodeKind } from "./irnodes";
+import { LOGD } from "./log";
+import { PandaGen } from "./pandagen";
+
+export enum HoistingType {
+ GLOBAL_VAR = 0,
+ LOCAL_VAR,
+ GLOBAL_FUNCTION,
+ LOCAL_FUNCTION
+}
+
+class ItemValue {
+ private count: number = 1;
+ private instSize: number;
+ private relatedInsns: { name: string, num: number }[] = [];
+ private nodeMap: Map = new Map();
+
+ constructor(instSize: number, relatedInsns?: { name: string, num: number }) {
+ this.instSize = instSize;
+ if (relatedInsns) {
+ this.relatedInsns.push(relatedInsns);
+ }
+ }
+
+ add(num: number) {
+ this.count += num;
+ this.relatedInsns.forEach(relatedInsn => { relatedInsn.num += num });
+ }
+
+ set(num: number) {
+ this.count = num;
+ this.relatedInsns.forEach(relatedInsn => { relatedInsn.num = num });
+ }
+
+ getCount() {
+ return this.count;
+ }
+
+ getInstSize() {
+ return this.instSize;
+ }
+
+ getTotalSize() {
+ return this.count * this.instSize;
+ }
+
+ getRelatedInsns() {
+ return this.relatedInsns;
+ }
+
+ getNodeMap() {
+ return this.nodeMap;
+ }
+
+ updateNodeMap(nodeName: string) {
+ if (!this.nodeMap.has(nodeName)) {
+ this.nodeMap.set(nodeName, 1);
+ } else {
+ let old = this.nodeMap.get(nodeName);
+ this.nodeMap.set(nodeName, old! + 1);
+ }
+ }
+
+ unionNodeMap(nodeMap: Map) {
+ nodeMap.forEach((value: number, key: string) => {
+ if (!this.nodeMap.has(key)) {
+ this.nodeMap.set(key, value);
+ } else {
+ let oldvalue = this.nodeMap.get(key);
+ oldvalue! += value;
+ this.nodeMap.set(key, oldvalue!);
+ }
+ });
+ }
+
+ getSavedSizeIfRemoved(Histogram: HistogramStatistics) {
+ let savedSize = this.getTotalSize();
+ this.relatedInsns.forEach(relatedInsn => {
+ let histogram = Histogram.getStatistics();
+ let item = histogram.get(relatedInsn.name);
+ if (item) {
+ savedSize += (relatedInsn.num) * item.getInstSize();
+ }
+ });
+
+ return savedSize;
+ }
+
+ static createItemValue(name: string, instSize: number): ItemValue {
+ let relatedInsns: { name: string, num: number };
+ if (name == "lda.str") {
+ relatedInsns = { name: "sta.dyn", num: 1 };
+ }
+
+ return new ItemValue(instSize, relatedInsns!);
+ }
+}
+
+class HistogramStatistics {
+ private insHistogram: Map = new Map();
+ private funcName: string;
+
+ constructor(funcName: string) {
+ this.funcName = funcName;
+ }
+
+ getInsName(ins: IRNode): string {
+ if (ins.kind == IRNodeKind.LABEL) {
+ return "Label"
+ }
+
+ if (CmdOptions.isVariantBytecode()) {
+ if (ins.mnemonic.startsWith("builtin")) {
+ let subCode = (ins.operands[0]).value;
+
+ return (builtinsCodeMap as any)[ins.mnemonic][subCode];
+ }
+ } else {
+ if ((ins.kind == IRNodeKind.CALL) || (ins.kind == IRNodeKind.CALL_SHORT) || (ins.kind == IRNodeKind.CALL_RANGE)) {
+ let mnemonic = ins.operands[0];
+ let part = mnemonic.split('.');
+ return part[2];
+ }
+ }
+ return ins.mnemonic;
+ }
+
+ unionStatistics(histogram: HistogramStatistics): void {
+ let histogramData = histogram.getStatistics();
+ histogramData.forEach((value: ItemValue, key: string) => {
+ if (!this.insHistogram.has(key)) {
+ this.insHistogram.set(key, value);
+ } else {
+ let old = this.insHistogram.get(key);
+ old!.add(value.getCount());
+ old!.unionNodeMap(value.getNodeMap());
+ this.insHistogram.set(key, old!);
+ }
+ });
+ }
+
+ catchStatistics(pg: PandaGen): void {
+ pg.getInsns().forEach(ins => {
+ let key = this.getInsName(ins);
+ let opSize = getInstructionSize(ins.kind);
+ let nodeName = ins.getNodeName();
+ if (key.length <= 1) {
+ LOGD("this IRNode had no key: " + ins.toString());
+ }
+ if (!this.insHistogram.has(key)) {
+ let item = ItemValue.createItemValue(key, opSize);
+ item.updateNodeMap(nodeName);
+ this.insHistogram.set(key, item);
+ } else {
+ let old = this.insHistogram.get(key);
+ old!.updateNodeMap(nodeName);
+ old!.add(1);
+ this.insHistogram.set(key, old!);
+ }
+ });
+ return;
+ }
+
+ getStatistics(): Map {
+ return this.insHistogram;
+ }
+
+ getTotal() {
+ let totalInsnsNum: number = 0;
+ let totalSize: number = 0;
+ this.insHistogram.forEach((value, key) => {
+ totalInsnsNum += value.getCount();
+ totalSize += value.getTotalSize();
+ });
+
+ return [totalInsnsNum, totalSize];
+ }
+
+ print(): void {
+ let totalInsnsNum = this.getTotal()[0];
+ let totalSize = this.getTotal()[1];
+ LOGD("\n");
+ LOGD("Histogram:", "====== (" + this.funcName + ") ======");
+ LOGD("op code\t\t\tinsns number\tins size\ttotal size\tsize percentage");
+ this.insHistogram.forEach((value, key) => {
+ if (key.length < 8) { // 8 indicates insn name length
+ LOGD(key + "\t\t\t" + value.getCount() + "\t\t"+ value.getInstSize() + "\t\t" + value.getTotalSize() + "\t\t"
+ + value.getSavedSizeIfRemoved(this) + "\t" + Math.round(value.getSavedSizeIfRemoved(this) / totalSize * 100) + "%"); // multiplying 100 is to calculate the percentage data
+ } else if (key.length < 16) { // 16 indicates insn name length
+ LOGD(key + "\t\t" + value.getCount() + "\t\t" + value.getInstSize() + "\t\t" + value.getTotalSize() + "\t\t"
+ + value.getSavedSizeIfRemoved(this) + "\t" + Math.round(value.getSavedSizeIfRemoved(this) / totalSize * 100) + "%");
+ } else {
+ LOGD(key + "\t" + value.getCount() + "\t\t" + value.getInstSize() + "\t\t" + value.getTotalSize() + "\t\t"
+ + value.getSavedSizeIfRemoved(this) + "\t" + Math.round(value.getSavedSizeIfRemoved(this) / totalSize * 100) + "%");
+ }
+ });
+
+ LOGD("total insns number : \t" + totalInsnsNum + "\t\t" + "total Size : \t" + totalSize);
+
+ LOGD("\n");
+ this.insHistogram.forEach((value, key) => {
+ if (value.getNodeMap().size > 1) {
+
+ LOGD("op code: " + key);
+ value.getNodeMap().forEach((num: number, node: string) => {
+ if (node.length < 8) {
+ LOGD("Node: \t" + node + "\t\t\t\t\t\tnum: \t" + num + "\t\t" + Math.round(num / value.getCount() * 100) + "%");
+ } else if (node.length < 16) {
+ LOGD("Node: \t" + node + "\t\t\t\t\tnum: \t" + num + "\t\t" + Math.round(num / value.getCount() * 100) + "%");
+ } else if (node.length < 24) {
+ LOGD("Node: \t" + node + "\t\t\t\tnum: \t" + num + "\t\t" + Math.round(num / value.getCount() * 100) + "%");
+ } else {
+ LOGD("Node: \t" + node + "\t\t\tnum: \t" + num + "\t\t" + Math.round(num / value.getCount() * 100) + "%");
+ }
+ });
+ LOGD("\n");
+ }
+ });
+ }
+}
+
+export class CompilerStatistics {
+ private histogramMap: Map = new Map();
+ private numOfHoistingCases: number[] = [0, 0, 0, 0];
+ private hoistingRelatedInsnNum: number = 0;
+
+ constructor() {
+
+ }
+
+ addHoistingRelatedInsnNum(num: number) {
+ this.hoistingRelatedInsnNum += num;
+ }
+
+ addNumOfHoistCases(type: HoistingType) {
+ this.numOfHoistingCases[type]++;
+ }
+
+ getInsHistogramStatistics(pg: PandaGen) {
+ let histogram = new HistogramStatistics(pg.internalName);
+
+ histogram.catchStatistics(pg);
+ this.histogramMap.set(pg.internalName, histogram);
+ }
+
+ printHistogram(verbose: boolean) {
+ let totalHistogram = new HistogramStatistics("Total");
+
+ this.histogramMap.forEach((histogram, funcName) => {
+ totalHistogram.unionStatistics(histogram);
+
+ if (verbose) {
+ histogram.print();
+ }
+ });
+
+ totalHistogram.print();
+ }
+
+ printHoistStatistics(): void {
+ LOGD("\n");
+ LOGD("HoistingRelated Histogram:", "======whole file=======");
+ LOGD("global var\tlocal var\tglobal function\tlocal function");
+ LOGD(this.numOfHoistingCases[0] + "\t\t" + this.numOfHoistingCases[1] + "\t\t" + this.numOfHoistingCases[2] + "\t\t" + this.numOfHoistingCases[3]);
+ LOGD("\n");
+ LOGD("Approximately hoisting related insns nums");
+ LOGD(this.hoistingRelatedInsnNum);
+ }
+}
\ No newline at end of file
diff --git a/ts2panda/src/compilerUtils.ts b/ts2panda/src/compilerUtils.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d1af4d4536f4b5eedb507034ce010b8965f933eb
--- /dev/null
+++ b/ts2panda/src/compilerUtils.ts
@@ -0,0 +1,413 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { PandaGen } from "src/pandagen";
+import * as ts from "typescript";
+import { LReference } from "./base/lreference";
+import {
+ isArrayBindingOrAssignmentPattern,
+ isObjectBindingOrAssignmentPattern
+} from "./base/util";
+import {
+ CacheList,
+ getVregisterCache
+} from "./base/vregisterCache";
+import { Compiler } from "./compiler";
+import {
+ Label,
+ VReg
+} from "./irnodes";
+import jshelpers from "./jshelpers";
+import {
+ CatchTable,
+ LabelPair
+} from "./statement/tryStatement";
+import { Iterator } from "./base/iterator";
+
+export function compileDestructuring(pattern: ts.BindingOrAssignmentPattern, pandaGen: PandaGen, compiler: Compiler) {
+ let rhs = pandaGen.getTemp();
+ pandaGen.storeAccumulator(pattern, rhs);
+
+ if (isArrayBindingOrAssignmentPattern(pattern)) {
+ compileArrayDestructuring(pattern, pandaGen, compiler);
+ }
+
+ if (isObjectBindingOrAssignmentPattern(pattern)) {
+ compileObjectDestructuring(pattern, pandaGen, compiler);
+ }
+
+ pandaGen.loadAccumulator(pattern, rhs);
+ pandaGen.freeTemps(rhs);
+}
+
+function compileArrayDestructuring(arr: ts.ArrayBindingOrAssignmentPattern, pandaGen: PandaGen, compiler: Compiler) {
+ let iter = pandaGen.getTemp();
+ let nextMethod = pandaGen.getTemp();
+ let iterDone = pandaGen.getTemp();
+ let iterValue = pandaGen.getTemp();
+ let nextResult = pandaGen.getTemp();
+ let exception = pandaGen.getTemp();
+
+ let isDeclaration = ts.isArrayBindingPattern(arr) ? true : false;
+
+ // get iterator
+ let iterator = new Iterator({iterator: iter, nextMethod: nextMethod}, iterDone, iterValue, pandaGen, arr);
+ iterator.getIterator();
+
+ // prepare try-catch for iterate over all the elements
+ let tryBeginLabel = new Label();
+ let tryEndLabel = new Label();
+ let catchBeginLabel = new Label();
+ let catchEndLabel = new Label();
+ let normalClose = new Label();
+ let endLabel = new Label();
+ new CatchTable(
+ pandaGen,
+ catchBeginLabel,
+ new LabelPair(tryBeginLabel, tryEndLabel)
+ );
+
+ // try start
+ pandaGen.label(arr, tryBeginLabel);
+
+ for (let i = 0; i < arr.elements.length; i++) {
+ let element = arr.elements[i];
+ iterator.callNext(nextResult);
+
+ // if a hole exist, just let the iterator step ahead
+ if (ts.isOmittedExpression(element)) {
+ continue;
+ }
+
+ // if its spread element
+ if ((!isDeclaration && ts.isSpreadElement(element)) ||
+ (isDeclaration && (element).dotDotDotToken)) {
+ emitRestElement(isDeclaration ? (element).name : (element).expression,
+ iterator, nextResult, pandaGen, compiler, isDeclaration);
+ pandaGen.branch(element, endLabel);
+ break;
+ }
+
+ let hasInit = false;
+ let target: ts.Node = isDeclaration ? (element).name : element;
+ let init: ts.Expression | undefined = undefined;
+ // in case init is present
+ if (!isDeclaration && ts.isBinaryExpression(element)) {
+ if (element.operatorToken.kind != ts.SyntaxKind.EqualsToken) {
+ throw new Error("Invalid destructuring assignment target");
+ }
+
+ target = element.left;
+ init = element.right;
+ hasInit = true;
+ } else if (isDeclaration && (element).initializer) {
+ init = (element).initializer;
+ hasInit = true;
+ }
+
+ let lRef = LReference.generateLReference(compiler, target, isDeclaration ? true : false);
+
+ let getDefaultLabel = new Label();
+ let getUndefinedLabel = new Label();
+ let storeLabel = new Label();
+
+ iterator.iteratorComplete(nextResult);
+ pandaGen.condition(
+ element,
+ ts.SyntaxKind.ExclamationEqualsEqualsToken,
+ getVregisterCache(pandaGen, CacheList.True),
+ hasInit ? getDefaultLabel : getUndefinedLabel
+ );
+
+ // iterdone == false, get current itervalue
+ iterator.iteratorValue(nextResult);
+
+ if (hasInit) {
+ pandaGen.condition(
+ element,
+ ts.SyntaxKind.ExclamationEqualsEqualsToken,
+ getVregisterCache(pandaGen, CacheList.undefined),
+ getDefaultLabel
+ )
+
+ pandaGen.loadAccumulator(element, iterator.getCurrentValue());
+ pandaGen.branch(element, storeLabel);
+
+ pandaGen.label(element, getDefaultLabel);
+ compiler.compileExpression(init);
+
+ pandaGen.branch(element, storeLabel);
+ } else {
+ pandaGen.branch(element, storeLabel);
+ }
+
+ pandaGen.label(element, getUndefinedLabel);
+ pandaGen.loadAccumulator(element, getVregisterCache(pandaGen, CacheList.undefined));
+
+ pandaGen.label(element, storeLabel);
+ lRef.setValue();
+ }
+ // end of try
+ pandaGen.label(arr, tryEndLabel);
+
+ pandaGen.loadAccumulator(arr, iterator.getCurrrentDone());
+ pandaGen.condition(
+ arr,
+ ts.SyntaxKind.EqualsEqualsEqualsToken,
+ getVregisterCache(pandaGen, CacheList.True),
+ normalClose
+ );
+
+ // nothing need to be done
+ pandaGen.branch(arr, endLabel);
+
+ // if any exception ocurrs, store it, close iterator and rethrow exception
+ pandaGen.label(arr, catchBeginLabel);
+ pandaGen.storeAccumulator(arr, exception);
+ iterator.close();
+ pandaGen.loadAccumulator(arr, exception);
+ pandaGen.throw(arr);
+ pandaGen.label(arr, catchEndLabel);
+
+ // if iterDone is not true after normal completion, close iterator
+ pandaGen.label(arr, normalClose);
+ iterator.close();
+
+ pandaGen.label(arr, endLabel);
+ pandaGen.freeTemps(iter, nextMethod, iterDone, iterValue, nextResult, exception);
+}
+
+function emitRestElement(restElement: ts.BindingName | ts.Expression, iterator: Iterator, iterResult: VReg,
+ pandaGen: PandaGen, compiler: Compiler, isDeclaration: boolean) {
+ let arrayObj = pandaGen.getTemp();
+ let index = pandaGen.getTemp();
+
+ let nextLabel = new Label();
+ let doneLabel = new Label();
+
+ // create left reference for rest element
+ let target = restElement;
+ let lRef = LReference.generateLReference(compiler, target, isDeclaration);
+
+ // create an empty array first
+ pandaGen.createEmptyArray(restElement);
+ pandaGen.storeAccumulator(restElement, arrayObj);
+
+ // index = 0
+ pandaGen.loadAccumulatorInt(restElement, 0);
+ pandaGen.storeAccumulator(restElement, index);
+
+ pandaGen.label(restElement, nextLabel);
+
+ // if iterDone == true, done with the process of building array
+ iterator.iteratorComplete(iterResult);
+ pandaGen.condition(
+ restElement,
+ ts.SyntaxKind.ExclamationEqualsEqualsToken,
+ getVregisterCache(pandaGen, CacheList.True),
+ doneLabel
+ );
+
+ // get value from iter and store it to arrayObj
+ // getIterValue(iterRecord, iterValue, pandaGen, restElement);
+ iterator.iteratorValue(iterResult);
+ pandaGen.storeObjProperty(restElement, arrayObj, index);
+
+ // index++
+ pandaGen.loadAccumulatorInt(restElement, 1);
+ pandaGen.binary(restElement, ts.SyntaxKind.PlusToken, index);
+ pandaGen.storeAccumulator(restElement, index);
+
+ iterator.callNext(iterResult);
+ pandaGen.branch(restElement, nextLabel);
+
+ pandaGen.label(restElement, doneLabel);
+ pandaGen.loadAccumulator(restElement, arrayObj);
+
+ lRef.setValue();
+
+ pandaGen.freeTemps(arrayObj, index);
+}
+
+function compileObjectDestructuring(obj: ts.ObjectBindingOrAssignmentPattern, pandaGen: PandaGen, compiler: Compiler) {
+ let value = pandaGen.getTemp();
+ pandaGen.storeAccumulator(obj, value);
+
+ let isDeclaration: boolean = ts.isObjectLiteralExpression(obj) ? false : true;
+ let elements = isDeclaration ? (obj).elements : (obj).properties;
+ let elementsLength = elements.length;
+
+ // check if value is coercible
+ if (elementsLength == 0 ||
+ (isDeclaration && isRestElement(elements[0])) ||
+ (!isDeclaration && ts.isSpreadAssignment(elements[0]))) {
+ let notNullish: Label = new Label();
+ let nullLish: Label = new Label();
+
+ pandaGen.loadAccumulator(obj, value);
+ pandaGen.condition(obj, ts.SyntaxKind.ExclamationEqualsEqualsToken, getVregisterCache(pandaGen, CacheList.Null), nullLish);
+ pandaGen.loadAccumulator(obj, value);
+ pandaGen.condition(obj, ts.SyntaxKind.ExclamationEqualsEqualsToken, getVregisterCache(pandaGen, CacheList.undefined), nullLish);
+ pandaGen.branch(obj, notNullish);
+
+ // value == null or undefined, throw error
+ pandaGen.label(obj, nullLish);
+ pandaGen.throwObjectNonCoercible(obj);
+
+ pandaGen.label(obj, notNullish);
+ }
+
+ // create before to store the properties
+ let properties: Array = new Array();
+ let excludedProp: Array = new Array();
+
+ for (let i = 0; i < elementsLength; i++) {
+ let tmp = pandaGen.getTemp();
+ properties.push(tmp);
+ }
+
+ for (let i = 0; i < elementsLength; i++) {
+ let element = elements[i];
+
+ // emit rest property
+ if ((isDeclaration && isRestElement(element)) ||
+ (!isDeclaration && ts.isSpreadAssignment(element))) {
+ emitRestProperty(element, excludedProp, value, pandaGen, compiler);
+ break;
+ }
+
+ excludedProp.push(properties[i]);
+
+ let loadedValue: VReg = pandaGen.getTemp();
+ let key: ts.Expression | ts.ComputedPropertyName;
+ let target: ts.Node = element;
+ let init: ts.Expression | undefined = undefined;
+ let hasInit: boolean = false;
+
+ if (isDeclaration) {
+ let bindingElement = element;
+ target = bindingElement.name;
+
+ if (bindingElement.propertyName) {
+ key = bindingElement.propertyName;
+ } else {
+ key = bindingElement.name;
+ }
+
+ // obtain init if exists
+ if (bindingElement.initializer) {
+ hasInit = true;
+ init = bindingElement.initializer;
+ }
+ } else {
+ if (ts.isPropertyAssignment(element)) {
+ key = element.name;
+
+ let targetExpr = element.initializer;
+ if (ts.isBinaryExpression(targetExpr)) {
+ if (targetExpr.operatorToken.kind != ts.SyntaxKind.EqualsToken) {
+ throw new Error("Invalid destructuring target");
+ }
+
+ target = targetExpr.left;
+ init = targetExpr.right;
+ } else {
+ target = targetExpr;
+ }
+ } else if (ts.isShorthandPropertyAssignment(element)) {
+ key = element.name;
+ target = element.name;
+ init = element.objectAssignmentInitializer ? element.objectAssignmentInitializer : undefined;
+ } else {
+ throw new Error("Invalid destructuring target");
+ }
+ }
+
+ // compile key
+ if (ts.isComputedPropertyName(key)) {
+ compiler.compileExpression(key.expression);
+ } else {
+ if (ts.isIdentifier(key)) {
+ let keyName = jshelpers.getTextOfIdentifierOrLiteral(key);
+ pandaGen.loadAccumulatorString(key, keyName);
+ } else {
+ compiler.compileExpression(key);
+ }
+ }
+ pandaGen.storeAccumulator(key, properties[i]);
+
+ // create left reference
+ let lRef = LReference.generateLReference(compiler, target, isDeclaration);
+
+ // load obj property from rhs, return undefined if no corresponding property exists
+ pandaGen.loadObjProperty(element, value, properties[i]);
+ pandaGen.storeAccumulator(element, loadedValue);
+
+ let getDefaultLabel = new Label();
+ let storeLabel = new Label();
+
+ if (hasInit) {
+ pandaGen.condition(
+ element,
+ ts.SyntaxKind.ExclamationEqualsEqualsToken,
+ getVregisterCache(pandaGen, CacheList.undefined),
+ getDefaultLabel
+ );
+
+ // load the new value
+ pandaGen.loadAccumulator(element, loadedValue);
+ pandaGen.branch(element, storeLabel);
+
+ // use default value
+ pandaGen.label(element, getDefaultLabel);
+ compiler.compileExpression(init);
+
+ pandaGen.label(element, storeLabel);
+ }
+
+ lRef.setValue();
+ pandaGen.freeTemps(loadedValue);
+ }
+
+ pandaGen.freeTemps(value, ...properties);
+}
+
+function emitRestProperty(restProperty: ts.BindingElement | ts.SpreadAssignment, excludedProp: Array,
+ obj: VReg, pandaGen: PandaGen, compiler: Compiler) {
+ let isDeclaration = ts.isBindingElement(restProperty) ? true : false;
+ let target = isDeclaration ? (restProperty).name : (restProperty).expression;
+ let lRef = LReference.generateLReference(compiler, target, true);
+ let undefinedReg = pandaGen.getTemp();
+
+ if (excludedProp.length == 0) {
+ pandaGen.loadAccumulator(restProperty, getVregisterCache(pandaGen, CacheList.undefined));
+ pandaGen.storeAccumulator(restProperty, undefinedReg);
+ excludedProp.push(undefinedReg);
+ }
+
+ // Create a Object with the information of excluded properties
+ pandaGen.createObjectWithExcludedKeys(restProperty, obj, excludedProp);
+
+ lRef.setValue();
+ pandaGen.freeTemps(undefinedReg);
+}
+
+function isRestElement(node: ts.BindingElement) {
+ if (node.dotDotDotToken) {
+ return true;
+ }
+
+ return false;
+}
\ No newline at end of file
diff --git a/ts2panda/src/debuginfo.ts b/ts2panda/src/debuginfo.ts
new file mode 100644
index 0000000000000000000000000000000000000000..527b8f0d50b933fcff00b9dff70631f05455dbf1
--- /dev/null
+++ b/ts2panda/src/debuginfo.ts
@@ -0,0 +1,384 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { CmdOptions } from "./cmdOptions";
+import {
+ CalliDynRange,
+ CallRange,
+ DebugInsPlaceHolder,
+ IRNode,
+ Label,
+ VReg
+} from "./irnodes";
+import * as jshelpers from "./jshelpers";
+import { PandaGen } from "./pandagen";
+import { Scope } from "./scope";
+import {
+ Variable
+} from "./variable";
+
+export class DebugPosInfo {
+ private boundLeft: number | undefined = 0;
+ private boundRight: number | undefined = 0;
+ private lineNum: number = -1;
+ private columnNum: number = -1;
+ private wholeLine: string | undefined = "";
+ private nodeKind: NodeKind | undefined = NodeKind.FirstNodeOfFunction;
+
+ constructor() { }
+
+ public setDebugPosInfoNodeState(extendedNode: ts.Node | NodeKind): void {
+ if (DebugInfo.isNode(extendedNode)) {
+ this.nodeKind = NodeKind.Normal;
+ } else {
+ this.nodeKind = extendedNode;
+ }
+ }
+
+ public getDebugPosInfoNodeState(): NodeKind | undefined {
+ return this.nodeKind;
+ }
+
+ public setBoundLeft(boundLeft: number): void {
+ this.boundLeft = boundLeft;
+ }
+
+ public getBoundLeft(): number | undefined {
+ return this.boundLeft;
+ }
+
+ public setBoundRight(boundRight: number): void {
+ this.boundRight = boundRight;
+ }
+
+ public getBoundRight(): number | undefined {
+ return this.boundRight;
+ }
+
+ public setSourecLineNum(lineNum: number): void {
+ this.lineNum = lineNum;
+ }
+
+ public getSourceLineNum(): number {
+ return this.lineNum;
+ }
+
+ public setSourecColumnNum(columnNum: number): void {
+ this.columnNum = columnNum;
+ }
+
+ public getSourceColumnNum(): number {
+ return this.columnNum;
+ }
+
+ public setWholeLine(wholeLine: string): void {
+ this.wholeLine = wholeLine;
+ }
+
+ public getWholeLine(): string | undefined {
+ return this.wholeLine;
+ }
+
+ public ClearMembersForReleaseBuild(): void {
+ this.ClearMembersForDebugBuild();
+ this.boundLeft = undefined;
+ this.boundRight = undefined;
+ }
+
+ public ClearMembersForDebugBuild(): void {
+ this.wholeLine = undefined;
+ this.nodeKind = undefined;
+ }
+}
+
+export class VariableDebugInfo {
+ private name = "";
+ private variable: Variable | undefined;
+ private signature = "";
+ private signatureType = "";
+ private reg: number = -1;
+ private start: number = -1;
+ private length: number = -1;
+
+ constructor(name: string, signature: string, signatureType: string,
+ reg: number, start: number = 0, length: number = 0) {
+ this.name = name;
+ this.signature = signature;
+ this.signatureType = signatureType;
+ this.reg = reg;
+ this.start = start;
+ this.length = length;
+ }
+
+ public setStart(start: number): void {
+ this.start = start;
+ }
+
+ public getStart(): number {
+ return this.start;
+ }
+
+ public setLength(length: number): void {
+ this.length = length;
+ }
+}
+
+export enum NodeKind {
+ Normal,
+ Invalid,
+ FirstNodeOfFunction,
+}
+
+export class DebugInfo {
+ private static scopeArray: Scope[] = [];
+ private static lastNode: ts.Node;
+ constructor() { }
+
+ public static isNode(extendedNode: ts.Node | NodeKind) {
+ if (extendedNode != NodeKind.Invalid &&
+ extendedNode != NodeKind.FirstNodeOfFunction &&
+ extendedNode != NodeKind.Normal) {
+ return true;
+ }
+
+ return false;
+ }
+
+ public static updateLastNode(lastNode: ts.Node | NodeKind) {
+ if (DebugInfo.isNode(lastNode)) {
+ DebugInfo.lastNode = lastNode;
+ }
+ }
+
+ public static getLastNode() {
+ return DebugInfo.lastNode;
+ }
+
+ public static setPosInfoForUninitializeIns(posInfo: DebugPosInfo, pandaGen: PandaGen) {
+ let firstStmt = pandaGen.getFirstStmt();
+ if (firstStmt) {
+ let file = jshelpers.getSourceFileOfNode(firstStmt);
+ let loc = file.getLineAndCharacterOfPosition(firstStmt.getStart());
+ let wholeLineText = firstStmt.getText();
+ posInfo.setSourecLineNum(loc.line);
+ posInfo.setSourecColumnNum(loc.character);
+ posInfo.setWholeLine(wholeLineText);
+ }
+ }
+
+ public static addScope(scope: Scope) {
+ DebugInfo.scopeArray.push(scope);
+ }
+
+ public static getScopeArray() {
+ return DebugInfo.scopeArray;
+ }
+
+ public static clearScopeArray() {
+ DebugInfo.scopeArray = [];
+ }
+
+ public static setDebuginfoForIns(node: ts.Node | NodeKind, ...insns: IRNode[]): void {
+ DebugInfo.updateLastNode(node);
+
+ let lineNumber = -1;
+ let columnNumber = -1;
+ let wholeLineText = "";
+ if (DebugInfo.isNode(node)) {
+ let tsNode = (node);
+ let file = jshelpers.getSourceFileOfNode(node);
+ if (!file) {
+ return;
+ }
+ let loc = file.getLineAndCharacterOfPosition(tsNode.getStart());
+ wholeLineText = tsNode.getText();
+ lineNumber = loc.line;
+ columnNumber = loc.character;
+ }
+
+ for (let i = 0; i < insns.length; i++) {
+ let pos = new DebugPosInfo();
+ pos.setSourecLineNum(lineNumber);
+ pos.setSourecColumnNum(columnNumber);
+ pos.setWholeLine(wholeLineText);
+ pos.setDebugPosInfoNodeState(node);
+
+ insns[i].debugPosInfo = pos;
+ }
+ }
+
+ private static matchFormat(irnode: IRNode): number {
+ let formatIndex = 0;
+ for (let i = 0; i < irnode.formats[0].length; i++) {
+ if (irnode.operands[i] instanceof VReg) {
+ for (let j = 0; j < irnode.formats.length; j++) {
+ if ((irnode.operands[i]).num < (1 << irnode.formats[j][i].bitwidth)) {
+ formatIndex = j > formatIndex ? j : formatIndex;
+ continue;
+ }
+ }
+ }
+ }
+ return formatIndex;
+ }
+
+ private static getIRNodeWholeLength(irnode: IRNode): number {
+ if (irnode instanceof Label || irnode instanceof DebugInsPlaceHolder) {
+ return 0;
+ }
+ let length = 1;
+ if (!irnode.formats[0]) {
+ return 0;
+ }
+ let formatIndex = this.matchFormat(irnode);
+ let formats = irnode.formats[formatIndex];
+ // count operands length
+ for (let i = 0; i < formats.length; i++) {
+ if ((irnode instanceof CalliDynRange) || (irnode instanceof CallRange)) {
+ length += formats[0].bitwidth / 8; // 8 indicates that one byte is composed of 8 bits
+ length += formats[1].bitwidth / 8;
+ break;
+ }
+
+ length += (formats[i].bitwidth / 8);
+ }
+
+ return length;
+ }
+
+ private static setVariablesDebugInfoInternal(pandaGen: PandaGen, scope: Scope) {
+ let insns = pandaGen.getInsns();
+ // count variables offset
+ let startIdx = 0;
+ let startIns = scope.getScopeStartIns();
+ let endIns = scope.getScopeEndIns();
+
+ for (let i = 0; i < insns.length; i++) {
+ if (startIns == insns[i]) {
+ startIdx = i;
+ }
+
+ if (endIns == insns[i]) {
+ let name2variable = scope.getName2variable();
+ name2variable.forEach((value, key) => {
+ if (!value.hasAlreadyBinded()) {
+ return;
+ }
+ let variableInfo = new VariableDebugInfo(key, "any", "any", (value.getVreg().num));
+ variableInfo.setStart(startIdx);
+ variableInfo.setLength(i - startIdx + 1);
+ pandaGen.addDebugVariableInfo(variableInfo);
+ });
+ }
+ }
+ }
+
+ private static setPosDebugInfo(pandaGen: PandaGen) {
+ let insns = pandaGen.getInsns();
+ let offset = 0;
+
+ for (let i = 0; i < insns.length; i++) {
+ if (insns[i].debugPosInfo.getDebugPosInfoNodeState() == NodeKind.FirstNodeOfFunction) {
+ DebugInfo.setPosInfoForUninitializeIns(insns[i].debugPosInfo, pandaGen);
+ }
+ }
+
+ // count pos offset
+ for (let i = 0; i < insns.length; i++) {
+ let insLength = DebugInfo.getIRNodeWholeLength(insns[i]);
+ let insnsDebugPosInfo = insns[i].debugPosInfo;
+
+ if (insnsDebugPosInfo) {
+ insnsDebugPosInfo.setBoundLeft(offset);
+ insnsDebugPosInfo.setBoundRight(offset + insLength);
+ }
+
+ offset += insLength;
+
+ if (i > 0 && insns[i - 1] instanceof Label) {
+ insns[i - 1].debugPosInfo = insns[i].debugPosInfo;
+ }
+ }
+ }
+
+ private static removeDebugIns(pandaGen: PandaGen) {
+ let insns = pandaGen.getInsns();
+ for (let i = 0; i < insns.length; i++) {
+ if (insns[i] instanceof DebugInsPlaceHolder) {
+ insns.splice(i, 1);
+ i--;
+ }
+ }
+ }
+
+ private static setVariablesDebugInfo(pandaGen: PandaGen) {
+ let recordArray = DebugInfo.getScopeArray();
+ recordArray.forEach(scope => {
+ DebugInfo.setVariablesDebugInfoInternal(pandaGen, scope);
+ });
+ }
+
+ public static setDebugInfo(pandaGen: PandaGen) {
+ // set position debug info
+ DebugInfo.setPosDebugInfo(pandaGen);
+ if (CmdOptions.isDebugMode()) {
+ // set variable debug info
+ DebugInfo.setVariablesDebugInfo(pandaGen);
+
+ // delete ins placeholder
+ DebugInfo.removeDebugIns(pandaGen)
+
+ // clear scope array
+ DebugInfo.clearScopeArray();
+ return;
+ }
+ }
+
+ public static setSourceFileDebugInfo(pandaGen: PandaGen, node: ts.SourceFile | ts.FunctionLikeDeclaration) {
+ let sourceFile = jshelpers.getSourceFileOfNode(node);
+ pandaGen.setSourceFileDebugInfo(sourceFile.fileName);
+
+ if (CmdOptions.isDebugMode()) {
+ if (ts.isSourceFile(node)) {
+ pandaGen.setSourceCodeDebugInfo(node.text);
+ }
+ return;
+ }
+ }
+
+
+ public static copyDebugInfo(insn: IRNode, expansion: IRNode[]) {
+ let debugPosInfo = insn.debugPosInfo;
+ for (let j = 0; j < expansion.length; j++) {
+ expansion[j].debugPosInfo = debugPosInfo;
+ }
+ }
+
+ public static addDebugIns(scope: Scope, pandaGen: PandaGen, isStart: boolean) {
+ if (!CmdOptions.isDebugMode()) {
+ return;
+ }
+ let insns = pandaGen.getInsns();
+ let placeHolder = new DebugInsPlaceHolder();
+ insns.push(placeHolder);
+ if (isStart) {
+ scope.setScopeStartIns(placeHolder);
+ DebugInfo.addScope(scope);
+ } else {
+ scope.setScopeEndIns(placeHolder);
+ }
+ }
+}
\ No newline at end of file
diff --git a/ts2panda/src/expression/arrayLiteralExpression.ts b/ts2panda/src/expression/arrayLiteralExpression.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9883bb80db5e34925fff39a87ebd9a41f804545b
--- /dev/null
+++ b/ts2panda/src/expression/arrayLiteralExpression.ts
@@ -0,0 +1,182 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { Compiler } from "../compiler";
+import * as jshelpers from "../jshelpers";
+import { LiteralTag, Literal, LiteralBuffer } from "../base/literal";
+import { isConstantExpr } from "../base/properties";
+import { PandaGen } from "../pandagen";
+import { isInteger } from "./numericLiteral";
+import { VReg } from "../irnodes";
+
+export function compileArrayLiteralExpression(compiler: Compiler, node: ts.ArrayLiteralExpression) {
+ let pandaGen = compiler.getPandaGen();
+ let arrayObj = pandaGen.getTemp();
+ createArrayFromElements(node, compiler, node.elements, arrayObj);
+ pandaGen.freeTemps(arrayObj);
+}
+
+export function createArrayFromElements(node: ts.Node, compiler: Compiler, elements: ts.NodeArray, arrayObj: VReg) {
+ let pandaGen = compiler.getPandaGen();
+ // empty Array
+ if (elements.length == 0) {
+ pandaGen.createEmptyArray(node);
+ pandaGen.storeAccumulator(node, arrayObj);
+ return;
+ }
+
+ let literalBuffer = new LiteralBuffer();
+ let indexReg = pandaGen.getTemp();
+ let arrayCreated: boolean = false;
+ let hasSpread: boolean = false;
+
+ for (let i = 0; i < elements.length; i++) {
+ let element = elements[i];
+
+ if (isConstantExpr(element)) {
+ let elem = parseConstantExpr(element);
+
+ if (!arrayCreated) {
+ literalBuffer.addLiterals(elem);
+ if (i == elements.length - 1) {
+ emitCreateArrayWithBuffer(pandaGen, literalBuffer, element);
+ pandaGen.storeAccumulator(element, arrayObj);
+ arrayCreated = true;
+ }
+ continue;
+ }
+
+ compiler.compileExpression(element);
+ if (hasSpread) {
+ storeElementIfSpreadExisted(pandaGen, element, arrayObj, indexReg);
+ } else {
+ pandaGen.storeOwnProperty(element, arrayObj, i);
+ }
+ continue;
+ }
+
+ if (ts.isSpreadElement(element)) {
+ if (!arrayCreated) {
+ emitCreateArrayWithBuffer(pandaGen, literalBuffer, element);
+ pandaGen.storeAccumulator(element, arrayObj);
+ arrayCreated = true;
+ }
+
+ if (hasSpread) {
+ storeSpreadElement(compiler, pandaGen, element, arrayObj, indexReg);
+ } else {
+ hasSpread = true;
+ pandaGen.loadAccumulatorInt(element, i);
+ pandaGen.storeAccumulator(element, indexReg);
+ storeSpreadElement(compiler, pandaGen, element, arrayObj, indexReg);
+ }
+ continue;
+ }
+
+ if (ts.isOmittedExpression(element)) {
+ if (!arrayCreated) {
+ emitCreateArrayWithBuffer(pandaGen, literalBuffer, element);
+ pandaGen.storeAccumulator(element, arrayObj);
+ arrayCreated = true;
+ }
+
+ if (i == elements.length - 1) {
+ // omittedExpression is the last element, we need set the length of the array
+ if (hasSpread) {
+ pandaGen.loadAccumulator(element, indexReg);
+ pandaGen.storeObjProperty(element, arrayObj, "length");
+ // no need to increment index since it's the last element
+ } else {
+ pandaGen.loadAccumulatorInt(element, elements.length);
+ pandaGen.storeObjProperty(element, arrayObj, "length");
+ }
+ }
+ continue;
+ }
+
+ // non-constant elements
+ if (!arrayCreated) {
+ emitCreateArrayWithBuffer(pandaGen, literalBuffer, element);
+ pandaGen.storeAccumulator(element, arrayObj);
+ arrayCreated = true;
+ }
+
+ compiler.compileExpression(element);
+
+ if (hasSpread) {
+ storeElementIfSpreadExisted(pandaGen, element, arrayObj, indexReg);
+ } else {
+ pandaGen.storeOwnProperty(element, arrayObj, i);
+ }
+ }
+
+ pandaGen.loadAccumulator(node, arrayObj);
+ pandaGen.freeTemps(indexReg);
+}
+
+function parseConstantExpr(element: ts.Expression): Literal {
+ let elem: Literal;
+ switch (element.kind) {
+ case ts.SyntaxKind.FalseKeyword:
+ elem = new Literal(LiteralTag.BOOLEAN, false);
+ break;
+ case ts.SyntaxKind.TrueKeyword:
+ elem = new Literal(LiteralTag.BOOLEAN, true);
+ break;
+ case ts.SyntaxKind.StringLiteral:
+ elem = new Literal(LiteralTag.STRING, jshelpers.getTextOfIdentifierOrLiteral(element));
+ break;
+ case ts.SyntaxKind.NumericLiteral: {
+ let value = Number.parseFloat(jshelpers.getTextOfIdentifierOrLiteral(element));
+ if (isInteger(value)) {
+ elem = new Literal(LiteralTag.INTEGER, value);
+ } else {
+ elem = new Literal(LiteralTag.DOUBLE, value);
+ }
+ break;
+ }
+ case ts.SyntaxKind.NullKeyword:
+ elem = new Literal(LiteralTag.NULLVALUE, null);
+ break;
+ default:
+ throw new Error("invalid constant expression");
+ }
+
+ return elem;
+}
+
+function emitCreateArrayWithBuffer(pandaGen: PandaGen, literalBuffer: LiteralBuffer, element: ts.Expression) {
+ if (literalBuffer.isEmpty()) {
+ pandaGen.createEmptyArray(element);
+ } else {
+ let literalArrayBuffer = PandaGen.getLiteralArrayBuffer();
+ let bufferIdx = literalArrayBuffer.length;
+ literalArrayBuffer.push(literalBuffer);
+ pandaGen.createArrayWithBuffer(element, bufferIdx);
+ }
+}
+
+function storeElementIfSpreadExisted(pandaGen: PandaGen, element: ts.Expression, arrayObj: VReg, indexReg: VReg) {
+ pandaGen.storeOwnProperty(element, arrayObj, indexReg);
+ pandaGen.unary(element, ts.SyntaxKind.PlusPlusToken, indexReg);
+ pandaGen.storeAccumulator(element, indexReg);
+}
+
+function storeSpreadElement(compiler: Compiler, pandaGen: PandaGen, element: ts.SpreadElement, arrayObj: VReg, indexReg: VReg) {
+ compiler.compileExpression(element.expression);
+ pandaGen.storeArraySpreadElement(element, arrayObj, indexReg);
+ pandaGen.storeAccumulator(element, indexReg);
+}
\ No newline at end of file
diff --git a/ts2panda/src/expression/callExpression.ts b/ts2panda/src/expression/callExpression.ts
new file mode 100644
index 0000000000000000000000000000000000000000..90603bedb619465bb43a664bf77d84df4f699d39
--- /dev/null
+++ b/ts2panda/src/expression/callExpression.ts
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { CacheList, getVregisterCache } from "../base/vregisterCache";
+import { Compiler } from "../compiler";
+import { VReg } from "../irnodes";
+import { compileSuperCall, compileSuperProperty } from "../statement/classStatement";
+import { createArrayFromElements } from "./arrayLiteralExpression";
+import { getObjAndProp } from "./memberAccessExpression";
+import { isMemberExpression } from "../base/util";
+
+
+export function compileCallExpression(expr: ts.CallExpression, compiler: Compiler, inTailPos?: boolean) {
+ let pandaGen = compiler.getPandaGen();
+ // import call should be supported further
+
+ if ((expr.expression.kind == ts.SyntaxKind.CallExpression) || (expr.expression.kind == ts.SyntaxKind.NewExpression)) {
+ let processed = compiler.compileFunctionReturnThis(expr.expression);
+ if (processed) {
+ return;
+ }
+ }
+
+ if (expr.expression.kind == ts.SyntaxKind.SuperKeyword) {
+ let args: VReg[] = [];
+ let hasSpread = emitCallArguments(compiler, expr, args);
+ compileSuperCall(compiler, expr, args, hasSpread);
+ pandaGen.freeTemps(...args);
+ return;
+ }
+
+ let { arguments: args, passThis: passThis } = getHiddenParameters(expr.expression, compiler);
+
+ // compile arguments of function call
+ emitCall(expr, args, passThis, compiler);
+ pandaGen.freeTemps(...args);
+}
+
+export function getHiddenParameters(expr: ts.Expression, compiler: Compiler) {
+ let pandaGen = compiler.getPandaGen();
+ let passThis = false;
+ let args: VReg[] = [];
+ let funcReg = pandaGen.getTemp();
+ if (isMemberExpression(expr)) {
+ passThis = true;
+ let thisReg = pandaGen.getTemp();
+ let propReg = pandaGen.getTemp();
+ let { obj: obj, prop: prop } = getObjAndProp(expr, thisReg, propReg, compiler);
+
+ if ((expr).expression.kind == ts.SyntaxKind.SuperKeyword) {
+ compileSuperProperty(compiler, expr, thisReg, prop);
+ } else {
+ pandaGen.loadObjProperty(expr, thisReg, prop);
+ }
+ pandaGen.storeAccumulator(expr, funcReg);
+ args.push(...[funcReg, thisReg]);
+
+ pandaGen.freeTemps(propReg);
+ } else {
+ compiler.compileExpression(expr);
+ pandaGen.storeAccumulator(expr, funcReg);
+ args.push(funcReg);
+ }
+ return { arguments: args, passThis: passThis };
+}
+
+function emitCallArguments(compiler: Compiler, expr: ts.CallExpression, args: VReg[]) {
+ let pandaGen = compiler.getPandaGen();
+ let hasSpread = false;
+ for (let i = 0; i < expr.arguments.length; i++) {
+ let argument = expr.arguments[i];
+ hasSpread = ts.isSpreadElement(argument) ? true : false;
+ if (hasSpread) {
+ break;
+ }
+ }
+
+ if (!hasSpread) {
+ expr.arguments.forEach((argExpr: ts.Expression) => {
+ let arg = pandaGen.getTemp();
+ compiler.compileExpression(argExpr);
+ pandaGen.storeAccumulator(argExpr, arg);
+ args.push(arg);
+ });
+ }
+
+ return hasSpread;
+}
+
+export function emitCall(expr: ts.CallExpression, args: VReg[], passThis: boolean, compiler: Compiler) {
+ let pandaGen = compiler.getPandaGen();
+ let hasSpread = emitCallArguments(compiler, expr, args);
+
+ if (!hasSpread) {
+ pandaGen.call(expr, [...args], passThis);
+ return;
+ }
+
+ // spread argument exist
+ let callee = args[0];
+ let thisReg = passThis ? args[1] : getVregisterCache(pandaGen, CacheList.undefined);
+ let argArray = pandaGen.getTemp();
+ createArrayFromElements(expr, compiler, >expr.arguments, argArray);
+ pandaGen.callSpread(expr, callee, thisReg, argArray);
+ pandaGen.freeTemps(argArray);
+}
\ No newline at end of file
diff --git a/ts2panda/src/expression/memberAccessExpression.ts b/ts2panda/src/expression/memberAccessExpression.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c238bc7987eeaaa1509c5ab27adc0174c5ea7cfa
--- /dev/null
+++ b/ts2panda/src/expression/memberAccessExpression.ts
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { Compiler } from "../compiler";
+import { VReg } from "../irnodes";
+import * as jshelpers from "../jshelpers";
+import { compileSuperProperty } from "../statement/classStatement";
+
+const MAX_LENGTH = 2 ** 32 - 1;
+
+export function compileMemberAccessExpression(node: ts.ElementAccessExpression | ts.PropertyAccessExpression, compiler: Compiler) {
+ let pandaGen = compiler.getPandaGen();
+ let objReg = pandaGen.getTemp();
+ let propReg = pandaGen.getTemp();
+
+ let { obj: obj, prop: property } = getObjAndProp(node, objReg, propReg, compiler)
+
+ if (jshelpers.isSuperProperty(node)) {
+
+ // make sure "this" is stored in lexical env if needed
+ let thisReg = pandaGen.getTemp();
+ compileSuperProperty(compiler, node, thisReg, property);
+ pandaGen.freeTemps(thisReg);
+ } else {
+ pandaGen.loadObjProperty(node, obj, property);
+ }
+
+ pandaGen.freeTemps(objReg, propReg);
+}
+
+export function getObjAndProp(node: ts.ElementAccessExpression | ts.PropertyAccessExpression, objReg: VReg, propReg: VReg, compiler: Compiler) {
+ let pandaGen = compiler.getPandaGen();
+ let obj = objReg;
+ let prop: VReg | string | number = propReg;
+
+ // get obj first;
+ if (!jshelpers.isSuperProperty(node)) {
+ compiler.compileExpression(node.expression);
+ pandaGen.storeAccumulator(node.expression, objReg);
+ }
+
+ if (ts.isPropertyAccessExpression(node)) {
+ if (node.name.kind != ts.SyntaxKind.Identifier) {
+ throw new Error("Property name of type private Identifier is unimplemented");
+ }
+
+ prop = jshelpers.getTextOfIdentifierOrLiteral(node.name);
+ } else {
+ if (ts.isStringLiteral(node.argumentExpression)) {
+ prop = jshelpers.getTextOfIdentifierOrLiteral(node.argumentExpression);
+ // deal with case like a["1"]
+ let temp = Number(prop);
+ if (!isNaN(Number.parseFloat(prop)) && !isNaN(temp) && isValidIndex(temp) && String(temp) == prop) {
+ prop = temp;
+ }
+ } else if (ts.isNumericLiteral(node.argumentExpression)) {
+ prop = parseFloat(jshelpers.getTextOfIdentifierOrLiteral(node.argumentExpression));
+ if (!isValidIndex(prop)) {
+ prop = prop.toString();
+ }
+ } else if (ts.isPrefixUnaryExpression(node.argumentExpression) && ts.isNumericLiteral(node.argumentExpression.operand) &&
+ (node.argumentExpression.operator == ts.SyntaxKind.MinusToken || node.argumentExpression.operator == ts.SyntaxKind.PlusToken)) {
+ let expr = node.argumentExpression;
+ let temp = parseFloat(jshelpers.getTextOfIdentifierOrLiteral(expr.operand));
+ if (expr.operator == ts.SyntaxKind.MinusToken) {
+ prop = "-" + temp.toString();
+ } else {
+ if (!isValidIndex(temp)) {
+ prop = "+" + temp.toString();
+ } else {
+ prop = temp;
+ }
+ }
+ } else {
+ compiler.compileExpression(node.argumentExpression);
+ pandaGen.storeAccumulator(node.argumentExpression, propReg);
+ prop = propReg;
+ }
+ }
+
+ return { obj: obj, prop: prop };
+}
+
+export function isValidIndex(num: number) {
+ if ((num >= 0) && (num < MAX_LENGTH) && (Number.isInteger(num))) {
+ return true;
+ }
+
+ return false;
+}
diff --git a/ts2panda/src/expression/metaProperty.ts b/ts2panda/src/expression/metaProperty.ts
new file mode 100644
index 0000000000000000000000000000000000000000..62e9e22d6752c122b88a24a0894b32b4e97f6316
--- /dev/null
+++ b/ts2panda/src/expression/metaProperty.ts
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { Compiler } from "../compiler";
+import * as jshelpers from "../jshelpers";
+
+export function compileMetaProperty(expr: ts.MetaProperty, compiler: Compiler) {
+ let curScope = compiler.getCurrentScope();
+ let id = jshelpers.getTextOfIdentifierOrLiteral(expr.name);
+
+ if (id == "target") {
+ let { scope, level, v } = curScope.find("4newTarget");
+ if (!v) {
+ throw new Error("fail to access new.target");
+ } else {
+ compiler.loadTarget(expr, { scope, level, v });
+ }
+ return;
+ }
+ // support meta.property further
+}
\ No newline at end of file
diff --git a/ts2panda/src/expression/newExpression.ts b/ts2panda/src/expression/newExpression.ts
new file mode 100644
index 0000000000000000000000000000000000000000..653d6eef4536e450984ba9bc50954e45941db195
--- /dev/null
+++ b/ts2panda/src/expression/newExpression.ts
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { Compiler } from "../compiler";
+import { VReg } from "../irnodes";
+import { containSpreadElement } from "../base/util";
+import { createArrayFromElements } from "./arrayLiteralExpression";
+
+export function compileNewExpression(expr: ts.NewExpression, compiler: Compiler) {
+ let pandaGen = compiler.getPandaGen();
+ let ctorReg = pandaGen.getTemp();
+ let newTargetReg = pandaGen.getTemp();
+
+ // get the ctor function
+ compiler.compileExpression(expr.expression);
+ pandaGen.storeAccumulator(expr, ctorReg);
+
+ // new.target will be the same as ctor
+ pandaGen.moveVreg(expr, newTargetReg, ctorReg);
+
+ if (containSpreadElement(expr.arguments)) {
+ let argRegs = pandaGen.getTemp();
+ createArrayFromElements(expr, compiler, >expr.arguments, argRegs);
+
+ pandaGen.newObjSpread(expr, ctorReg, newTargetReg);
+ pandaGen.freeTemps(ctorReg, newTargetReg, argRegs);
+
+ return;
+ }
+
+ // prepare arguments for newobj.dyn.range instruction
+ let numArgs = 2; // for the ctor
+ if (expr.arguments) {
+ numArgs += expr.arguments.length;
+ }
+
+ let argRegs = new Array(numArgs);
+ argRegs[0] = ctorReg;
+ argRegs[1] = newTargetReg;
+
+ let argIndex = 2;
+ if (expr.arguments) {
+ // store ctor arguments in registers
+ expr.arguments.forEach((argExpr: ts.Expression) => {
+ let argReg = pandaGen.getTemp();
+ compiler.compileExpression(argExpr);
+ pandaGen.storeAccumulator(expr, argReg);
+ argRegs[argIndex++] = argReg;
+ });
+ }
+
+ // generate the instruction to create new instance
+ pandaGen.newObject(expr, argRegs);
+
+ // free temp registers
+ pandaGen.freeTemps(...argRegs);
+}
\ No newline at end of file
diff --git a/ts2panda/src/expression/numericLiteral.ts b/ts2panda/src/expression/numericLiteral.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b20056c5d2e81b7937dfc182b084dc385f9719be
--- /dev/null
+++ b/ts2panda/src/expression/numericLiteral.ts
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import {
+ CacheList,
+ getVregisterCache
+} from "../base/vregisterCache";
+import * as jshelpers from "../jshelpers";
+import { PandaGen } from "../pandagen";
+
+const MAX_INT = 2 ** 31 - 1;
+
+export function isInteger(value: number): Boolean {
+ if (!Number.isSafeInteger(value)) {
+ return false;
+ }
+
+ if (value > MAX_INT) {
+ return false;
+ }
+
+ return true;
+}
+
+export function compileNumericLiteral(pandaGen: PandaGen, lit: ts.NumericLiteral) {
+ let text = jshelpers.getTextOfIdentifierOrLiteral(lit);
+ let value = Number.parseFloat(text);
+ // check whether value is a NaN
+ if (Number.isNaN(value)) {
+ pandaGen.loadAccumulator(lit, getVregisterCache(pandaGen, CacheList.NaN));
+ } else if (!Number.isFinite(value)) {
+ // check whether value is a Infinity
+ pandaGen.loadAccumulator(lit, getVregisterCache(pandaGen, CacheList.Infinity));
+ } else if (isInteger(value)) {
+ // check whether value is a SafeInteger
+ pandaGen.loadAccumulatorInt(lit, value);
+ } else {
+ pandaGen.loadAccumulatorFloat(lit, value);
+ }
+}
diff --git a/ts2panda/src/expression/objectLiteralExpression.ts b/ts2panda/src/expression/objectLiteralExpression.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b762370c113c346e849ef42ea66a706eaf66cdad
--- /dev/null
+++ b/ts2panda/src/expression/objectLiteralExpression.ts
@@ -0,0 +1,294 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { Compiler } from "src/compiler";
+import * as jshelpers from "../jshelpers";
+import { CacheList, getVregisterCache } from "../base/vregisterCache";
+import { isInteger } from "./numericLiteral";
+import { PandaGen } from "../pandagen";
+import { VReg } from "../irnodes";
+import { PropertyKind, Property, generatePropertyFromExpr } from "../base/properties";
+import { LiteralTag, Literal, LiteralBuffer } from "../base/literal";
+
+export function compileObjectLiteralExpression(compiler: Compiler, expr: ts.ObjectLiteralExpression) {
+ let pandaGen = compiler.getPandaGen();
+
+ // traverse the properties entries and store the useful information
+ let properties: Property[] = generatePropertyFromExpr(expr);
+
+ let objReg = pandaGen.getTemp();
+ let hasMethod: boolean = false;
+
+ // empty object literal expression
+ if (properties.length == 0) {
+ pandaGen.createEmptyObject(expr);
+ pandaGen.storeAccumulator(expr, objReg);
+ pandaGen.freeTemps(objReg);
+ return;
+ }
+
+ let literalBuffer = new LiteralBuffer();
+
+ hasMethod = compileProperties(compiler, properties, literalBuffer);
+
+ createObject(expr, pandaGen, objReg, literalBuffer, hasMethod, compiler);
+
+ // for now there may left some Variable/Accessor to set the true value
+ setUncompiledProperties(compiler, pandaGen, properties, objReg);
+
+ pandaGen.loadAccumulator(expr, objReg);
+ pandaGen.freeTemps(objReg);
+}
+
+function compileProperties(compiler: Compiler, properties: Property[], literalBuffer: LiteralBuffer): boolean {
+ let hasMethod: boolean = false;
+
+ for (let prop of properties) {
+ if (prop.getKind() == PropertyKind.Spread || prop.getKind() == PropertyKind.Computed) {
+ break;
+ }
+
+ if (prop.getKind() == PropertyKind.Prototype || prop.isRedeclared()) {
+ continue;
+ }
+
+ let nameLiteral = new Literal(LiteralTag.STRING, String(prop.getName()));
+
+ if (prop.getKind() == PropertyKind.Constant) {
+ let valLiteral: Literal = createConstantLiteral(prop);
+
+ literalBuffer.addLiterals(nameLiteral, valLiteral!);
+ prop.setCompiled(); // need to be careful
+ }
+
+ if (prop.getKind() == PropertyKind.Variable) {
+ let compilerDriver = compiler.getCompilerDriver();
+ let valueNode = prop.getValue();
+ let valLiteral: Literal;
+
+ if (ts.isMethodDeclaration(valueNode)) {
+ if (valueNode.asteriskToken) {
+ valLiteral = new Literal(LiteralTag.GENERATOR, compilerDriver.getFuncInternalName(valueNode));
+ } else {
+ valLiteral = new Literal(LiteralTag.METHOD, compilerDriver.getFuncInternalName(valueNode));
+ }
+
+ prop.setCompiled();
+ hasMethod = true;
+ } else {
+ valLiteral = new Literal(LiteralTag.NULLVALUE, null);
+ }
+ literalBuffer.addLiterals(nameLiteral, valLiteral);
+ }
+
+ if (prop.getKind() == PropertyKind.Accessor) {
+ let valLiteral = new Literal(LiteralTag.ACCESSOR, null);
+ literalBuffer.addLiterals(nameLiteral, valLiteral);
+ }
+ }
+
+ return hasMethod;
+}
+
+function createObject(expr: ts.ObjectLiteralExpression, pandaGen: PandaGen, objReg: VReg,
+ literalBuffer: LiteralBuffer, hasMethod: boolean, compiler: Compiler) {
+ if (literalBuffer.isEmpty()) {
+ pandaGen.createEmptyObject(expr);
+ } else {
+ let literalArrayBuffer = PandaGen.getLiteralArrayBuffer();
+ let bufferIdx = literalArrayBuffer.length;
+ literalArrayBuffer.push(literalBuffer);
+ if (hasMethod) {
+ let env = compiler.getCurrentEnv();
+ pandaGen.createObjectHavingMethod(expr, bufferIdx, env);
+ } else {
+ pandaGen.createObjectWithBuffer(expr, bufferIdx);
+ }
+ }
+ pandaGen.storeAccumulator(expr, objReg);
+}
+
+function createConstantLiteral(prop: Property): Literal {
+ let valLiteral: Literal;
+ if (prop.getValue().kind == ts.SyntaxKind.StringLiteral) {
+ valLiteral = new Literal(LiteralTag.STRING, jshelpers.getTextOfIdentifierOrLiteral(prop.getValue()));
+ } else if (prop.getValue().kind == ts.SyntaxKind.NumericLiteral) {
+ let value = Number.parseFloat(jshelpers.getTextOfIdentifierOrLiteral(prop.getValue()));
+ if (isInteger(value)) {
+ valLiteral = new Literal(LiteralTag.INTEGER, value);
+ } else {
+ valLiteral = new Literal(LiteralTag.DOUBLE, value);
+ }
+ } else if (prop.getValue().kind == ts.SyntaxKind.TrueKeyword || prop.getValue().kind == ts.SyntaxKind.FalseKeyword) {
+ if (prop.getValue().kind == ts.SyntaxKind.TrueKeyword) {
+ valLiteral = new Literal(LiteralTag.BOOLEAN, true);
+ } else {
+ valLiteral = new Literal(LiteralTag.BOOLEAN, false);
+ }
+ } else if (prop.getValue().kind == ts.SyntaxKind.NullKeyword) {
+ valLiteral = new Literal(LiteralTag.NULLVALUE, null);
+ } else {
+ throw new Error("Unreachable Kind of Literal");
+ }
+
+ return valLiteral;
+}
+
+function compileAccessorProperty(pandaGen: PandaGen, compiler: Compiler, objReg: VReg, prop: Property) {
+ let getterReg = pandaGen.getTemp();
+ let setterReg = pandaGen.getTemp();
+ let propReg = pandaGen.getTemp();
+ let propName = String(prop.getName());
+ let accessor: ts.GetAccessorDeclaration | ts.SetAccessorDeclaration;
+
+ if (prop.getGetter() !== undefined) {
+ let getter = prop.getGetter();
+ createMethodOrAccessor(pandaGen, compiler, objReg, getter);
+ pandaGen.storeAccumulator(getter, getterReg);
+ accessor = getter;
+ }
+ if (prop.getSetter() !== undefined) {
+ let setter = prop.getSetter();
+ createMethodOrAccessor(pandaGen, compiler, objReg, setter);
+ pandaGen.storeAccumulator(setter, setterReg);
+ accessor = setter;
+ }
+
+ pandaGen.loadAccumulatorString(accessor!, propName);
+ pandaGen.storeAccumulator(accessor!, propReg);
+
+ if (prop.getGetter() !== undefined && prop.getSetter() !== undefined) {
+ pandaGen.defineGetterSetterByValue(accessor!, objReg, propReg, getterReg, setterReg, false);
+ } else if (ts.isGetAccessorDeclaration(accessor!)) {
+ pandaGen.defineGetterSetterByValue(accessor, objReg, propReg, getterReg, getVregisterCache(pandaGen, CacheList.undefined), false);
+ } else {
+ pandaGen.defineGetterSetterByValue(accessor!, objReg, propReg, getVregisterCache(pandaGen, CacheList.undefined), setterReg, false);
+ }
+
+ pandaGen.freeTemps(getterReg, setterReg, propReg);
+}
+
+function compileSpreadProperty(compiler: Compiler, prop: Property, objReg: VReg) {
+ let pandaGen = compiler.getPandaGen();
+
+ let srcObj = pandaGen.getTemp();
+ compiler.compileExpression(prop.getValue());
+ pandaGen.storeAccumulator(prop.getValue(), srcObj);
+ pandaGen.copyDataProperties(prop.getValue().parent, objReg, srcObj);
+ pandaGen.freeTemps(srcObj);
+}
+
+function compileComputedProperty(compiler: Compiler, prop: Property, objReg: VReg) {
+ // Computed can't know its key in compile time, create Object now.
+ let pandaGen = compiler.getPandaGen();
+
+ let keyReg = pandaGen.getTemp();
+ compiler.compileExpression((prop.getName()).expression);
+ pandaGen.storeAccumulator(prop.getValue(), keyReg);
+
+ switch (prop.getValue().kind) {
+ case ts.SyntaxKind.PropertyAssignment: {
+ compiler.compileExpression((prop.getValue()).initializer);
+ pandaGen.storeOwnProperty(prop.getValue(), objReg, keyReg);
+ break;
+ }
+ case ts.SyntaxKind.MethodDeclaration: {
+ createMethodOrAccessor(pandaGen, compiler, objReg, prop.getValue());
+ pandaGen.storeOwnProperty(prop.getValue(), objReg, keyReg);
+ break;
+ }
+ case ts.SyntaxKind.GetAccessor: {
+ let accessorReg = pandaGen.getTemp();
+ let getter = prop.getValue();
+ createMethodOrAccessor(pandaGen, compiler, objReg, getter);
+ pandaGen.storeAccumulator(getter, accessorReg);
+ pandaGen.defineGetterSetterByValue(getter, objReg, keyReg, accessorReg, getVregisterCache(pandaGen, CacheList.undefined), true);
+ pandaGen.freeTemps(accessorReg);
+ break;
+ }
+ case ts.SyntaxKind.SetAccessor: {
+ let accessorReg = pandaGen.getTemp();
+ let setter = prop.getValue();
+ createMethodOrAccessor(pandaGen, compiler, objReg, setter);
+ pandaGen.storeAccumulator(setter, accessorReg);
+ pandaGen.defineGetterSetterByValue(setter, objReg, keyReg, getVregisterCache(pandaGen, CacheList.undefined), accessorReg, true);
+ pandaGen.freeTemps(accessorReg);
+ break;
+ }
+ // no default
+ }
+
+ pandaGen.freeTemps(keyReg);
+}
+
+function compileProtoProperty(compiler: Compiler, prop: Property, objReg: VReg) {
+ let pandaGen = compiler.getPandaGen();
+ let protoReg = pandaGen.getTemp();
+
+ compiler.compileExpression(prop.getValue());
+ pandaGen.storeAccumulator(prop.getValue().parent, protoReg);
+ pandaGen.setObjectWithProto(prop.getValue().parent, protoReg, objReg);
+ pandaGen.freeTemps(protoReg);
+}
+
+function setUncompiledProperties(compiler: Compiler, pandaGen: PandaGen, properties: Property[], objReg: VReg) {
+ for (let prop of properties) {
+ if (!prop.isCompiled()) {
+ switch (prop.getKind()) {
+ case PropertyKind.Accessor: {
+ compileAccessorProperty(pandaGen, compiler, objReg, prop);
+ break;
+ }
+ case PropertyKind.Spread: {
+ compileSpreadProperty(compiler, prop, objReg);
+ break;
+ }
+ case PropertyKind.Computed: {
+ compileComputedProperty(compiler, prop, objReg);
+ break;
+ }
+ case PropertyKind.Constant:
+ case PropertyKind.Variable: {
+ if (ts.isMethodDeclaration(prop.getValue())) {
+ createMethodOrAccessor(pandaGen, compiler, objReg, prop.getValue());
+ } else {
+ compiler.compileExpression(prop.getValue());
+ }
+ pandaGen.storeOwnProperty(prop.getValue().parent, objReg, (prop.getName()));
+ break;
+ }
+ case PropertyKind.Prototype: {
+ compileProtoProperty(compiler, prop, objReg);
+ break;
+ }
+ default: {
+ throw new Error("Unreachable PropertyKind for NullValue setting");
+ }
+ }
+ }
+ }
+}
+
+export function createMethodOrAccessor(pandaGen: PandaGen, compiler: Compiler, objReg: VReg,
+ func: ts.MethodDeclaration | ts.GetAccessorDeclaration | ts.SetAccessorDeclaration | ts.ConstructorDeclaration) {
+ let internalName = compiler.getCompilerDriver().getFuncInternalName(func);
+ let env = compiler.getCurrentEnv();
+ if (ts.isMethodDeclaration(func) && func.asteriskToken) {
+ pandaGen.defineFunction(func, func, internalName, env);
+ } else {
+ pandaGen.defineMethod(func, internalName, objReg, env);
+ }
+}
\ No newline at end of file
diff --git a/ts2panda/src/expression/parenthesizedExpression.ts b/ts2panda/src/expression/parenthesizedExpression.ts
new file mode 100644
index 0000000000000000000000000000000000000000..89d30dccc6df4188db74fe4c38a7ebefb2518a17
--- /dev/null
+++ b/ts2panda/src/expression/parenthesizedExpression.ts
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+
+export function findInnerExprOfParenthesis(expr: ts.ParenthesizedExpression): ts.Expression {
+ while (expr.expression.kind == ts.SyntaxKind.ParenthesizedExpression) {
+ expr = expr.expression;
+ }
+ return expr.expression;
+}
+
+export function findOuterNodeOfParenthesis(expr: ts.Node): ts.Node {
+ let parent = expr.parent;
+ while (parent.kind == ts.SyntaxKind.ParenthesizedExpression) {
+ parent = parent.parent;
+ }
+ return parent;
+}
diff --git a/ts2panda/src/expression/stringLiteral.ts b/ts2panda/src/expression/stringLiteral.ts
new file mode 100644
index 0000000000000000000000000000000000000000..415300db1bb304062a22e4846f947e52c7376ed1
--- /dev/null
+++ b/ts2panda/src/expression/stringLiteral.ts
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import * as jshelpers from "../jshelpers";
+import { PandaGen } from "../pandagen";
+
+export function compileStringLiteral(pandaGen: PandaGen, lit: ts.StringLiteral) {
+ let text = jshelpers.getTextOfIdentifierOrLiteral(lit);
+ pandaGen.loadAccumulatorString(lit, text);
+}
diff --git a/ts2panda/src/expression/templateExpression.ts b/ts2panda/src/expression/templateExpression.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a6315cb7248067459057b1aa39d1cb8f51728dc5
--- /dev/null
+++ b/ts2panda/src/expression/templateExpression.ts
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { PandaGen } from "../pandagen";
+import { VReg } from "../irnodes";
+
+function genRawString(pandaGen: PandaGen, expr: ts.TemplateExpression | ts.NoSubstitutionTemplateLiteral) {
+ let text = ""
+ if (ts.isTemplateExpression(expr)) {
+ text = expr.head.rawText!;
+ } else {
+ text = expr.rawText!;
+ }
+
+ text = text.replace(/(\r?\n|\r)/gm, "\n");
+ pandaGen.loadAccumulatorString(expr, text);
+}
+
+function genCookedString(pandaGen: PandaGen, expr: ts.TemplateExpression | ts.NoSubstitutionTemplateLiteral) {
+ let text = ""
+ if (ts.isTemplateExpression(expr)) {
+ text = expr.head.text;
+ } else {
+ text = expr.text;
+ }
+
+ if (text.indexOf("\\u{") != -1) {
+ text = eval("'" + text + "'");
+ text = unescape(text.replace(/\u/g, "%u"));
+ }
+
+ pandaGen.loadAccumulatorString(expr, text);
+}
+
+function genTemplateArrayArg(pandaGen: PandaGen, expr: ts.TemplateExpression | ts.NoSubstitutionTemplateLiteral, rawArr: VReg, cookedArr: VReg) {
+ let spans = undefined;
+ if (ts.isTemplateExpression(expr)) {
+ spans = expr.templateSpans;
+ }
+
+ let elemIndex = 0;
+ let indexReg = pandaGen.getTemp();
+ let rawArrTmp = pandaGen.getTemp();
+ let cookedArrTmp = pandaGen.getTemp();
+
+ pandaGen.createEmptyArray(expr);
+ pandaGen.storeAccumulator(expr, rawArrTmp);
+ pandaGen.createEmptyArray(expr);
+ pandaGen.storeAccumulator(expr, cookedArrTmp);
+ pandaGen.loadAccumulatorInt(expr, elemIndex);
+ pandaGen.storeAccumulator(expr, indexReg);
+
+ genRawString(pandaGen, expr)
+ pandaGen.storeObjProperty(expr, rawArrTmp, indexReg);
+
+ genCookedString(pandaGen, expr)
+ pandaGen.storeObjProperty(expr, cookedArrTmp, indexReg);
+ ++elemIndex;
+
+ if (spans && spans.length) {
+ spans.forEach((span: ts.TemplateSpan) => {
+ pandaGen.loadAccumulatorInt(span, elemIndex);
+ pandaGen.storeAccumulator(span, indexReg);
+ pandaGen.loadAccumulatorString(span, span.literal.rawText === undefined ? span.literal.text : span.literal.rawText);
+ pandaGen.storeObjProperty(span, rawArrTmp, indexReg);
+
+ pandaGen.loadAccumulatorString(span, span.literal.text);
+ pandaGen.storeObjProperty(span, cookedArrTmp, indexReg);
+ ++elemIndex;
+ });
+ }
+
+ pandaGen.moveVreg(expr, rawArr, rawArrTmp);
+ pandaGen.moveVreg(expr, cookedArr, cookedArrTmp);
+ pandaGen.freeTemps(indexReg, rawArrTmp, cookedArrTmp);
+}
+
+export function getTemplateObject(pandaGen: PandaGen, expr: ts.TaggedTemplateExpression) {
+ let templateArgs = pandaGen.getTemp();
+ let indexReg = pandaGen.getTemp();
+ let rawArr = pandaGen.getTemp();
+ let cookedArr = pandaGen.getTemp();
+
+ genTemplateArrayArg(pandaGen, expr.template, rawArr, cookedArr);
+ pandaGen.createEmptyArray(expr);
+ pandaGen.storeAccumulator(expr, templateArgs);
+
+ let elemIndex = 0;
+ pandaGen.loadAccumulatorInt(expr, elemIndex);
+ pandaGen.storeAccumulator(expr, indexReg);
+ pandaGen.loadAccumulator(expr, rawArr);
+ pandaGen.storeObjProperty(expr, templateArgs, indexReg);
+ ++elemIndex;
+ pandaGen.loadAccumulatorInt(expr, elemIndex);
+ pandaGen.storeAccumulator(expr, indexReg);
+ pandaGen.loadAccumulator(expr, cookedArr);
+ pandaGen.storeObjProperty(expr, templateArgs, indexReg);
+
+ pandaGen.getTemplateObject(expr, templateArgs);
+ pandaGen.freeTemps(templateArgs, indexReg, rawArr, cookedArr);
+}
diff --git a/ts2panda/src/expression/yieldExpression.ts b/ts2panda/src/expression/yieldExpression.ts
new file mode 100644
index 0000000000000000000000000000000000000000..99fc5f856b924926160ff4ecc94c907f7d192ba4
--- /dev/null
+++ b/ts2panda/src/expression/yieldExpression.ts
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { GeneratorFunctionBuilder } from "../function/generatorFunctionBuilder";
+import { DiagnosticCode, DiagnosticError } from "../diagnostic";
+import { CacheList, getVregisterCache } from "../base/vregisterCache";
+import { Compiler } from "../compiler";
+
+export function compileYieldExpression(compiler: Compiler, expr: ts.YieldExpression) {
+ if (!(compiler.getFuncBuilder() instanceof GeneratorFunctionBuilder)) {
+ throw new DiagnosticError(expr.parent, DiagnosticCode.A_yield_expression_is_only_allowed_in_a_generator_body);
+ }
+
+ expr.asteriskToken ? genYieldStarExpr(compiler, expr) : genYieldExpr(compiler, expr);
+}
+
+function genYieldExpr(compiler: Compiler, expr: ts.YieldExpression) {
+ let pandaGen = compiler.getPandaGen();
+ let funcBuilder = compiler.getFuncBuilder();
+ if (expr.expression) {
+ let retValue = pandaGen.getTemp();
+
+ compiler.compileExpression(expr.expression);
+ pandaGen.storeAccumulator(expr, retValue);
+
+ funcBuilder.yield(expr, retValue);
+
+ pandaGen.freeTemps(retValue);
+ } else {
+ funcBuilder.yield(expr, getVregisterCache(pandaGen, CacheList.undefined));
+ }
+}
+
+function genYieldStarExpr(compiler: Compiler, expr: ts.YieldExpression) {
+ let funcBuilder = compiler.getFuncBuilder();
+ if (!expr.expression) {
+ throw new Error("yield* must have an expression!");
+ }
+ compiler.compileExpression(expr.expression!);
+ funcBuilder.yieldStar(expr);
+}
\ No newline at end of file
diff --git a/ts2panda/src/function/asyncFunctionBuilder.ts b/ts2panda/src/function/asyncFunctionBuilder.ts
new file mode 100644
index 0000000000000000000000000000000000000000..63b68879fc771ab0bdbc199928cda416dd88c561
--- /dev/null
+++ b/ts2panda/src/function/asyncFunctionBuilder.ts
@@ -0,0 +1,122 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import ts from "typescript";
+import { CacheList, getVregisterCache } from "../base/vregisterCache";
+import { NodeKind } from "../debuginfo";
+import {
+ Label,
+ VReg
+} from "../irnodes";
+import { PandaGen } from "../pandagen";
+import { CatchTable, LabelPair } from "../statement/tryStatement";
+
+enum ResumeMode { Return = 0, Throw, Next };
+
+/**
+ * async function foo() {
+ * await 'promise obj';
+ * }
+ */
+export class AsyncFunctionBuilder {
+ private pandaGen: PandaGen;
+ private beginLabel: Label;
+ private endLabel: Label;
+ private asyncObj: VReg;
+ private retVal: VReg;
+
+ constructor(pandaGen: PandaGen) {
+ this.pandaGen = pandaGen;
+ this.beginLabel = new Label();
+ this.endLabel = new Label();
+ this.asyncObj = pandaGen.getTemp();
+ this.retVal = pandaGen.getTemp();
+ }
+
+ prepare(node: ts.Node): void {
+ let pandaGen = this.pandaGen;
+
+ pandaGen.asyncFunctionEnter(node);
+ pandaGen.storeAccumulator(node, this.asyncObj);
+
+ pandaGen.label(node, this.beginLabel);
+ }
+
+ await(node: ts.Node, value: VReg): void {
+ let pandaGen = this.pandaGen;
+ let promise = this.pandaGen.getTemp();
+
+ pandaGen.asyncFunctionAwaitUncaught(node, this.asyncObj, value);
+ pandaGen.storeAccumulator(node, promise);
+
+ pandaGen.suspendGenerator(node, this.asyncObj, promise);
+
+ pandaGen.freeTemps(promise);
+
+ pandaGen.resumeGenerator(node, this.asyncObj);
+ pandaGen.storeAccumulator(node, this.retVal);
+
+ this.handleMode(node);
+ }
+
+ private handleMode(node: ts.Node) {
+ let pandaGen = this.pandaGen;
+ let modeType = pandaGen.getTemp();
+
+ pandaGen.getResumeMode(node, this.asyncObj);
+ pandaGen.storeAccumulator(node, modeType);
+
+ // .reject
+ pandaGen.loadAccumulatorInt(node, ResumeMode.Throw);
+
+ let notThrowLabel = new Label();
+
+ // jump to normal code
+ pandaGen.condition(node, ts.SyntaxKind.EqualsEqualsToken, modeType, notThrowLabel);
+ pandaGen.loadAccumulator(node, this.retVal);
+ pandaGen.throw(node);
+
+ pandaGen.freeTemps(modeType);
+
+ // .resolve
+ pandaGen.label(node, notThrowLabel);
+ pandaGen.loadAccumulator(node, this.retVal);
+ }
+
+ resolve(node: ts.Node | NodeKind, value: VReg) {
+ let pandaGen = this.pandaGen;
+
+ pandaGen.asyncFunctionResolve(node, this.asyncObj, getVregisterCache(pandaGen, CacheList.True), value);
+ }
+
+ cleanUp(node: ts.Node): void {
+ let pandaGen = this.pandaGen;
+
+ pandaGen.label(node, this.endLabel);
+
+ // catch
+ let exception = pandaGen.getTemp();
+
+ pandaGen.storeAccumulator(NodeKind.Invalid, exception);
+ pandaGen.asyncFunctionReject(NodeKind.Invalid, this.asyncObj, getVregisterCache(pandaGen, CacheList.True), exception);
+ pandaGen.return(NodeKind.Invalid);
+
+ pandaGen.freeTemps(exception);
+
+ pandaGen.freeTemps(this.asyncObj, this.retVal);
+
+ new CatchTable(pandaGen, this.endLabel, new LabelPair(this.beginLabel, this.endLabel));
+ }
+}
\ No newline at end of file
diff --git a/ts2panda/src/function/functionBuilder.ts b/ts2panda/src/function/functionBuilder.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0d56c987cbf2906e5a6ca597088fe9d58285153f
--- /dev/null
+++ b/ts2panda/src/function/functionBuilder.ts
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { GeneratorFunctionBuilder } from "./generatorFunctionBuilder";
+import { AsyncFunctionBuilder } from "./asyncFunctionBuilder";
+
+export type FunctionBuilderType = AsyncFunctionBuilder | GeneratorFunctionBuilder | FunctionBuilder;
+
+export class FunctionBuilder {
+ prepare(node: ts.Node): void {
+ }
+
+ cleanUp(node: ts.Node): void {
+ }
+}
\ No newline at end of file
diff --git a/ts2panda/src/function/generatorFunctionBuilder.ts b/ts2panda/src/function/generatorFunctionBuilder.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8a02ed6acc8f7b53786104b17e94ccd00875f259
--- /dev/null
+++ b/ts2panda/src/function/generatorFunctionBuilder.ts
@@ -0,0 +1,259 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { Scope } from "src/scope";
+import ts from "typescript";
+import { CacheList, getVregisterCache } from "../base/vregisterCache";
+import { Compiler, ControlFlowChange } from "../compiler";
+import {
+ Label,
+ VReg
+} from "../irnodes";
+import { PandaGen } from "../pandagen";
+import { Recorder } from "../recorder";
+import { IteratorRecord, IteratorType, getIteratorRecord } from "../statement/forOfStatement";
+
+enum ResumeMode { Return = 0, Throw, Next };
+
+/**
+ * function *foo() {
+ * yield 'a'
+ * }
+*/
+export class GeneratorFunctionBuilder {
+ private pandaGen: PandaGen;
+ private compiler: Compiler;
+ private genObj: VReg;
+ private retVal: VReg;
+
+ constructor(pandaGen: PandaGen, compiler: Compiler) {
+ this.pandaGen = pandaGen;
+ this.compiler = compiler;
+ this.genObj = pandaGen.getTemp();
+ this.retVal = pandaGen.getTemp();
+ }
+
+ prepare(node: ts.Node, recorder: Recorder) {
+ let pandaGen = this.pandaGen;
+ let scope = recorder.getScopeOfNode(node);
+ let funcObj = scope.getName2variable().get('4funcObj')!.getVreg();
+
+ pandaGen.createGeneratorObj(node, funcObj);
+ pandaGen.storeAccumulator(node, this.genObj);
+ pandaGen.suspendGenerator(node, this.genObj, getVregisterCache(pandaGen, CacheList.undefined));
+ pandaGen.resumeGenerator(node, this.genObj);
+ pandaGen.storeAccumulator(node, this.retVal);
+
+ this.handleMode(node);
+ }
+
+ yield(node: ts.Node, value: VReg) {
+ let pandaGen = this.pandaGen;
+
+ let iterRslt = pandaGen.getTemp();
+ pandaGen.createIterResultObjectDyn(node, value, getVregisterCache(pandaGen, CacheList.False));
+ pandaGen.storeAccumulator(node, iterRslt);
+ pandaGen.suspendGenerator(node, this.genObj, iterRslt);
+ pandaGen.freeTemps(iterRslt);
+
+ pandaGen.resumeGenerator(node, this.genObj);
+ pandaGen.storeAccumulator(node, this.retVal);
+
+ this.handleMode(node);
+ }
+
+ yieldStar(expr: ts.YieldExpression) {
+ let pandaGen = this.pandaGen;
+ let method = pandaGen.getTemp();
+ let object = pandaGen.getTemp();
+
+ let receivedValue = pandaGen.getTemp();
+ let modeType = pandaGen.getTemp();
+
+ let loopStartLabel = new Label();
+ let callreturnLabel = new Label();
+ let callthrowLabel = new Label();
+ let iteratorCompletionLabel = new Label();
+ let exitLabel_return = new Label();
+ let exitLabel_throw = new Label();
+ let exitLabel_value = new Label();
+ let exitLabel_TypeError = new Label();
+
+ // get innerIterator & iterator.[[Nextmethod]] (spec 4 & 5), support async in the future
+ let type: IteratorType = IteratorType.Normal;
+ let iterator: IteratorRecord = getIteratorRecord(pandaGen, expr, method, object, type);
+
+ // init receivedValue with Undefined (spec 6)
+ pandaGen.moveVreg(expr, receivedValue, getVregisterCache(pandaGen, CacheList.undefined));
+
+ // init modeType with Next (spec 6)
+ pandaGen.loadAccumulatorInt(expr, ResumeMode.Next);
+ pandaGen.storeAccumulator(expr, modeType);
+
+ // starts executeing iterator.[[method]] (spec 7)
+ pandaGen.label(expr, loopStartLabel);
+ pandaGen.loadAccumulatorInt(expr, ResumeMode.Next);
+ pandaGen.condition(expr, ts.SyntaxKind.EqualsEqualsToken, modeType, callreturnLabel);
+
+ // call next
+ pandaGen.call(expr, [iterator.getNextMethod(), iterator.getObject(), receivedValue], true);
+ pandaGen.branch(expr, iteratorCompletionLabel);
+
+ // call return
+ pandaGen.label(expr, callreturnLabel);
+ pandaGen.loadAccumulatorInt(expr, ResumeMode.Return);
+ pandaGen.condition(expr, ts.SyntaxKind.EqualsEqualsToken, modeType, callthrowLabel);
+
+ pandaGen.loadObjProperty(expr, iterator.getObject(), "return");
+ pandaGen.storeAccumulator(expr, method);
+
+ // whether iterator.[[return]] exists
+ pandaGen.condition(expr, ts.SyntaxKind.ExclamationEqualsEqualsToken, getVregisterCache(pandaGen, CacheList.undefined), exitLabel_return);
+ pandaGen.call(expr, [method, iterator.getObject(), receivedValue], true);
+ pandaGen.branch(expr, iteratorCompletionLabel);
+
+ // no return method
+ pandaGen.label(expr, exitLabel_return);
+
+ // if there are finally blocks, should implement these at first.
+ this.compiler.compileFinallyBeforeCFC(
+ undefined,
+ ControlFlowChange.Break,
+ undefined
+ );
+
+ // spec 7.c.iii.2 Return Completion(received).
+ pandaGen.loadAccumulator(expr, receivedValue);
+ pandaGen.return(expr);
+
+ // call throw
+ pandaGen.label(expr, callthrowLabel);
+ pandaGen.loadObjProperty(expr, iterator.getObject(), "throw");
+ pandaGen.storeAccumulator(expr, method);
+
+ // whether iterator.[[throw]] exists
+ pandaGen.condition(expr, ts.SyntaxKind.ExclamationEqualsEqualsToken, getVregisterCache(pandaGen, CacheList.undefined), exitLabel_throw);
+ pandaGen.call(expr, [method, iterator.getObject(), receivedValue], true);
+ pandaGen.branch(expr, iteratorCompletionLabel);
+
+ // NOTE: If iterator does not have a throw method, this throw is
+ // going to terminate the yield* loop. But first we need to give
+ // iterator a chance to clean up.
+ pandaGen.label(expr, exitLabel_throw);
+ pandaGen.loadObjProperty(expr, iterator.getObject(), "return");
+ pandaGen.storeAccumulator(expr, method);
+
+ // whether iterator.[[return]] exists
+ pandaGen.condition(expr, ts.SyntaxKind.ExclamationEqualsEqualsToken, getVregisterCache(pandaGen, CacheList.undefined), exitLabel_TypeError);
+
+ // [[return]] exists
+ pandaGen.call(expr, [method, iterator.getObject()], true);
+ let innerResult = pandaGen.getTemp();
+ pandaGen.storeAccumulator(expr, innerResult);
+ pandaGen.throwIfNotObject(expr, innerResult);
+ pandaGen.freeTemps(innerResult);
+
+ pandaGen.label(expr, exitLabel_TypeError);
+ pandaGen.throwThrowNotExist(expr);
+
+ // iteratorCompletion
+ pandaGen.label(expr, iteratorCompletionLabel);
+ pandaGen.storeAccumulator(expr, this.retVal);
+ pandaGen.throwIfNotObject(expr, this.retVal);
+
+ pandaGen.loadObjProperty(expr, this.retVal, "done");
+ pandaGen.toBoolean(expr);
+ pandaGen.condition(expr, ts.SyntaxKind.ExclamationEqualsToken, getVregisterCache(pandaGen, CacheList.True), exitLabel_value);
+
+ pandaGen.suspendGenerator(expr, this.genObj, this.retVal);
+ pandaGen.resumeGenerator(expr, this.genObj);
+ pandaGen.storeAccumulator(expr, receivedValue);
+ pandaGen.getResumeMode(expr, this.genObj);
+ pandaGen.storeAccumulator(expr, modeType);
+ pandaGen.branch(expr, loopStartLabel);
+
+ // spec 7.a.v.1/7.b.ii.6.a/7.c.viii Return ? IteratorValue(innerResult).
+ // Decide if we trigger a return or if the yield* expression should just
+ // produce a value.
+ let outputLabel = new Label();
+
+ pandaGen.label(expr, exitLabel_value);
+ pandaGen.loadObjProperty(expr, this.retVal, "value");
+ let outputResult = pandaGen.getTemp();
+ pandaGen.storeAccumulator(expr, outputResult);
+ pandaGen.loadAccumulatorInt(expr, ResumeMode.Return);
+ pandaGen.condition(expr, ts.SyntaxKind.EqualsEqualsToken, modeType, outputLabel);
+
+ this.compiler.compileFinallyBeforeCFC(
+ undefined,
+ ControlFlowChange.Break,
+ undefined
+ );
+ pandaGen.loadAccumulator(expr, outputResult);
+ pandaGen.return(expr);
+
+ pandaGen.label(expr, outputLabel);
+ pandaGen.loadAccumulator(expr, outputResult);
+
+ pandaGen.freeTemps(method, object, receivedValue, modeType, outputResult);
+ }
+
+ private handleMode(node: ts.Node) {
+ let pandaGen = this.pandaGen;
+
+ let modeType = pandaGen.getTemp();
+
+ pandaGen.getResumeMode(node, this.genObj);
+ pandaGen.storeAccumulator(node, modeType);
+
+ // .return(value)
+ pandaGen.loadAccumulatorInt(node, ResumeMode.Return);
+
+ let notRetLabel = new Label();
+
+ pandaGen.condition(node, ts.SyntaxKind.EqualsEqualsToken, modeType, notRetLabel);
+
+ // if there are finally blocks, should implement these at first.
+ this.compiler.compileFinallyBeforeCFC(
+ undefined,
+ ControlFlowChange.Break,
+ undefined
+ );
+
+ pandaGen.loadAccumulator(node, this.retVal);
+ pandaGen.return(node);
+
+ // .throw(value)
+ pandaGen.label(node, notRetLabel);
+
+ pandaGen.loadAccumulatorInt(node, ResumeMode.Throw);
+
+ let notThrowLabel = new Label();
+
+ pandaGen.condition(node, ts.SyntaxKind.EqualsEqualsToken, modeType, notThrowLabel);
+ pandaGen.loadAccumulator(node, this.retVal);
+ pandaGen.throw(node);
+
+ pandaGen.freeTemps(modeType);
+
+ // .next(value)
+ pandaGen.label(node, notThrowLabel);
+ pandaGen.loadAccumulator(node, this.retVal);
+ }
+
+ cleanUp() {
+ this.pandaGen.freeTemps(this.genObj, this.retVal);
+ }
+}
diff --git a/ts2panda/src/hoisting.ts b/ts2panda/src/hoisting.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8afe970c0a1f70c946cbab2152fd77e76d9f6db2
--- /dev/null
+++ b/ts2panda/src/hoisting.ts
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { hasExportKeywordModifier, hasDefaultKeywordModifier } from "./base/util";
+import { CacheList, getVregisterCache } from "./base/vregisterCache";
+import { Compiler } from "./compiler";
+import { NodeKind } from "./debuginfo";
+import { PandaGen } from "./pandagen";
+import { Recorder } from "./recorder";
+import {
+ FuncDecl,
+ FunctionScope,
+ GlobalScope,
+ LocalScope,
+ ModuleScope,
+ Scope,
+ VarDecl,
+ VariableScope
+} from "./scope";
+import { LocalVariable } from "./variable";
+export function hoisting(rootNode: ts.SourceFile | ts.FunctionLikeDeclaration, pandaGen: PandaGen, recorder: Recorder, compiler: Compiler) {
+ let variableScope = recorder.getScopeOfNode(rootNode);
+ let hoistDecls = recorder.getHoistDeclsOfScope(variableScope);
+
+ hoistDecls ?.forEach((decl) => {
+ if (decl instanceof VarDecl) {
+ hoistVar(decl, variableScope, pandaGen);
+ } else if (decl instanceof FuncDecl) {
+ hoistFunction(decl, variableScope, pandaGen, compiler);
+ } else {
+ throw new Error("Wrong declaration type to be hoisted");
+ }
+ });
+}
+
+export function hoistVar(decl: VarDecl, scope: Scope, pandaGen: PandaGen) {
+ let name = decl.name;
+
+ if (scope instanceof GlobalScope) {
+ pandaGen.loadAccumulator(decl.node, getVregisterCache(pandaGen, CacheList.undefined));
+ pandaGen.storeGlobalVar(decl.node, name);
+ } else if (scope instanceof FunctionScope || scope instanceof ModuleScope) {
+ let v = scope.findLocal(name)!;
+ pandaGen.loadAccumulator(NodeKind.FirstNodeOfFunction, getVregisterCache(pandaGen, CacheList.undefined));
+ pandaGen.storeAccToLexEnv(NodeKind.FirstNodeOfFunction, scope, 0, v, true);
+ } else {
+ throw new Error("Wrong scope to hoist");
+ }
+}
+
+export function hoistFunction(decl: FuncDecl, scope: Scope, pandaGen: PandaGen, compiler: Compiler) {
+ let funcName = decl.name;
+ let funcIndex = decl.index;
+ let internalName = `func_${funcName}_${funcIndex}`;
+ let env = compiler.getCurrentEnv();
+
+ if (scope instanceof GlobalScope) {
+ pandaGen.defineFunction(NodeKind.FirstNodeOfFunction, decl.node, internalName, env);
+ pandaGen.storeGlobalVar(NodeKind.FirstNodeOfFunction, funcName);
+ } else if ((scope instanceof FunctionScope) || (scope instanceof LocalScope) || (scope instanceof ModuleScope)) {
+ let hasExport: boolean = hasExportKeywordModifier(decl.node);
+ let hasDefault: boolean = hasDefaultKeywordModifier(decl.node);
+ let v = scope.findLocal(funcName)!;
+ if (hasExport && scope instanceof ModuleScope) {
+ (v).setExport();
+ if (hasDefault) {
+ (v).setExportedName("default");
+ } else {
+ (v).setExportedName(v.getName());
+ }
+ }
+ pandaGen.defineFunction(NodeKind.FirstNodeOfFunction, decl.node, internalName, env);
+ pandaGen.storeAccToLexEnv(NodeKind.FirstNodeOfFunction, scope, 0, v, true);
+ } else {
+ throw new Error("Wrong scope to hoist");
+ }
+}
+
+// this function is called when hoisting function inside blocks
+export function hoistFunctionInBlock(scope: Scope, pandaGen: PandaGen, strictMode: boolean, compiler: Compiler) {
+ let decls = scope.getDecls();
+ let funcToHoist = new Array();
+ for (let i = 0; i < decls.length; i++) {
+ if (decls[i] instanceof FuncDecl) {
+ funcToHoist.push(decls[i]);
+ }
+ }
+
+ if (strictMode) {
+ funcToHoist.forEach(func => {
+ hoistFunction(func, scope, pandaGen, compiler);
+ });
+ }
+}
diff --git a/ts2panda/src/index.ts b/ts2panda/src/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..23ee46cde3c931c2ac444f0dd5da88e29cfc3037
--- /dev/null
+++ b/ts2panda/src/index.ts
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { CmdOptions } from "./cmdOptions";
+import { CompilerDriver } from "./compilerDriver";
+import * as diag from "./diagnostic";
+import { LOGD, LOGE } from "./log";
+import { Pass } from "./pass";
+import { CacheExpander } from "./pass/cacheExpander";
+import { ICPass } from "./pass/ICPass";
+import { IntrinsicVariantExpander } from "./pass/intrinsicVariantExpander";
+import { RegAlloc } from "./regAllocator";
+import { setGlobalStrict } from "./strictMode";
+import jshelpers = require("./jshelpers");
+
+function main(fileNames: string[], options: ts.CompilerOptions) {
+ let program = ts.createProgram(fileNames, options);
+ let emitResult = program.emit(
+ undefined,
+ undefined,
+ undefined,
+ undefined,
+ {
+ before: [
+ (ctx: ts.TransformationContext) => {
+ return (node: ts.SourceFile) => {
+ let outputBinName = CmdOptions.getOutputBinName();
+ let fileName = node.fileName.substring(0, node.fileName.lastIndexOf('.'));
+ if (fileName != CmdOptions.getInputFileName()) {
+ outputBinName = fileName + ".abc";
+ }
+ let compilerDriver = new CompilerDriver(outputBinName);
+ setGlobalStrict(jshelpers.isEffectiveStrictModeSourceFile(node, options));
+ if (CmdOptions.isVariantBytecode()) {
+ LOGD("variant bytecode dump");
+ let passes: Pass[] = [
+ new CacheExpander(),
+ new ICPass(),
+ new IntrinsicVariantExpander(),
+ new RegAlloc()
+ ];
+ compilerDriver.setCustomPasses(passes);
+ }
+ compilerDriver.compile(node);
+ compilerDriver.showStatistics();
+ return node;
+ }
+ }
+ ]
+ }
+ );
+
+ let allDiagnostics = ts
+ .getPreEmitDiagnostics(program)
+ .concat(emitResult.diagnostics);
+
+ allDiagnostics.forEach(diagnostic => {
+ diag.printDiagnostic(diagnostic);
+ });
+}
+
+namespace Compiler {
+ export namespace Options {
+ export let Default: ts.CompilerOptions = {
+ outDir: "../tmp/build",
+ allowJs: true,
+ noEmitOnError: true,
+ noImplicitAny: true,
+ target: ts.ScriptTarget.ES2015,
+ module: ts.ModuleKind.CommonJS,
+ strictNullChecks: true,
+ skipLibCheck: true
+ };
+ }
+}
+
+function run(args: string[], options?: ts.CompilerOptions): void {
+ let parsed = CmdOptions.parseUserCmd(args);
+ if (!parsed) {
+ return;
+ }
+
+ if (options) {
+ if (!((parsed.options.project) || (parsed.options.build))) {
+ parsed.options = options;
+ }
+ }
+ try {
+ main(parsed.fileNames, parsed.options);
+ } catch (err) {
+ if (err instanceof diag.DiagnosticError) {
+ let diagnostic = diag.getDiagnostic(err.code);
+ if (diagnostic != undefined) {
+ let diagnosticLog = diag.createDiagnostic(err.file, err.irnode, diagnostic, ...err.args);
+ diag.printDiagnostic(diagnosticLog);
+ }
+ } else if (err instanceof SyntaxError) {
+ LOGE(err.name, err.message);
+ } else {
+ throw err;
+ }
+ }
+}
+
+run(process.argv.slice(2), Compiler.Options.Default);
+global.gc();
diff --git a/ts2panda/src/intrinsicExpander.ts b/ts2panda/src/intrinsicExpander.ts
new file mode 100644
index 0000000000000000000000000000000000000000..cefb3c22b00827f153780142726c92ac15de9ed8
--- /dev/null
+++ b/ts2panda/src/intrinsicExpander.ts
@@ -0,0 +1,192 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { AssemblyDumper, IntrinsicInfo } from "./assemblyDumper";
+import { DebugInfo } from "./debuginfo";
+import {
+ Call,
+ CallRange,
+ CallShort,
+ FldaiDyn,
+ Imm,
+ Intrinsic,
+ IRNode,
+ LdaiDyn,
+ LdaStr,
+ OperandKind,
+ ResultDst,
+ ResultType,
+ StaDyn,
+ VReg
+} from "./irnodes";
+import { PandaGen } from "./pandagen";
+import { Pass } from "./pass";
+
+export class IntrinsicExpanderInternal {
+ private temps: VReg[] = [];
+
+ getTemp(): VReg {
+ if (this.temps.length > 0) {
+ return this.temps.pop()!;
+ } else {
+ return new VReg();
+ }
+ }
+
+ freeTemps(temps: VReg[]) {
+ this.temps = this.temps.concat(temps);
+ }
+
+ // this method records the intrinsic usage during the whole source code
+ // it can help dumper to write the intrinsic function declaration in the front of bytecode
+ intrinsicDeclRec(ins: Intrinsic) {
+ let intrinsicName = ins.mnemonic;
+ let argsNum = ins.operands.length;
+ let resultType: string = "";
+ if (ins.resultIn() == ResultDst.None) {
+ resultType = "void";
+ } else if (ins.resultIn() == ResultDst.Acc) {
+ resultType = "any";
+ } else {
+ throw new Error("resultType of" + ins.resultIn() + "is not implement");
+ }
+ let intrinsicInfo = new IntrinsicInfo(intrinsicName, argsNum, resultType);
+ AssemblyDumper.intrinsicRec.set(ins.mnemonic, intrinsicInfo);
+ }
+
+ // Transforms a synthetic "intrinsic instruction" into an intrinsic function call.
+ // Returns an array of instructions forming intrinsic call and
+ // an array of temporary registers used for expansion.
+ expandInstruction(ins: Intrinsic): [IRNode[], VReg[]] {
+ let operands = ins.operands;
+ let formats = ins.formats;
+ let expansion: IRNode[] = [];
+ let callArgs: VReg[] = [];
+ let tempVregs: VReg[] = [];
+
+ let intrinsicName = "Ecmascript.Intrinsics." + ins.mnemonic;
+
+ // Walk the rest of the arguments.
+ for (let i = 0; i < operands.length; ++i) {
+ let format = formats[0];
+ let kind: OperandKind;
+ kind = format[i].kind;
+
+ let operand = operands[i];
+
+ if (kind === OperandKind.SrcVReg) {
+ callArgs.push(operand);
+ continue;
+ }
+
+ // Imm has to be put into a vreg to be passed to intrinsic.
+ // for defineFuncDyn
+ if (kind === OperandKind.Imm) {
+ let tempImm: VReg = this.getTemp();
+ let imm = operand;
+ let type = imm.resultType();
+ if (type == ResultType.Int || type == ResultType.Long) {
+ expansion.push(new LdaiDyn(imm));
+ } else if (type == ResultType.Float) {
+ expansion.push(new FldaiDyn(imm));
+ } else {
+ throw new Error("Unexpected result type for an Imm");
+ }
+ expansion.push(new StaDyn(tempImm));
+ callArgs.push(tempImm);
+ tempVregs.push(tempImm);
+ continue;
+ }
+
+ // Put id into vreg as a string object.
+ if (kind === OperandKind.Id) {
+ let tempId: VReg = this.getTemp();
+ expansion.push(new LdaStr(operand));
+ expansion.push(new StaDyn(tempId));
+ callArgs.push(tempId);
+ tempVregs.push(tempId);
+ continue;
+ }
+
+ // For simplicity, intrinsics shall not have destinations other than accumulator.
+ // Also, no labels are allowed as operands.
+ if (kind === OperandKind.DstVReg
+ || kind === OperandKind.SrcDstVReg
+ || ins.resultIn() === ResultDst.VReg) {
+ throw new Error("Intrinsic " + ins.mnemonic + " has unexpected operand kinds");
+ } else {
+ throw new Error("Unknown operand kind for intrinsic " + ins.mnemonic);
+ }
+ }
+
+ // Call the intrinsic.
+ switch (callArgs.length) {
+ case 0:
+ expansion.push(new CallShort(intrinsicName));
+ break;
+ case 1:
+ expansion.push(new CallShort(intrinsicName, callArgs[0]));
+ break;
+ case 2:
+ expansion.push(new CallShort(intrinsicName, callArgs[0], callArgs[1]));
+ break;
+ case 3:
+ expansion.push(new Call(intrinsicName, callArgs[0], callArgs[1], callArgs[2]));
+ break;
+ case 4:
+ expansion.push(new Call(intrinsicName, callArgs[0], callArgs[1], callArgs[2], callArgs[3]));
+ break;
+ default:
+ expansion.push(new CallRange(intrinsicName, callArgs));
+ }
+ return [expansion, tempVregs];
+ }
+
+ run(pg: PandaGen): void {
+ let insns: IRNode[] = pg.getInsns();
+ let origTemps: VReg[] = pg.getTemps();
+
+ for (let i = 0; i < insns.length; ++i) {
+ let ins: IRNode = insns[i];
+ if (ins instanceof Intrinsic) {
+ // record the intrinsic
+ if (!AssemblyDumper.intrinsicRec.has(ins.mnemonic)) {
+ this.intrinsicDeclRec(ins);
+ }
+
+ let [expansion, temps] = this.expandInstruction(ins);
+
+ // for debuginfo
+ DebugInfo.copyDebugInfo(insns[i], expansion);
+
+ insns.splice(i, 1, ...expansion);
+ // Since we put something into the original array, its length changed.
+ // Skip what we've just added.
+ let step = expansion.length - 1;
+ i += step;
+
+ this.freeTemps(temps);
+ }
+ }
+ // We need extra registers in the function.
+ origTemps.push(...this.temps);
+ }
+}
+export class IntrinsicExpander implements Pass {
+ run(pg: PandaGen): void {
+ let intrinsicExpanderInternal = new IntrinsicExpanderInternal();
+ intrinsicExpanderInternal.run(pg);
+ }
+}
diff --git a/ts2panda/src/jshelpers.d.ts b/ts2panda/src/jshelpers.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5e4203d763b9c1b65c72a2f0fd558f8a7bad91da
--- /dev/null
+++ b/ts2panda/src/jshelpers.d.ts
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export function getSymbol(node: ts.Node): ts.Symbol;
+export function tsStringToString(str: ts.__String): string;
+export function getTextOfIdentifierOrLiteral(node: ts.Node): string;
+export function isJsFile(file: ts.SourceFile): boolean;
+export function createEmptyNodeArray(): ts.NodeArray;
+export function getFlowNode(stmt: ts.Statement): ts.Node;
+export function bindSourceFile(sourceFile: ts.SourceFile, options: ts.CompilerOptions);
+export function createDiagnosticForNode(node: ts.Node, message: ts.DiagnosticMessage, ...args: (string | number | undefined)[]): ts.DiagnosticWithLocation;
+export function createCompilerDiagnostic(message: ts.DiagnosticMessage, ...args: (string | number | undefined)[]): ts.Diagnostic;
+export function createCompilerDiagnostic(message: ts.DiagnosticMessage, ...args: (string | number | undefined)[]): ts.Diagnostic;
+export function createFileDiagnostic(file: ts.SourceFile, start: number, length: number, message: ts.DiagnosticMessage, ...args: (string | number | undefined)[]): ts.DiagnosticWithLocation;
+export function isEffectiveStrictModeSourceFile(node: ts.SourceFile, compilerOptions: ts.CompilerOptions): boolean;
+export function getErrorSpanForNode(sourceFile: ts.SourceFile, node: ts.Node): ts.TextSpan;
+export function getSpanOfTokenAtPosition(sourceFile: ts.SourceFile, pos: number): ts.TextSpan;
+export function getContainingClass(node: ts.Node): ts.ClassLikeDeclaration | undefined;
+export function declarationNameToString(name: ts.DeclarationName | ts.QualifiedName | undefined);
+export function getContainingFunction(node: ts.Node): ts.SignatureDeclaration | undefined;
+export function isPrologueDirective(node: ts.Node): node is ts.PrologueDirective;
+export function getSourceTextOfNodeFromSourceFile(sourceFile: ts.SourceFile, node: ts.Node, includeTrivia = false): string;
+export function isAssignmentTarget(node: ts.Node): boolean;
+export function getSourceFileOfNode(node: ts.Node): ts.SourceFile;
+export function isIterationStatement(node: ts.Node, lookInLabeledStatements: boolean): node is ts.IterationStatement;
+export function getTextOfNode(node: ts.Node, includeTrivia = false): string;
+export function nodePosToString(node: ts.Node): string;
+export function getContainingFunctionDeclaration(node: ts.Node): ts.FunctionLikeDeclaration | undefined;
+export function tokenToString(t: ts.SyntaxKind): string | undefined;
+export function getNewTargetContainer(node: ts.Node): ts.Node | undefined;
+export function isVarConst(node: ts.VariableDeclaration | ts.VariableDeclarationList): boolean;
+export function isLet(node: ts.Node): boolean;
+export function nodeCanBeDecorated(node: ts.Node, parent?: ts.Node, grandparent?: ts.Node): boolean;
+export function getAllAccessorDeclarations(declarations: readonly ts.Declaration[], accessor: ts.AccessorDeclaration): ts.AllAccessorDeclarations;
+export function nodeIsPresent(node: ts.Node | undefined): boolean;
+export function modifierToFlag(token: ts.SyntaxKind): ts.ModifierFlags;
+export function hasSyntacticModifier(node: ts.Node, flags: ts.ModifierFlags): boolean;
+export function isAmbientModule(node: ts.Node): node is ts.AmbientModuleDeclaration;
+export function isKeyword(token: ts.SyntaxKind): boolean;
+export function getThisContainer(node: ts.Node, includeArrowFunctions: boolean): ts.Node;
+export function getEnclosingBlockScopeContainer(node: ts.Node): ts.Node;
+export function findAncestor(node: ts.Node | undefined, callback: (element: ts.Node) => boolean | "quit"): ts.Node | undefined;
+export function isBlockScope(node: ts.Node, parentNode: ts.Node): boolean;
+export function isIdentifierName(node: ts.Identifier): boolean;
+export function declarationNameToString(name: ts.DeclarationName | ts.QualifiedName | undefined): string;
+export function isInTopLevelContext(node: ts.Node);
+export function isExternalOrCommonJsModule(file: ts.SourceFile): boolean;
+export function skipParentheses(node: ts.Node): ts.Node;
+export function getImmediatelyInvokedFunctionExpression(func: ts.Node): ts.CallExpression | undefined;
+export function hasQuestionToken(node: ts.Node);
+export function getPropertyNameForPropertyNameNode(name: ts.PropertyName): ts.__String | undefined;
+export function isFunctionBlock(node: ts.Node): boolean;
+export function isFunctionLike(node: ts.Node): boolean;
+export function getSuperContainer(node: ts.Node, stopOnFunctions: boolean): ts.Node;
+export function getClassExtendsHeritageElement(node: ts.ClassLikeDeclaration | ts.InterfaceDeclaration);
+export function hasStaticModifier(node: ts.Node): boolean;
+export function skipOuterExpressions(node: ts.Node, kinds?: ts.OuterExpressionKinds): ts.Node;
+export function isSuperCall(n: ts.Node);
+export function isThisProperty(node: ts.Node): boolean;
+export function isThisIdentifier(node: ts.Node | undefined): boolean;
+export function getClassExtendsHeritageElement(node: ts.ClassLikeDeclaration | ts.InterfaceDeclaration);
+export function isSuperProperty(node: ts.Node);
\ No newline at end of file
diff --git a/ts2panda/src/jshelpers.js b/ts2panda/src/jshelpers.js
new file mode 100644
index 0000000000000000000000000000000000000000..a958271e22bad6749ab86f42f2d5b206e8e343c9
--- /dev/null
+++ b/ts2panda/src/jshelpers.js
@@ -0,0 +1,314 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+const ts = require("typescript");
+
+function getSymbol(node) {
+ return node.symbol;
+}
+
+function tsStringToString(str) {
+ return "" + str;
+}
+
+function getTextOfIdentifierOrLiteral(node) {
+ return ts.getTextOfIdentifierOrLiteral(node);
+}
+
+function isJsFile(file) {
+ return (file.scriptKind & ts.ScriptKind.JS) != 0;
+}
+
+function createEmptyNodeArray() {
+ return [];
+}
+
+function getFlowNode(stmt) {
+ return stmt.flowNode;
+}
+
+function bindSourceFile(sourceFile, options) {
+ ts.bindSourceFile(sourceFile, options);
+}
+
+function createDiagnosticForNode(node, message, ...args) {
+ return ts.createDiagnosticForNode(node, message, ...args);
+}
+
+function createCompilerDiagnostic(message, ...args) {
+ return ts.createCompilerDiagnostic(message, ...args);
+}
+
+function createFileDiagnostic(file, start, length, message, ...args) {
+ return ts.createFileDiagnostic(file, start, length, message, args);
+}
+
+function isEffectiveStrictModeSourceFile(node, compilerOptions) {
+ return ts.isEffectiveStrictModeSourceFile(node, compilerOptions);
+}
+
+function getErrorSpanForNode(sourceFile, node) {
+ return ts.getErrorSpanForNode(sourceFile, node);
+}
+
+function getSpanOfTokenAtPosition(sourceFile, pos) {
+ return ts.getSpanOfTokenAtPosition(sourceFile, pos);
+}
+
+function getContainingClass(node) {
+ return ts.getContainingClass(node);
+}
+
+function declarationNameToString(node) {
+ return ts.declarationNameToString(node);
+}
+
+function getContainingFunction(node) {
+ return ts.getContainingFunction(node);
+}
+
+function isPrologueDirective(node) {
+ return ts.isPrologueDirective(node);
+}
+
+function getSourceTextOfNodeFromSourceFile(sourceFile, node, includeTrivia) {
+ return ts.getSourceTextOfNodeFromSourceFile(sourceFile, node, includeTrivia);
+}
+
+function isAssignmentTarget(node) {
+ return ts.isAssignmentTarget(node);
+}
+
+function getSourceFileOfNode(node) {
+ return ts.getSourceFileOfNode(node);
+}
+
+function isIterationStatement(node, lookInLabeledStatements) {
+ return ts.isIterationStatement(node, lookInLabeledStatements);
+}
+
+function getTextOfNode(node, includeTrivia) {
+ return ts.getTextOfNode(node, includeTrivia);
+}
+
+function getContainingClass(node) {
+ return ts.getContainingClass(node);
+}
+
+function nodePosToString(node) {
+ return ts.nodePosToString(node);
+}
+
+function getContainingFunctionDeclaration(node) {
+ return ts.getContainingFunctionDeclaration(node);
+}
+
+function tokenToString(t) {
+ return ts.tokenToString(t);
+}
+
+function getNewTargetContainer(node) {
+ return ts.getNewTargetContainer(node);
+}
+
+function isVarConst(node) {
+ return ts.isVarConst(node);
+}
+
+function isLet(node) {
+ return ts.isLet(node);
+}
+
+function nodeCanBeDecorated(node) {
+ return ts.nodeCanBeDecorated(node);
+}
+
+function nodeIsPresent(node) {
+ return ts.nodeIsPresent(node);
+}
+
+function getAllAccessorDeclarations(declarations, accessor) {
+ return ts.getAllAccessorDeclarations(declarations, accessor);
+}
+
+function modifierToFlag(token) {
+ return ts.modifierToFlag(token);
+}
+
+function hasSyntacticModifier(node, flag) {
+ return ts.hasSyntacticModifier(node, flag);
+}
+
+function isAmbientModule(node) {
+ return ts.isAmbientModule(node);
+}
+
+function isKeyword(node) {
+ return ts.isKeyword(node);
+}
+
+function getThisContainer(node) {
+ return ts.getThisContainer(node);
+}
+
+function getEnclosingBlockScopeContainer(node) {
+ return ts.getEnclosingBlockScopeContainer(node);
+}
+
+function findAncestor(node, callback) {
+ return ts.findAncestor(node, callback);
+}
+
+function isBlockScope(node, parentNode) {
+ return ts.isBlockScope(node, parentNode);
+}
+
+function isIdentifierName(node) {
+ return ts.isIdentifierName(node);
+}
+
+function declarationNameToString(node) {
+ return ts.declarationNameToString(node);
+}
+
+function isInTopLevelContext(node) {
+ return ts.isInTopLevelContext(node);
+}
+
+function isExternalOrCommonJsModule(node) {
+ return ts.isExternalOrCommonJsModule(node);
+}
+
+function skipParentheses(node) {
+ return ts.skipParentheses(node);
+}
+
+function getImmediatelyInvokedFunctionExpression(node) {
+ return ts.getImmediatelyInvokedFunctionExpression(node);
+}
+
+function hasQuestionToken(node) {
+ return ts.hasQuestionToken(node);
+}
+
+function getPropertyNameForPropertyNameNode(name) {
+ return ts.getPropertyNameForPropertyNameNode(name);
+}
+
+function isFunctionBlock(node) {
+ return ts.isFunctionBlock(node);
+}
+
+function isFunctionLike(node) {
+ return ts.isFunctionLike(node);
+}
+
+function getSuperContainer(node, stopOnFunctions) {
+ return ts.getSuperContainer(node, stopOnFunctions);
+}
+
+function getClassExtendsHeritageElement(node) {
+ return ts.getClassExtendsHeritageElement(node);
+}
+
+function hasStaticModifier(node) {
+ return ts.hasStaticModifier(node);
+}
+
+function skipOuterExpressions(node, kinds) {
+ return ts.skipOuterExpressions(node, kinds);
+}
+
+function isSuperCall(node) {
+ return ts.isSuperCall(node);
+}
+
+function isThisIdentifier(node) {
+ return ts.isThisIdentifier(node);
+}
+
+function isThisProperty(node) {
+ return ts.isThisProperty(node);
+}
+
+function isSuperProperty(node) {
+ return ts.isSuperProperty(node);
+}
+
+function getClassExtendsHeritageElement(node) {
+ return ts.getClassExtendsHeritageElement(node);
+}
+
+module.exports = {
+ getSymbol: getSymbol,
+ tsStringToString: tsStringToString,
+ getTextOfIdentifierOrLiteral: getTextOfIdentifierOrLiteral,
+ isJsFile: isJsFile,
+ createEmptyNodeArray: createEmptyNodeArray,
+ getFlowNode: getFlowNode,
+ bindSourceFile: bindSourceFile,
+ createDiagnosticForNode: createDiagnosticForNode,
+ createCompilerDiagnostic: createCompilerDiagnostic,
+ createFileDiagnostic: createFileDiagnostic,
+ isEffectiveStrictModeSourceFile: isEffectiveStrictModeSourceFile,
+ getErrorSpanForNode: getErrorSpanForNode,
+ getSpanOfTokenAtPosition: getSpanOfTokenAtPosition,
+ getContainingClass: getContainingClass,
+ declarationNameToString: declarationNameToString,
+ getContainingFunction: getContainingFunction,
+ isPrologueDirective: isPrologueDirective,
+ getSourceTextOfNodeFromSourceFile: getSourceTextOfNodeFromSourceFile,
+ isAssignmentTarget: isAssignmentTarget,
+ getSourceFileOfNode: getSourceFileOfNode,
+ isIterationStatement: isIterationStatement,
+ getTextOfNode: getTextOfNode,
+ getContainingClass: getContainingClass,
+ nodePosToString: nodePosToString,
+ getContainingFunctionDeclaration: getContainingFunctionDeclaration,
+ tokenToString: tokenToString,
+ getNewTargetContainer: getNewTargetContainer,
+ isLet: isLet,
+ isVarConst: isVarConst,
+ nodeCanBeDecorated: nodeCanBeDecorated,
+ nodeIsPresent: nodeIsPresent,
+ getAllAccessorDeclarations: getAllAccessorDeclarations,
+ modifierToFlag: modifierToFlag,
+ hasSyntacticModifier: hasSyntacticModifier,
+ isAmbientModule: isAmbientModule,
+ isKeyword: isKeyword,
+ getThisContainer: getThisContainer,
+ getEnclosingBlockScopeContainer: getEnclosingBlockScopeContainer,
+ findAncestor: findAncestor,
+ isBlockScope: isBlockScope,
+ isIdentifierName: isIdentifierName,
+ declarationNameToString: declarationNameToString,
+ isInTopLevelContext: isInTopLevelContext,
+ isExternalOrCommonJsModule: isExternalOrCommonJsModule,
+ skipParentheses: skipParentheses,
+ getImmediatelyInvokedFunctionExpression: getImmediatelyInvokedFunctionExpression,
+ hasQuestionToken: hasQuestionToken,
+ getPropertyNameForPropertyNameNode: getPropertyNameForPropertyNameNode,
+ isFunctionBlock: isFunctionBlock,
+ isFunctionLike: isFunctionLike,
+ getSuperContainer: getSuperContainer,
+ getClassExtendsHeritageElement: getClassExtendsHeritageElement,
+ hasStaticModifier: hasStaticModifier,
+ skipOuterExpressions: skipOuterExpressions,
+ isSuperCall: isSuperCall,
+ isThisIdentifier: isThisIdentifier,
+ isThisProperty: isThisProperty,
+ isSuperProperty: isSuperProperty,
+ getClassExtendsHeritageElement: getClassExtendsHeritageElement,
+};
diff --git a/ts2panda/src/lexenv.ts b/ts2panda/src/lexenv.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3193042838a25f81ce0067cc1dbe716719d86ac2
--- /dev/null
+++ b/ts2panda/src/lexenv.ts
@@ -0,0 +1,246 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import ts from "typescript";
+import {
+ loadAccumulator,
+ loadAccumulatorString,
+ loadLexicalVar,
+ storeAccumulator,
+ storeLexicalVar,
+ storeModuleVariable,
+ throwConstAssignment,
+ throwUndefinedIfHole
+} from "./base/bcGenUtil";
+import { CacheList, getVregisterCache } from "./base/vregisterCache";
+import { Compiler } from "./compiler";
+import { NodeKind } from "./debuginfo";
+import {
+ IRNode,
+ VReg
+} from "./irnodes";
+import { PandaGen } from "./pandagen";
+import { Scope } from "./scope";
+import {
+ LocalVariable,
+ ModuleVariable,
+ Variable
+} from "./variable";
+import jshelpers from "./jshelpers";
+
+abstract class VariableAccessBase {
+ variable: Variable;
+ scope: Scope;
+ level: number;
+
+ constructor(scope: Scope, level: number, variable: Variable) {
+ this.variable = variable;
+ this.scope = scope;
+ this.level = level;
+ }
+
+ isLexVar() {
+ return this.variable.isLexVar;
+ }
+
+ getEnvSlotOfVar(): number | undefined {
+ if (this.isLexVar()) {
+ return this.variable.idxLex;
+ }
+
+ return undefined;
+ }
+
+ abstract expand(pandaGen: PandaGen, compiler: Compiler): Array;
+}
+
+export class VariableAccessLoad extends VariableAccessBase {
+ constructor(scope: Scope, level: number, variable: Variable) {
+ super(scope, level, variable);
+ }
+
+ expand(pandaGen: PandaGen): Array {
+ if (this.isLexVar()) {
+ return this.loadLexEnvVar(pandaGen);
+ } else {
+ return this.loadLocalVar(pandaGen);
+ }
+ }
+
+ private loadLocalVar(pandaGen: PandaGen): Array {
+ let insns: Array = new Array();
+ let v = this.variable;
+ let bindVreg = pandaGen.getVregForVariable(v);
+
+ // check TDZ first
+ if (!(v).isInitialized()) {
+ let holeReg = pandaGen.getTemp();
+ insns.push(loadAccumulator(getVregisterCache(pandaGen, CacheList.HOLE)));
+ insns.push(storeAccumulator(holeReg));
+ checkTDZ(pandaGen, holeReg, v.getName(), insns);
+ pandaGen.freeTemps(holeReg);
+ return insns;
+ }
+ insns.push(loadAccumulator(bindVreg));
+
+ return insns;
+ }
+
+ private loadLexEnvVar(pandaGen: PandaGen): Array {
+ let insns: Array = new Array();
+ let v = this.variable;
+
+ let slot = v.idxLex;
+ insns.push(loadLexicalVar(this.level, slot));
+
+ // check TDZ
+ if (v.isLetOrConst()) {
+ let tempReg = pandaGen.getTemp();
+
+ insns.push(storeAccumulator(tempReg));
+ checkTDZ(pandaGen, tempReg, v.getName(), insns);
+ insns.push(loadAccumulator(tempReg));
+ pandaGen.freeTemps(tempReg);
+ }
+
+ return insns;
+ }
+}
+
+export class VariableAcessStore extends VariableAccessBase {
+ node: ts.Node | NodeKind;
+ isDeclaration: boolean;
+ constructor(scope: Scope, level: number, variable: Variable, isDeclaration: boolean, node: ts.Node | NodeKind) {
+ super(scope, level, variable);
+ this.isDeclaration = isDeclaration;
+ this.node = node;
+ }
+
+ expand(pandaGen: PandaGen): Array {
+ if (this.isLexVar()) {
+ return this.storeLexEnvVar(pandaGen);
+ } else {
+ return this.storeLocalVar(pandaGen);
+ }
+ }
+
+ private storeLocalVar(pandaGen: PandaGen): Array {
+ let insns: Array = new Array();
+ let v = this.variable;
+ let bindVreg = pandaGen.getVregForVariable(v);
+
+ if (!this.isDeclaration) {
+ // check TDZ first
+ if (!v.isInitialized()) {
+ let nameReg = pandaGen.getTemp();
+ let tempReg = pandaGen.getTemp();
+ let holeReg = pandaGen.getTemp();
+ insns.push(storeAccumulator(tempReg));
+ insns.push(loadAccumulator(getVregisterCache(pandaGen, CacheList.HOLE)));
+ insns.push(storeAccumulator(holeReg));
+ checkTDZ(pandaGen, holeReg, v.getName(), insns);
+ insns.push(loadAccumulator(tempReg));
+ pandaGen.freeTemps(nameReg, tempReg, holeReg);
+ }
+
+ // check const assignment
+ checkConstAssignment(pandaGen, v, insns, this.node);
+ }
+
+ insns.push(storeAccumulator(bindVreg));
+
+ if (v.isExportVar() && !(v instanceof ModuleVariable)) {
+ insns.push(storeModuleVariable(v.getExportedName()));
+ }
+
+ return insns;
+ }
+
+ private storeLexEnvVar(pandaGen: PandaGen): Array {
+ let insns: Array = new Array();
+ let v = this.variable;
+
+ // save the value first
+ let valueReg: VReg = pandaGen.getTemp();
+ insns.push(storeAccumulator(valueReg));
+
+ let slot = v.idxLex;
+ if (v.isLetOrConst() || v.isClass()) {
+ if (!this.isDeclaration) {
+ let holeReg = pandaGen.getTemp();
+ /**
+ * check TDZ first
+ * If acc == hole -> throw reference error
+ * else -> excute the next insn
+ */
+ insns.push(loadLexicalVar(this.level, slot));
+ insns.push(storeAccumulator(holeReg));
+ checkTDZ(pandaGen, holeReg, v.getName(), insns);
+
+ // const assignment check need to be down after TDZ check
+ checkConstAssignment(pandaGen, v, insns, this.node);
+ pandaGen.freeTemps(holeReg);
+ }
+ }
+
+ insns.push(storeLexicalVar(this.level, slot, valueReg));
+ insns.push(loadAccumulator(valueReg));
+ if (v.isExportVar() && !(v instanceof ModuleVariable)) {
+ insns.push(storeModuleVariable(v.getExportedName()));
+ }
+ pandaGen.freeTemps(valueReg);
+
+ return insns;
+ }
+}
+
+function checkTDZ(pg: PandaGen, holeReg: VReg, name: string, expansion: IRNode[]) {
+ let nameReg = pg.getTemp();
+ expansion.push(loadAccumulatorString(name));
+ expansion.push(storeAccumulator(nameReg));
+ expansion.push(throwUndefinedIfHole(holeReg, nameReg));
+ pg.freeTemps(nameReg);
+}
+
+function checkConstAssignment(pg: PandaGen, v: Variable, expansion: IRNode[], node: ts.Node | NodeKind) {
+ let nameReg = pg.getTemp();
+ if (v.isConst()) {
+ expansion.push(loadAccumulatorString(v.getName()));
+ expansion.push(storeAccumulator(nameReg));
+ expansion.push(throwConstAssignment(nameReg));
+ }
+
+ if (v.isClass() && node != NodeKind.FirstNodeOfFunction &&
+ node != NodeKind.Invalid && node != NodeKind.Normal) {
+ let className = v.getName();
+ while (node) {
+ if (ts.isClassLike(node) && node.name &&
+ jshelpers.getTextOfIdentifierOrLiteral(node.name) == className) {
+ break;
+ }
+
+ node = node.parent;
+ }
+
+ // class name binding inside class is immutable
+ if (node) {
+ expansion.push(loadAccumulatorString(className));
+ expansion.push(storeAccumulator(nameReg));
+ expansion.push(throwConstAssignment(nameReg));
+ }
+ }
+
+ pg.freeTemps(nameReg);
+}
\ No newline at end of file
diff --git a/ts2panda/src/log.ts b/ts2panda/src/log.ts
new file mode 100644
index 0000000000000000000000000000000000000000..33abfb8800b02ea89d6397e20c0b12f42cce4f2c
--- /dev/null
+++ b/ts2panda/src/log.ts
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// singleton to print debug logs
+import { CmdOptions } from "./cmdOptions";
+
+export function LOGD(tag: any, ...args: any[]) {
+ if (CmdOptions.isEnableDebugLog()) {
+ if (tag) {
+ console.log(tag + ": " + args);
+ } else {
+ console.log(args);
+ }
+ }
+}
+
+export function LOGE(tag: any, ...args: any[]) {
+ if (tag) {
+ console.error(tag + ": " + args);
+ } else {
+ console.error(args);
+ }
+}
\ No newline at end of file
diff --git a/ts2panda/src/modules.ts b/ts2panda/src/modules.ts
new file mode 100644
index 0000000000000000000000000000000000000000..705cba7b642e6009c39a8908af94fc0a0a296769
--- /dev/null
+++ b/ts2panda/src/modules.ts
@@ -0,0 +1,131 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as ts from "typescript";
+import { PandaGen } from "./pandagen";
+import jshelpers from "./jshelpers";
+import { LocalVariable, ModuleVariable } from "./variable";
+import { DiagnosticCode, DiagnosticError } from "./diagnostic";
+import { ModuleScope } from "./scope";
+import { Compiler } from "./compiler";
+
+export class ModuleStmt {
+ private node: ts.Node
+ private moduleRequest: string;
+ private namespace: string = "";
+ private bingdingNameMap: Map = new Map();
+ private isCopy: boolean = true;
+
+ constructor(node: ts.Node, moduleRequest: string = "") {
+ this.node = node;
+ this.moduleRequest = moduleRequest;
+ }
+
+ getNode() {
+ return this.node;
+ }
+
+ getModuleRequest() {
+ return this.moduleRequest;
+ }
+
+ addLocalName(localName: string, importName: string) {
+ if (this.bingdingNameMap.has(localName)) {
+ throw new DiagnosticError(this.node, DiagnosticCode.Duplicate_identifier_0, jshelpers.getSourceFileOfNode(this.node), [localName]);
+ }
+ this.bingdingNameMap.set(localName, importName);
+ }
+
+ getBindingNameMap() {
+ return this.bingdingNameMap;
+ }
+
+ setNameSpace(namespace: string) {
+ this.namespace = namespace;
+ }
+
+ getNameSpace() {
+ return this.namespace;
+ }
+
+ setCopyFlag(isCopy: boolean) {
+ this.isCopy = isCopy;
+ }
+
+ getCopyFlag() {
+ return this.isCopy;
+ }
+}
+
+export function setImport(importStmts: Array, moduleScope: ModuleScope, pandagen: PandaGen, compiler: Compiler) {
+ importStmts.forEach((importStmt) => {
+ pandagen.importModule(importStmt.getNode(), importStmt.getModuleRequest());
+ let moduleReg = pandagen.allocLocalVreg();
+ pandagen.storeAccumulator(importStmt.getNode(), moduleReg);
+
+ if (importStmt.getNameSpace()) {
+ let v = moduleScope.findLocal(importStmt.getNameSpace())!;
+ pandagen.storeAccToLexEnv(importStmt.getNode(), moduleScope, 0, v, true);
+ (v).initialize();
+ }
+
+ let bindingNameMap = importStmt.getBindingNameMap();
+ bindingNameMap.forEach((value: string, key: string) => {
+ let v = moduleScope.findLocal(key)!;
+ v.bindModuleVreg(moduleReg);
+ v.setExoticName(value);
+ });
+ })
+}
+
+export function setExportBinding(exportStmts: Array, moduleScope: ModuleScope, pandagen: PandaGen) {
+ exportStmts.forEach((exportStmt) => {
+ if (exportStmt.getModuleRequest()) {
+ pandagen.importModule(exportStmt.getNode(), exportStmt.getModuleRequest());
+ let moduleReg = pandagen.allocLocalVreg();
+ pandagen.storeAccumulator(exportStmt.getNode(), moduleReg);
+
+ if (!exportStmt.getCopyFlag()) {
+ if (exportStmt.getNameSpace()) {
+ pandagen.storeModuleVar(exportStmt.getNode(), exportStmt.getNameSpace());
+ }
+
+ let bindingNameMap = exportStmt.getBindingNameMap();
+ bindingNameMap.forEach((value: string, key: string) => {
+ pandagen.loadModuleVariable(exportStmt.getNode(), moduleReg, value);
+ pandagen.storeModuleVar(exportStmt.getNode(), key);
+ });
+ } else {
+ pandagen.copyModule(exportStmt.getNode(), moduleReg);
+ }
+ } else {
+ let bindingNameMap = exportStmt.getBindingNameMap();
+ bindingNameMap.forEach((value: string, key: string) => {
+ let v = moduleScope.findLocal(value);
+ if (typeof v == 'undefined') {
+ throw new DiagnosticError(exportStmt.getNode(), DiagnosticCode.Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module, jshelpers.getSourceFileOfNode(exportStmt.getNode()), [value]);
+ }
+
+ if (v instanceof ModuleVariable) {
+ pandagen.loadModuleVariable(exportStmt.getNode(), v.getModule(), v.getName());
+ pandagen.storeModuleVar(exportStmt.getNode(), key);
+ } else {
+ (v).setExport();
+ (v).setExportedName(key);
+ }
+ });
+ }
+ })
+}
\ No newline at end of file
diff --git a/ts2panda/src/pandagen.ts b/ts2panda/src/pandagen.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0f545cc00ae87d12f19cefc2b0a0a86bb39d7abd
--- /dev/null
+++ b/ts2panda/src/pandagen.ts
@@ -0,0 +1,1219 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Imlementation of bytecode generator.
+ * The PandaGen works with IR and provides an API
+ * to the compiler.
+ *
+ * This file should not contain imports of TypeScipt's AST nodes.
+ */
+import * as ts from "typescript";
+import {
+ BinaryOperator,
+ PrefixUnaryOperator,
+ SyntaxKind
+} from "typescript";
+import {
+ call,
+ closeIterator,
+ copyDataProperties,
+ copyModuleIntoCurrentModule,
+ creatDebugger,
+ createArrayWithBuffer,
+ createEmptyArray,
+ createEmptyObject,
+ createObjectHavingMethod,
+ createObjectWithBuffer,
+ createObjectWithExcludedKeys,
+ setObjectWithProto,
+ defineClassWithBuffer,
+ defineGetterSetterByValue,
+ deleteObjProperty,
+ getIterator,
+ getIteratorNext,
+ getNextPropName,
+ getPropIterator,
+ importModule,
+ jumpTarget,
+ ldSuperByName,
+ ldSuperByValue,
+ loadAccumulator,
+ loadAccumulatorFloat,
+ loadAccumulatorInt,
+ loadAccumulatorString,
+ loadGlobalVar,
+ loadHomeObject,
+ loadLexicalEnv,
+ loadLexicalVar,
+ loadModuleVarByName,
+ loadObjByIndex,
+ loadObjByName,
+ loadObjByValue,
+ moveVreg,
+ newLexicalEnv,
+ newObject,
+ popLexicalEnv,
+ returnUndefined,
+ storeAccumulator,
+ storeArraySpread,
+ storeGlobalVar,
+ storeLexicalVar,
+ storeModuleVariable,
+ storeObjByIndex,
+ storeObjByName,
+ storeObjByValue,
+ storeOwnByIndex,
+ storeOwnByName,
+ storeOwnByValue,
+ stSuperByName,
+ stSuperByValue,
+ superCall,
+ superCallSpread,
+ throwException,
+ throwDeleteSuperProperty,
+ throwIfNotObject,
+ throwIfSuperNotCorrectCall,
+ throwObjectNonCoercible,
+ throwThrowNotExists,
+ throwUndefinedIfHole,
+ tryLoadGlobalByName,
+ tryLoadGlobalByValue,
+ tryStoreGlobalByName,
+ tryStoreGlobalByValue
+} from "./base/bcGenUtil";
+import {
+ CacheList,
+ getVregisterCache,
+ VregisterCache
+} from "./base/vregisterCache";
+import { CmdOptions } from "./cmdOptions";
+import { Compiler } from "./compiler";
+import {
+ DebugInfo,
+ NodeKind,
+ VariableDebugInfo
+} from "./debuginfo";
+import { isInteger } from "./expression/numericLiteral";
+import { LiteralBuffer } from "./base/literal";
+import {
+ Add2Dyn,
+ And2Dyn,
+ Ashr2Dyn,
+ AsyncFunctionAwaitUncaughtDyn,
+ AsyncFunctionEnterDyn,
+ AsyncFunctionRejectDyn,
+ AsyncFunctionResolveDyn,
+ CallSpread,
+ CopyRestArgs,
+ CreateGeneratorObjDyn,
+ CreateIterResultObjectDyn,
+ DecDyn,
+ DefineAsyncFuncDyn,
+ DefinefuncDyn,
+ DefineGeneratorfuncDyn,
+ DefineMethod,
+ DefineNCFuncDyn,
+ Div2Dyn,
+ EqDyn,
+ ExpDyn,
+ GetResumeModeDyn,
+ GetTemplateObject,
+ GetUnmappedArgs,
+ GreaterDyn,
+ GreaterEqDyn,
+ Imm,
+ IncDyn,
+ InstanceOfDyn,
+ IRNode,
+ IsInDyn,
+ Jeqz,
+ Label,
+ LessDyn,
+ LessEqDyn,
+ Mod2Dyn,
+ Mul2Dyn,
+ NegDyn,
+ NewobjSpread,
+ NotDyn,
+ NotEqDyn,
+ Or2Dyn,
+ ResultType,
+ ResumeGeneratorDyn,
+ ReturnDyn,
+ Shl2Dyn,
+ Shr2Dyn,
+ StrictEqDyn,
+ StrictNotEqDyn,
+ Sub2Dyn,
+ SuspendGeneratorDyn,
+ Toboolean,
+ Tonumber,
+ TypeOfDyn,
+ VReg,
+ Xor2Dyn
+} from "./irnodes";
+import {
+ VariableAccessLoad,
+ VariableAcessStore
+} from "./lexenv";
+import { LOGE } from "./log";
+import {
+ FunctionScope,
+ LoopScope,
+ Scope,
+ VariableScope
+} from "./scope";
+import { CatchTable } from "./statement/tryStatement";
+import {
+ Variable
+} from "./variable";
+
+export class PandaGen {
+ private debugTag: string = "PandaGen";
+ readonly internalName: string;
+ private parametersCount: number;
+ private locals: VReg[] = [];
+ private temps: VReg[] = [];
+ private insns: IRNode[] = [];
+ private scope: Scope | undefined;
+ private vregisterCache: VregisterCache;
+ private catchMap: Map = new Map();
+ private totalRegsNum = 0;
+ // for debug info
+ private variableDebugInfoArray: VariableDebugInfo[] = [];
+ private firstStmt: ts.Statement | undefined;
+ private sourceFileDebugInfo: string = "";
+ private sourceCodeDebugInfo: string | undefined;
+ private icSize: number = 0;
+
+ private static literalArrayBuffer: Array = [];
+
+ constructor(internalName: string, parametersCount: number, scope: Scope | undefined = undefined) {
+ this.internalName = internalName;
+ this.parametersCount = parametersCount;
+ this.scope = scope;
+ this.vregisterCache = new VregisterCache();
+ }
+
+ public getSourceCodeDebugInfo() {
+ return this.sourceCodeDebugInfo;
+ }
+
+ public setSourceCodeDebugInfo(code: string) {
+ this.sourceCodeDebugInfo = code;
+ }
+
+ public getSourceFileDebugInfo() {
+ return this.sourceFileDebugInfo;
+ }
+
+ public setSourceFileDebugInfo(sourceFile: string) {
+ this.sourceFileDebugInfo = sourceFile;
+ }
+
+ static getLiteralArrayBuffer() {
+ return PandaGen.literalArrayBuffer;
+ }
+
+ static clearLiteralArrayBuffer() {
+ PandaGen.literalArrayBuffer = [];
+ }
+
+ getParameterLength() {
+ if (this.scope instanceof FunctionScope) {
+ return this.scope.getParameterLength();
+ }
+ }
+
+ getFuncName() {
+ if (this.scope instanceof FunctionScope) {
+ return this.scope.getFuncName();
+ } else {
+ return "main";
+ }
+ }
+
+ getICSize() {
+ return this.icSize;
+ }
+
+ setICSize(total: number) {
+ this.icSize = total;
+ }
+
+ getFirstStmt() {
+ return this.firstStmt;
+ }
+
+ setFirstStmt(firstStmt: ts.Statement) {
+ if (this.firstStmt) {
+ return;
+ }
+ this.firstStmt = firstStmt;
+ }
+
+ getVregisterCache() {
+ return this.vregisterCache;
+ }
+
+ getCatchMap() {
+ return this.catchMap;
+ }
+
+ getScope(): Scope | undefined {
+ return this.scope;
+ }
+
+ getVariableDebugInfoArray(): VariableDebugInfo[] {
+ return this.variableDebugInfoArray;
+ }
+
+ addDebugVariableInfo(variable: VariableDebugInfo) {
+ this.variableDebugInfoArray.push(variable);
+ }
+
+ allocLocalVreg(): VReg {
+ let vreg = new VReg();
+ this.locals.push(vreg);
+ return vreg;
+ }
+
+ getVregForVariable(v: Variable): VReg {
+ if (v.hasAlreadyBinded()) {
+ return v.getVreg();
+ }
+ let vreg = this.allocLocalVreg();
+ v.bindVreg(vreg);
+ return vreg;
+ }
+
+ getTemp(): VReg {
+ let retval: VReg;
+ if (this.temps.length > 0) {
+ retval = this.temps.shift()!;
+ } else {
+ retval = new VReg();
+ }
+
+ if (CmdOptions.isEnableDebugLog()) {
+ if (retval.getStackTrace() !== undefined) {
+ throw new Error("stack trace of new temp register is not empty");
+ }
+ retval.setStackTrace();
+ }
+ return retval;
+ }
+
+ freeTemps(...temps: VReg[]) {
+ if (CmdOptions.isEnableDebugLog())
+ for (let value of temps)
+ value.setStackTrace(null);
+
+ this.temps.unshift(...temps);
+ }
+
+ getInsns(): IRNode[] {
+ return this.insns;
+ }
+
+ printInsns() {
+ LOGE("function " + this.internalName + "() {");
+ this.getInsns().forEach(ins => {
+ LOGE(ins.toString());
+ })
+ LOGE("}");
+ }
+
+ setTotalRegsNum(num: number) {
+ this.totalRegsNum = num;
+ }
+
+ getTotalRegsNum(): number {
+ return this.totalRegsNum;
+ }
+
+ getParametersCount(): number {
+ return this.parametersCount;
+ }
+
+ getLocals(): VReg[] {
+ return this.locals;
+ }
+
+ getTemps(): VReg[] {
+ return this.temps;
+ }
+
+ storeAccumulator(node: ts.Node | NodeKind, vreg: VReg) {
+ this.add(node, storeAccumulator(vreg));
+ }
+
+ loadAccFromArgs(node: ts.Node) {
+ if ((this.scope).getUseArgs()) {
+ let v = this.scope!.findLocal("arguments");
+ if (v) {
+ let paramVreg = this.getVregForVariable(v);
+ this.getUnmappedArgs(node);
+ this.add(node, storeAccumulator(paramVreg));
+ } else {
+ throw new Error("fail to get arguments");
+ }
+ }
+ }
+
+ deleteObjProperty(node: ts.Node, obj: VReg, prop: VReg) {
+ this.add(node, deleteObjProperty(obj, prop));
+ }
+
+ loadAccumulator(node: ts.Node | NodeKind, vreg: VReg) {
+ this.add(node, loadAccumulator(vreg));
+ }
+
+ createLexEnv(node: ts.Node, env: VReg, scope: VariableScope | LoopScope) {
+ let needCreateNewEnv = scope.need2CreateLexEnv();
+ let numVars = scope.getNumLexEnv();
+ if (needCreateNewEnv) {
+ this.add(
+ node,
+ newLexicalEnv(numVars),
+ storeAccumulator(env)
+ )
+ } else {
+ this.add(
+ node,
+ loadLexicalEnv(),
+ storeAccumulator(env)
+ )
+
+ }
+ }
+
+ popLexicalEnv(node: ts.Node) {
+ this.add(
+ node,
+ popLexicalEnv()
+ )
+ }
+
+ loadAccFromLexEnv(node: ts.Node, scope: Scope, level: number, v: Variable) {
+ let expander = new VariableAccessLoad(scope, level, v);
+ let insns = expander.expand(this);
+ this.add(
+ node,
+ ...insns
+ );
+ }
+
+ storeAccToLexEnv(node: ts.Node | NodeKind, scope: Scope, level: number, v: Variable, isDeclaration: boolean) {
+ let expander = new VariableAcessStore(scope, level, v, isDeclaration, node);
+ let insns = expander.expand(this);
+ this.add(
+ node,
+ ...insns
+ )
+ }
+
+ loadObjProperty(node: ts.Node, obj: VReg, prop: VReg | string | number) {
+ switch (typeof (prop)) {
+ case "number":
+ this.loadObjByIndex(node, obj, prop);
+ break;
+ case "string":
+ this.loadObjByName(node, obj, prop);
+ break;
+ default:
+ this.loadObjByValue(node, obj, prop);
+ }
+ }
+
+ storeObjProperty(node: ts.Node | NodeKind, obj: VReg, prop: VReg | string | number) {
+ switch (typeof (prop)) {
+ case "number":
+ this.storeObjByIndex(node, obj, prop);
+ break;
+ case "string":
+ this.storeObjByName(node, obj, prop);
+ break;
+ default:
+ this.storeObjByValue(node, obj, prop);
+ }
+ }
+
+ storeOwnProperty(node: ts.Node | NodeKind, obj: VReg, prop: VReg | string | number) {
+ if (typeof (prop) == "string") {
+ this.stOwnByName(node, obj, prop);
+ } else if (typeof (prop) == "number") {
+ this.stOwnByIndex(node, obj, prop);
+ } else {
+ this.stOwnByValue(node, obj, prop);
+ }
+ }
+
+ private loadObjByName(node: ts.Node, obj: VReg, string_id: string) {
+ this.add(
+ node,
+ loadObjByName(obj, string_id));
+ }
+
+ private storeObjByName(node: ts.Node | NodeKind, obj: VReg, string_id: string) {
+ this.add(node, storeObjByName(obj, string_id));
+ }
+
+ private loadObjByIndex(node: ts.Node, obj: VReg, index: number) {
+ let indexReg = this.getTemp();
+ if (isInteger(index)) {
+ this.add(
+ node,
+ loadAccumulatorInt(index)
+ );
+ } else {
+ this.add(
+ node,
+ loadAccumulatorFloat(index)
+ );
+ }
+ this.add(
+ node,
+ storeAccumulator(indexReg),
+ loadObjByIndex(obj, indexReg)
+ );
+ this.freeTemps(indexReg);
+ }
+
+ private storeObjByIndex(node: ts.Node | NodeKind, obj: VReg, index: number) {
+ let indexReg = this.getTemp();
+ let valueReg = this.getTemp();
+ this.add(node, storeAccumulator(valueReg));
+ if (isInteger(index)) {
+ this.add(
+ node,
+ loadAccumulatorInt(index)
+ );
+ } else {
+ this.add(
+ node,
+ loadAccumulatorFloat(index)
+ );
+ }
+ this.add(
+ node,
+ storeAccumulator(indexReg),
+ loadAccumulator(valueReg),
+ storeObjByIndex(obj, indexReg));
+ this.freeTemps(indexReg, valueReg);
+ }
+
+
+ private loadObjByValue(node: ts.Node, obj: VReg, value: VReg) {
+ this.add(
+ node,
+ loadObjByValue(obj, value)
+ )
+ }
+
+ private storeObjByValue(node: ts.Node | NodeKind, obj: VReg, prop: VReg) {
+ this.add(
+ node,
+ storeObjByValue(obj, prop)
+ )
+ }
+
+ private stOwnByName(node: ts.Node | NodeKind, obj: VReg, string_id: string) {
+ this.add(node, storeOwnByName(obj, string_id));
+ }
+
+ private stOwnByIndex(node: ts.Node | NodeKind, obj: VReg, index: number) {
+ let indexReg = this.getTemp();
+ let valueReg = this.getTemp();
+ this.add(node, storeAccumulator(valueReg));
+ if (isInteger(index)) {
+ this.add(
+ node,
+ loadAccumulatorInt(index)
+ );
+ } else {
+ this.add(
+ node,
+ loadAccumulatorFloat(index)
+ );
+ }
+ this.add(
+ node,
+ storeAccumulator(indexReg),
+ loadAccumulator(valueReg),
+ storeOwnByIndex(obj, indexReg));
+ this.freeTemps(indexReg, valueReg);
+ }
+
+ private stOwnByValue(node: ts.Node | NodeKind, obj: VReg, value: VReg) {
+ this.add(node, storeOwnByValue(obj, value));
+ }
+
+ tryLoadGlobalByValue(node: ts.Node, key: VReg) {
+ this.add(
+ node,
+ tryLoadGlobalByValue(key)
+ )
+ }
+
+
+ tryStoreGlobalByValue(node: ts.Node, key: VReg) {
+ this.add(
+ node,
+ tryStoreGlobalByValue(key)
+ )
+ }
+
+ // eg. print
+ tryLoadGlobalByName(node: ts.Node, string_id: string) {
+ this.add(
+ node,
+ tryLoadGlobalByName(string_id));
+ }
+
+ // eg. a = 1
+ tryStoreGlobalByName(node: ts.Node, string_id: string) {
+ this.add(node,
+ tryStoreGlobalByName(string_id));
+ }
+
+ // eg. var n; n;
+ loadGlobalVar(node: ts.Node, string_id: string) {
+ this.add(
+ node,
+ loadGlobalVar(string_id));
+ }
+
+ // var n = 1;
+ storeGlobalVar(node: ts.Node | NodeKind, string_id: string) {
+ this.add(
+ node,
+ storeGlobalVar(string_id));
+ }
+
+ loadAccumulatorString(node: ts.Node | NodeKind, str: string) {
+ this.add(node, loadAccumulatorString(str));
+ }
+
+ loadAccumulatorFloat(node: ts.Node, num: number) {
+ this.add(node, loadAccumulatorFloat(num));
+ }
+
+ loadAccumulatorInt(node: ts.Node, num: number) {
+ this.add(node, loadAccumulatorInt(num));
+ }
+
+ moveVreg(node: ts.Node | NodeKind, vd: VReg, vs: VReg) {
+ this.add(node, moveVreg(vd, vs));
+ }
+
+ label(node: ts.Node, label: Label) {
+ this.add(NodeKind.FirstNodeOfFunction, label);
+ }
+
+ branch(node: ts.Node | NodeKind, target: Label) {
+ this.add(node, jumpTarget(target));
+ }
+
+ debugger(node: ts.Node) {
+ this.add(node, creatDebugger());
+ }
+
+ throwUndefinedIfHole(node: ts.Node, hole: VReg, name: VReg) {
+ this.add(
+ node,
+ throwUndefinedIfHole(hole, name)
+ )
+ }
+
+ /**
+ * The method generates code for ther following cases
+ * if (lhs OP acc) {...}
+ * ifFalse: ...
+ */
+ condition(node: ts.Node, op: SyntaxKind, lhs: VReg, ifFalse: Label) {
+ // Please keep order of cases the same as in types.ts
+ switch (op) {
+ case SyntaxKind.LessThanToken: // line 57
+ this.add(node, new LessDyn(lhs));
+ this.add(node, new Jeqz(ifFalse));
+ break;
+ case SyntaxKind.GreaterThanToken: // line 59
+ this.add(node, new GreaterDyn(lhs));
+ this.add(node, new Jeqz(ifFalse));
+ break;
+ case SyntaxKind.LessThanEqualsToken: // line 60
+ this.add(node, new LessEqDyn(lhs));
+ this.add(node, new Jeqz(ifFalse));
+ break;
+ case SyntaxKind.GreaterThanEqualsToken: // line 61
+ this.add(node, new GreaterEqDyn(lhs));
+ this.add(node, new Jeqz(ifFalse));
+ break;
+ case SyntaxKind.EqualsEqualsToken: // line 62
+ this.add(node, new EqDyn(lhs));
+ this.add(node, new Jeqz(ifFalse));
+ break;
+ case SyntaxKind.ExclamationEqualsToken: // line 63
+ this.add(node, new NotEqDyn(lhs));
+ this.add(node, new Jeqz(ifFalse));
+ break;
+ case SyntaxKind.EqualsEqualsEqualsToken: // line 64
+ this.add(node, new StrictEqDyn(lhs));
+ this.add(node, new Jeqz(ifFalse));
+ break;
+ case SyntaxKind.ExclamationEqualsEqualsToken: // line 65
+ this.add(node, new StrictNotEqDyn(lhs));
+ this.add(node, new Jeqz(ifFalse));
+ break;
+ default:
+ throw new Error("unimplemented op");
+ }
+ }
+
+ unary(node: ts.Node, op: PrefixUnaryOperator, operand: VReg) {
+ switch (op) {
+ case SyntaxKind.PlusToken:
+ this.add(node, new Tonumber(operand));
+ break;
+ case SyntaxKind.MinusToken:
+ this.add(node, new NegDyn(operand));
+ break;
+ case SyntaxKind.PlusPlusToken:
+ this.add(node, new IncDyn(operand));
+ break;
+ case SyntaxKind.MinusMinusToken:
+ this.add(node, new DecDyn(operand));
+ break;
+ case SyntaxKind.ExclamationToken:
+ let falseLabel = new Label();
+ let endLabel = new Label();
+ this.toBoolean(node);
+ this.condition(node, SyntaxKind.EqualsEqualsToken, getVregisterCache(this, CacheList.True), falseLabel);
+ // operand is true
+ this.add(node, loadAccumulator(getVregisterCache(this, CacheList.False)));
+ this.branch(node, endLabel);
+ // operand is false
+ this.label(node, falseLabel);
+ this.add(node, loadAccumulator(getVregisterCache(this, CacheList.True)));
+ this.label(node, endLabel);
+ break;
+ case SyntaxKind.TildeToken:
+ this.add(node, new NotDyn(operand));
+ break;
+ default:
+ throw new Error("Unimplemented");
+ }
+ }
+
+ binary(node: ts.Node, op: BinaryOperator, lhs: VReg) {
+ switch (op) {
+ case SyntaxKind.LessThanToken: // line 57
+ case SyntaxKind.GreaterThanToken: // line 59
+ case SyntaxKind.LessThanEqualsToken: // line 60
+ case SyntaxKind.GreaterThanEqualsToken: // line 61
+ case SyntaxKind.EqualsEqualsToken: // line 62
+ case SyntaxKind.ExclamationEqualsToken: // line 63
+ case SyntaxKind.EqualsEqualsEqualsToken: // line 64
+ case SyntaxKind.ExclamationEqualsEqualsToken: // line 65
+ this.binaryRelation(node, op, lhs);
+ break;
+ case SyntaxKind.PlusToken: // line 67
+ case SyntaxKind.PlusEqualsToken: // line 91
+ this.add(node, new Add2Dyn(lhs));
+ break;
+ case SyntaxKind.MinusToken: // line 68
+ case SyntaxKind.MinusEqualsToken: // line 92
+ this.add(node, new Sub2Dyn(lhs));
+ break;
+ case SyntaxKind.AsteriskToken: // line 69
+ case SyntaxKind.AsteriskEqualsToken: // line 93
+ this.add(node, new Mul2Dyn(lhs));
+ break;
+ case SyntaxKind.AsteriskAsteriskToken: // line 70
+ case SyntaxKind.AsteriskAsteriskEqualsToken: // line 94
+ this.add(node, new ExpDyn(lhs));
+ break;
+ case SyntaxKind.SlashToken: // line 71
+ case SyntaxKind.SlashEqualsToken: // line 95
+ this.add(node, new Div2Dyn(lhs));
+ break;
+ case SyntaxKind.PercentToken: // line 72
+ case SyntaxKind.PercentEqualsToken: // line 96
+ this.add(node, new Mod2Dyn(lhs));
+ break;
+ case SyntaxKind.LessThanLessThanToken: // line 75
+ case SyntaxKind.LessThanLessThanEqualsToken: // line 97
+ this.add(node, new Shl2Dyn(lhs));
+ break;
+ case SyntaxKind.GreaterThanGreaterThanToken: // line 76
+ case SyntaxKind.GreaterThanGreaterThanEqualsToken: // line 98
+ this.add(node, new Shr2Dyn(lhs));
+ break;
+ case SyntaxKind.GreaterThanGreaterThanGreaterThanToken: // line 77
+ case SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken: // line 99
+ this.add(node, new Ashr2Dyn(lhs));
+ break;
+ case SyntaxKind.AmpersandToken: // line 78
+ case SyntaxKind.AmpersandEqualsToken: // line 100
+ this.add(node, new And2Dyn(lhs));
+ break;
+ case SyntaxKind.BarToken: // line 79
+ case SyntaxKind.BarEqualsToken: // line 101
+ this.add(node, new Or2Dyn(lhs));
+ break;
+ case SyntaxKind.CaretToken: // line 80
+ case SyntaxKind.CaretEqualsToken: // line 102
+ this.add(node, new Xor2Dyn(lhs));
+ break;
+ case SyntaxKind.InKeyword: //line 125
+ // The in operator returns true if the specified property is in the specified object or its prototype chain
+ this.add(node, new IsInDyn(lhs));
+ break;
+ case SyntaxKind.InstanceOfKeyword: //line 126
+ // The instanceof operator tests to see if the prototype property of
+ // a constructor appears anywhere in the prototype chain of an object.
+ // The return value is a boolean value.
+ this.add(node, new InstanceOfDyn(lhs));
+ break;
+ default:
+ throw new Error("Unimplemented");
+ }
+ }
+
+ // throw needs argument of exceptionVreg
+ // to ensure rethrow the exception after finally
+ throw(node: ts.Node) {
+ this.add(
+ node,
+ throwException()
+ );
+ }
+
+ throwThrowNotExist(node: ts.Node) {
+ this.add(node, throwThrowNotExists());
+ }
+
+ throwDeleteSuperProperty(node: ts.Node) {
+ this.add(node, throwDeleteSuperProperty());
+ }
+
+ return(node: ts.Node | NodeKind) {
+ this.add(node, new ReturnDyn());
+ }
+
+ call(node: ts.Node, args: VReg[], passThis: boolean) {
+ this.add(
+ node,
+ call(args, passThis)
+ )
+ }
+
+ returnUndefined(node: ts.Node | NodeKind) {
+ this.add(
+ node,
+ returnUndefined()
+ )
+ }
+
+ newObject(node: ts.Node, args: VReg[]) {
+ this.add(
+ node,
+ newObject(args)
+ );
+ }
+
+ defineMethod(node: ts.FunctionLikeDeclaration, name: string, objReg: VReg, env: VReg) {
+ this.add(node,
+ loadAccumulator(objReg),
+ new DefineMethod(name, env)
+ );
+ }
+
+ defineFuncDyn(node: ts.FunctionLikeDeclaration | ts.ClassLikeDeclaration | NodeKind, name: string, env: VReg) {
+ this.add(node, new DefinefuncDyn(name, env));
+ }
+
+ defineFunction(node: ts.FunctionLikeDeclaration | ts.ClassLikeDeclaration | NodeKind, realNode: ts.FunctionLikeDeclaration, name: string, env: VReg) {
+ if (realNode.modifiers) {
+ for (let i = 0; i < realNode.modifiers.length; i++) {
+ if (realNode.modifiers[i].kind == ts.SyntaxKind.AsyncKeyword) {
+ if (realNode.asteriskToken) {
+ // support async* further
+ } else { // async
+ this.add(
+ node,
+ new DefineAsyncFuncDyn(name, env)
+ );
+ return;
+ }
+ }
+ }
+ }
+
+ if (realNode.asteriskToken) {
+ this.add(
+ node,
+ new DefineGeneratorfuncDyn(name, env)
+ );
+ return;
+ }
+
+ if (ts.isArrowFunction(realNode) || ts.isMethodDeclaration(realNode)) {
+ this.add(
+ node,
+ loadHomeObject(),
+ new DefineNCFuncDyn(name, env)
+ );
+ return;
+ }
+
+ this.add(
+ node,
+ new DefinefuncDyn(name, env)
+ );
+ }
+
+ typeOf(node: ts.Node) {
+ this.add(node, new TypeOfDyn());
+ }
+
+ callSpread(node: ts.Node, func: VReg, thisReg: VReg, args: VReg) {
+ this.add(node, new CallSpread(func, thisReg, args));
+ }
+
+ newObjSpread(node: ts.Node, obj: VReg, target: VReg) {
+ this.add(node, new NewobjSpread(obj, target));
+ }
+
+ getUnmappedArgs(node: ts.Node) {
+ this.add(node, new GetUnmappedArgs());
+ }
+
+ toBoolean(node: ts.Node) {
+ this.add(node, new Toboolean());
+ }
+
+ toNumber(node: ts.Node, arg: VReg) {
+ this.add(node, new Tonumber(arg));
+ }
+
+ createGeneratorObj(node: ts.Node, funcObj: VReg) {
+ this.add(node, new CreateGeneratorObjDyn(funcObj));
+ }
+
+ createIterResultObjectDyn(node: ts.Node, value: VReg, done: VReg) {
+ this.add(node, new CreateIterResultObjectDyn(value, done));
+ }
+
+ suspendGenerator(node: ts.Node, genObj: VReg, iterRslt: VReg) {
+ this.add(node, new SuspendGeneratorDyn(genObj, iterRslt));
+ }
+
+ resumeGenerator(node: ts.Node, genObj: VReg) {
+ this.add(node, new ResumeGeneratorDyn(genObj));
+ }
+
+ getResumeMode(node: ts.Node, genObj: VReg) {
+ this.add(node, new GetResumeModeDyn(genObj));
+ }
+
+ asyncFunctionEnter(node: ts.Node) {
+ this.add(node, new AsyncFunctionEnterDyn());
+ }
+
+ asyncFunctionAwaitUncaught(node: ts.Node, asynFuncObj: VReg, value: VReg) {
+ this.add(node, new AsyncFunctionAwaitUncaughtDyn(asynFuncObj, value));
+ }
+
+ asyncFunctionResolve(node: ts.Node | NodeKind, asyncObj: VReg, value: VReg, canSuspend: VReg) {
+ this.add(node, new AsyncFunctionResolveDyn(asyncObj, value, canSuspend));
+ }
+
+ asyncFunctionReject(node: ts.Node | NodeKind, asyncObj: VReg, value: VReg, canSuspend: VReg) {
+ this.add(node, new AsyncFunctionRejectDyn(asyncObj, value, canSuspend));
+ }
+
+ getTemplateObject(node: ts.Node | NodeKind, value: VReg) {
+ this.add(node, new GetTemplateObject(value));
+ }
+
+ copyRestArgs(node: ts.Node, index: number) {
+ this.add(node, new CopyRestArgs(new Imm(ResultType.Int, index)));
+ }
+
+ getPropIterator(node: ts.Node) {
+ this.add(node, getPropIterator());
+ }
+
+ getNextPropName(node: ts.Node, iter: VReg) {
+ this.add(node, getNextPropName(iter));
+ }
+
+ createEmptyObject(node: ts.Node) {
+ this.add(node, createEmptyObject());
+ }
+
+ createObjectHavingMethod(node: ts.Node, idx: number, env: VReg) {
+ this.add(
+ node,
+ loadAccumulator(env),
+ createObjectHavingMethod(idx)
+ );
+ }
+
+ createObjectWithBuffer(node: ts.Node, idx: number) {
+ this.add(node, createObjectWithBuffer(idx));
+ }
+
+ setObjectWithProto(node: ts.Node, proto: VReg, object: VReg) {
+ this.add(node, setObjectWithProto(proto, object));
+ }
+
+ copyDataProperties(node: ts.Node, dstObj: VReg, srcObj: VReg) {
+ this.add(node, copyDataProperties(dstObj, srcObj));
+ }
+
+ defineGetterSetterByValue(node: ts.Node, obj: VReg, name: VReg, getter: VReg, setter: VReg, isComputedPropertyName: boolean) {
+ if (isComputedPropertyName) {
+ this.add(node, loadAccumulator(getVregisterCache(this, CacheList.True)));
+ } else {
+ this.add(node, loadAccumulator(getVregisterCache(this, CacheList.False)));
+ }
+ this.add(node, defineGetterSetterByValue(obj, name, getter, setter));
+ }
+
+ createEmptyArray(node: ts.Node) {
+ this.add(node, createEmptyArray());
+ }
+
+ createArrayWithBuffer(node: ts.Node, idx: number) {
+ this.add(node, createArrayWithBuffer(idx));
+ }
+
+ storeArraySpreadElement(node: ts.Node, array: VReg, index: VReg) {
+ this.add(node, storeArraySpread(array, index));
+ }
+
+ storeLexicalVar(node: ts.Node, level: number, slot: number, value: VReg) {
+ this.add(
+ node,
+ storeLexicalVar(level, slot, value)
+ );
+ }
+
+ loadLexicalVar(node: ts.Node, level: number, slot: number) {
+ this.add(
+ node,
+ loadLexicalVar(level, slot)
+ )
+ }
+
+ importModule(node: ts.Node, moduleName: string) {
+ this.add(node, importModule(moduleName));
+ }
+
+ loadModuleVariable(node: ts.Node, module: VReg, varName: string) {
+ this.add(node, loadModuleVarByName(varName, module));
+ }
+
+ storeModuleVar(node: ts.Node, moduleVarName: string) {
+ this.add(node, storeModuleVariable(moduleVarName));
+ }
+
+ copyModule(node: ts.Node, module: VReg) {
+ this.add(node, copyModuleIntoCurrentModule(module));
+ }
+
+ defineClassWithBuffer(node: ts.Node, name: string, idx: number, base: VReg) {
+ this.add(
+ node,
+ defineClassWithBuffer(name, idx, getVregisterCache(this, CacheList.LexEnv), base)
+ )
+ }
+
+ createObjectWithExcludedKeys(node: ts.Node, obj: VReg, args: VReg[]) {
+ this.add(
+ node,
+ createObjectWithExcludedKeys(obj, args)
+ );
+ }
+
+ throwObjectNonCoercible(node: ts.Node) {
+ this.add(
+ node,
+ throwObjectNonCoercible()
+ );
+ }
+
+ getIterator(node: ts.Node) {
+ this.add(
+ node,
+ getIterator()
+ );
+ }
+
+ getIteratorNext(node: ts.Node, iter: VReg, nextMethod: VReg) {
+ this.add(
+ node,
+ getIteratorNext(iter, nextMethod)
+ )
+ }
+
+ closeIterator(node: ts.Node, iter: VReg) {
+ this.add(
+ node,
+ closeIterator(iter)
+ )
+ }
+
+ throwIfNotObject(node: ts.Node, obj: VReg) {
+ this.add(
+ node,
+ throwIfNotObject(obj)
+ );
+ }
+
+ superCall(node: ts.Node, num: number, start: VReg) {
+ this.add(
+ node,
+ superCall(num, start)
+ )
+ }
+
+ superCallSpread(node: ts.Node, vs: VReg) {
+ this.add(node, superCallSpread(vs));
+ }
+
+ ldSuperByName(node: ts.Node, obj: VReg, key: string) {
+ this.add(
+ node,
+ ldSuperByName(obj, key)
+ )
+ }
+
+ stSuperByName(node: ts.Node, obj: VReg, key: string) {
+ this.add(
+ node,
+ stSuperByName(obj, key)
+ )
+ }
+
+ ldSuperByValue(node: ts.Node, obj: VReg, prop: VReg) {
+ this.add(
+ node,
+ ldSuperByValue(obj, prop)
+ )
+ }
+
+ stSuperByValue(node: ts.Node, obj: VReg, prop: VReg) {
+ this.add(
+ node,
+ stSuperByValue(obj, prop)
+ )
+ }
+
+ loadSuperProperty(node: ts.Node, obj: VReg, prop: VReg | string | number) {
+ switch (typeof (prop)) {
+ case "string":
+ this.ldSuperByName(node, obj, prop);
+ break;
+ case "number":
+ let propReg = this.getTemp();
+ this.loadAccumulatorInt(node, prop);
+ this.storeAccumulator(node, propReg);
+ this.ldSuperByValue(node, obj, propReg);
+ this.freeTemps(propReg)
+ break;
+ default:
+ this.ldSuperByValue(node, obj, prop);
+ }
+ }
+
+ throwIfSuperNotCorrectCall(node: ts.Node, num: number) {
+ this.add(node, throwIfSuperNotCorrectCall(num));
+ }
+
+ storeSuperProperty(node: ts.Node, obj: VReg, prop: VReg | string | number) {
+ switch (typeof (prop)) {
+ case "string":
+ this.stSuperByName(node, obj, prop);
+ break;
+ case "number":
+ let propReg = this.getTemp();
+ this.loadAccumulatorInt(node, prop);
+ this.storeAccumulator(node, propReg);
+ this.stSuperByValue(node, obj, propReg);
+ this.freeTemps(propReg)
+ break;
+ default:
+ this.stSuperByValue(node, obj, prop);
+ }
+ }
+
+ loadHomeObject(node: ts.Node) {
+ this.add(
+ node,
+ loadHomeObject()
+ )
+ }
+
+ private binaryRelation(node: ts.Node, op: BinaryOperator, lhs: VReg) {
+ let falseLabel = new Label();
+ let endLabel = new Label();
+ switch (op) {
+ case SyntaxKind.LessThanToken:
+ this.add(node, new LessDyn(lhs));
+ break;
+ case SyntaxKind.GreaterThanToken:
+ this.add(node, new GreaterDyn(lhs));
+ break;
+ case SyntaxKind.LessThanEqualsToken:
+ this.add(node, new LessEqDyn(lhs));
+ break;
+ case SyntaxKind.GreaterThanEqualsToken:
+ this.add(node, new GreaterEqDyn(lhs));
+ break;
+ case SyntaxKind.EqualsEqualsToken:
+ this.add(node, new EqDyn(lhs));
+ break;
+ case SyntaxKind.ExclamationEqualsToken:
+ this.add(node, new NotEqDyn(lhs));
+ break;
+ case SyntaxKind.EqualsEqualsEqualsToken:
+ this.add(node, new StrictEqDyn(lhs));
+ break;
+ case SyntaxKind.ExclamationEqualsEqualsToken:
+ this.add(node, new StrictNotEqDyn(lhs));
+ break;
+ default:
+ throw new Error("unimplemented op");
+ }
+ this.add(node, new Jeqz(falseLabel));
+ this.add(node, loadAccumulator(getVregisterCache(this, CacheList.True)));
+ this.branch(node, endLabel);
+ this.label(node, falseLabel);
+ this.add(node, loadAccumulator(getVregisterCache(this, CacheList.False)));
+ this.label(node, endLabel);
+ }
+
+ private add(node: ts.Node | NodeKind, ...insns: IRNode[]): void {
+ // set pos debug info if debug mode
+ DebugInfo.setDebuginfoForIns(node, ...insns);
+
+ this.insns = this.insns.concat(insns);
+ }
+}
diff --git a/ts2panda/src/pandasm.ts b/ts2panda/src/pandasm.ts
new file mode 100644
index 0000000000000000000000000000000000000000..16167cced9a718518e1e1849f05235e40dfb1a9f
--- /dev/null
+++ b/ts2panda/src/pandasm.ts
@@ -0,0 +1,180 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { DebugPosInfo, VariableDebugInfo } from "./debuginfo";
+import { LiteralBuffer } from "./base/literal";
+
+export class Metadata {
+ public attribute: string;
+
+ constructor(
+ attribute: string = ""
+ ) {
+ this.attribute = attribute;
+ }
+}
+
+export class Signature {
+ public params: number;
+ public retType: string | undefined; // return type is always 'any', so we ignore it in json
+
+ constructor(params: number = 0, retType?: string | undefined) {
+ this.params = params;
+ this.retType = retType;
+ }
+}
+
+export class Ins {
+ public op: string;
+ public regs: Array | undefined;
+ public ids: Array | undefined;
+ public imms: Array