Просмотр исходного кода

[1.8>1.9] [MERGE #4582 @obastemur] More module tests and implement RegisterModuleSource

Merge pull request #4582 from obastemur:module_register__

- Implement RegisterModuleSource
- es6-modules: add more test cases and move it to separate folder

Fixes #4577
obastemur 8 лет назад
Родитель
Сommit
1d521f5052
69 измененных файлов с 3611 добавлено и 151 удалено
  1. 97 38
      bin/ch/WScriptJsrt.cpp
  2. 1 0
      bin/ch/WScriptJsrt.h
  3. 50 1
      bin/ch/stdafx.h
  4. 0 112
      test/es6/rlexe.xml
  5. 0 0
      test/es6module/ModuleCircularBar.js
  6. 0 0
      test/es6module/ModuleCircularFoo.js
  7. 0 0
      test/es6module/ModuleComplexExports.js
  8. 0 0
      test/es6module/ModuleComplexReexports.js
  9. 0 0
      test/es6module/ModuleDefaultExport1.js
  10. 0 0
      test/es6module/ModuleDefaultExport2.js
  11. 0 0
      test/es6module/ModuleDefaultExport3.js
  12. 0 0
      test/es6module/ModuleDefaultExport4.js
  13. 0 0
      test/es6module/ModuleDefaultReexport.js
  14. 0 0
      test/es6module/ModuleReexportDefault.js
  15. 0 0
      test/es6module/ModuleSimpleExport.js
  16. 0 0
      test/es6module/ModuleSimpleReexport.js
  17. 0 0
      test/es6module/ValidExportDefaultStatement1.js
  18. 0 0
      test/es6module/ValidExportDefaultStatement2.js
  19. 0 0
      test/es6module/ValidExportStatements.js
  20. 0 0
      test/es6module/ValidExportStatements2.js
  21. 0 0
      test/es6module/ValidImportStatements.js
  22. 0 0
      test/es6module/ValidReExportStatements.js
  23. 0 0
      test/es6module/bug_OS12095746.baseline
  24. 0 0
      test/es6module/bug_OS12095746.js
  25. 0 0
      test/es6module/bug_OS12095746_mod0.js
  26. 0 0
      test/es6module/bug_OS12095746_mod1.js
  27. 0 0
      test/es6module/bug_OS12095746_mod2.js
  28. 0 0
      test/es6module/bug_OS12095746_moddep.js
  29. 0 0
      test/es6module/bug_OS12113549_module1.js
  30. 0 0
      test/es6module/bug_OS14562349.js
  31. 0 0
      test/es6module/bug_issue_3076.js
  32. 0 0
      test/es6module/dynamic-module-functionality.js
  33. 0 0
      test/es6module/dynamic-module-import-specifier.js
  34. 0 0
      test/es6module/exportmodule.js
  35. 0 0
      test/es6module/module-3250-bug-dep.js
  36. 0 0
      test/es6module/module-3250-bug-dep2.js
  37. 0 0
      test/es6module/module-3250-ext-a.js
  38. 0 0
      test/es6module/module-3250-ext-b.js
  39. 0 0
      test/es6module/module-bugfixes.js
  40. 0 0
      test/es6module/module-functionality.js
  41. 0 0
      test/es6module/module-namespace.js
  42. 0 0
      test/es6module/module-syntax.js
  43. 0 0
      test/es6module/module-syntax1.js
  44. 0 0
      test/es6module/moduleExport1.js
  45. 0 0
      test/es6module/moduleImportTheError.js
  46. 0 0
      test/es6module/moduleThrowAnError.js
  47. 0 0
      test/es6module/moduleUrlInError.js
  48. 0 0
      test/es6module/module_1_2645.js
  49. 0 0
      test/es6module/module_2_2645.js
  50. 0 0
      test/es6module/module_4482_dep1.js
  51. 0 0
      test/es6module/module_4482_dep2.js
  52. 0 0
      test/es6module/module_4482_dep3.js
  53. 0 0
      test/es6module/module_4570_dep1.js
  54. 0 0
      test/es6module/module_4570_dep2.js
  55. 0 0
      test/es6module/moduletest1.js
  56. 0 0
      test/es6module/moduletest2.js
  57. 0 0
      test/es6module/moduletest2_mod0.js
  58. 0 0
      test/es6module/moduletest2_mod1a.js
  59. 0 0
      test/es6module/moduletest2_mod1b.js
  60. 0 0
      test/es6module/moduletest2_mod2a.js
  61. 0 0
      test/es6module/moduletest2_mod2b.js
  62. 0 0
      test/es6module/otherModule.js
  63. 0 0
      test/es6module/passmodule.js
  64. 129 0
      test/es6module/rlexe.xml
  65. 1957 0
      test/es6module/test001.js
  66. 1372 0
      test/es6module/test002.js
  67. 0 0
      test/es6module/testDynamicImportfromModule.js
  68. 0 0
      test/es6module/test_bug_2645.js
  69. 5 0
      test/rlexedirs.xml

+ 97 - 38
bin/ch/WScriptJsrt.cpp

@@ -201,12 +201,19 @@ JsValueRef WScriptJsrt::LoadScriptFileHelper(JsValueRef callee, JsValueRef *argu
             hr = Helpers::LoadScriptFromFile(*fileName, fileContent);
             if (FAILED(hr))
             {
-                fwprintf(stderr, _u("Couldn't load file.\n"));
-            }
-            else
-            {
-                returnValue = LoadScript(callee, *fileName, fileContent, *scriptInjectType ? *scriptInjectType : "self", isSourceModule, WScriptJsrt::FinalizeFree, true);
+                // check if have it registered
+                AutoString *data;
+                if (!SourceMap::Find(fileName, &data))
+                {
+                    fprintf(stderr, "Couldn't load file '%s'\n", fileName.GetString());
+                    IfJsrtErrorSetGo(ChakraRTInterface::JsGetUndefinedValue(&returnValue));
+                    return returnValue;
+                }
+
+                fileContent = data->GetString();
             }
+
+            returnValue = LoadScript(callee, *fileName, fileContent, *scriptInjectType ? *scriptInjectType : "self", isSourceModule, WScriptJsrt::FinalizeFree, true);
         }
     }
 
@@ -395,7 +402,7 @@ JsErrorCode WScriptJsrt::LoadModuleFromString(LPCSTR fileName, LPCSTR fileConten
 
     // ParseModuleSource is sync, while additional fetch & evaluation are async.
     unsigned int fileContentLength = (fileContent == nullptr) ? 0 : (unsigned int)strlen(fileContent);
- 
+
     if (isFile && fullName)
     {
         JsValueRef moduleUrl;
@@ -403,7 +410,7 @@ JsErrorCode WScriptJsrt::LoadModuleFromString(LPCSTR fileName, LPCSTR fileConten
         errorCode = ChakraRTInterface::JsSetModuleHostInfo(requestModule, JsModuleHostInfo_Url, moduleUrl);
         IfJsrtErrorFail(errorCode, errorCode);
     }
- 
+
     errorCode = ChakraRTInterface::JsParseModuleSource(requestModule, dwSourceCookie, (LPBYTE)fileContent,
         fileContentLength, JsParseModuleSourceFlags_DataIsUTF8, &errorObject);
     if ((errorCode != JsNoError) && errorObject != JS_INVALID_REFERENCE && fileContent != nullptr && !HostConfigFlags::flags.IgnoreScriptErrorCode)
@@ -857,6 +864,7 @@ bool WScriptJsrt::Initialize()
     IfFalseGo(WScriptJsrt::InstallObjectsOnObject(wscript, "LoadBinaryFile", LoadBinaryFileCallback));
     IfFalseGo(WScriptJsrt::InstallObjectsOnObject(wscript, "LoadTextFile", LoadTextFileCallback));
     IfFalseGo(WScriptJsrt::InstallObjectsOnObject(wscript, "Flag", FlagCallback));
+    IfFalseGo(WScriptJsrt::InstallObjectsOnObject(wscript, "RegisterModuleSource", RegisterModuleSourceCallback));
 
     // ToDo Remove
     IfFalseGo(WScriptJsrt::InstallObjectsOnObject(wscript, "Edit", EmptyCallback));
@@ -1045,6 +1053,32 @@ void CALLBACK WScriptJsrt::JsContextBeforeCollectCallback(JsRef contextRef, void
 }
 #endif
 
+FileNode * SourceMap::root = nullptr;
+JsValueRef __stdcall WScriptJsrt::RegisterModuleSourceCallback(JsValueRef callee, bool isConstructCall,
+    JsValueRef *arguments, unsigned short argumentCount, void *callbackState)
+{
+    HRESULT hr = E_FAIL;
+    JsValueRef returnValue = JS_INVALID_REFERENCE;
+    JsErrorCode errorCode = JsNoError;
+
+    if (argumentCount < 3)
+    {
+        IfJsrtErrorSetGo(ChakraRTInterface::JsGetUndefinedValue(&returnValue));
+    }
+    else
+    {
+        AutoString fileName;
+        AutoString data;
+        IfJsrtErrorSetGo(fileName.Initialize(arguments[1]));
+        IfJsrtErrorSetGo(data.Initialize(arguments[2]));
+
+        SourceMap::Add(fileName, data);
+    }
+
+Error:
+    return returnValue;
+}
+
 JsValueRef __stdcall WScriptJsrt::LoadTextFileCallback(JsValueRef callee, bool isConstructCall, JsValueRef *arguments, unsigned short argumentCount, void *callbackState)
 {
     HRESULT hr = E_FAIL;
@@ -1069,14 +1103,21 @@ JsValueRef __stdcall WScriptJsrt::LoadTextFileCallback(JsValueRef callee, bool i
 
             if (FAILED(hr))
             {
-                fwprintf(stderr, _u("Couldn't load file.\n"));
-                IfJsrtErrorSetGo(ChakraRTInterface::JsGetUndefinedValue(&returnValue));
-            }
-            else
-            {
-                IfJsrtErrorSetGo(ChakraRTInterface::JsCreateString(
-                    fileContent, lengthBytes, &returnValue));
+                // check if have it registered
+                AutoString *data;
+                if (!SourceMap::Find(fileName, &data))
+                {
+                    fprintf(stderr, "Couldn't load file '%s'\n", fileName.GetString());
+                    IfJsrtErrorSetGo(ChakraRTInterface::JsGetUndefinedValue(&returnValue));
+                    return returnValue;
+                }
+
+                fileContent = data->GetString();
+                lengthBytes = (UINT) data->GetLength();
             }
+
+            IfJsrtErrorSetGo(ChakraRTInterface::JsCreateString(
+                fileContent, lengthBytes, &returnValue));
         }
     }
 
@@ -1094,6 +1135,7 @@ JsValueRef __stdcall WScriptJsrt::LoadBinaryFileCallback(JsValueRef callee,
     HRESULT hr = E_FAIL;
     JsValueRef returnValue = JS_INVALID_REFERENCE;
     JsErrorCode errorCode = JsNoError;
+    bool isHeapAlloc = true;
 
     if (argumentCount < 2)
     {
@@ -1111,29 +1153,42 @@ JsValueRef __stdcall WScriptJsrt::LoadBinaryFileCallback(JsValueRef callee,
             UINT lengthBytes = 0;
 
             hr = Helpers::LoadBinaryFile(*fileName, fileContent, lengthBytes);
+
             if (FAILED(hr))
             {
-                fwprintf(stderr, _u("Couldn't load file.\n"));
+                // check if have it registered
+                AutoString *data;
+                if (!SourceMap::Find(fileName, &data))
+                {
+                    fprintf(stderr, "Couldn't load file '%s'\n", fileName.GetString());
+                    IfJsrtErrorSetGoLabel(ChakraRTInterface::JsGetUndefinedValue(&returnValue), Error);
+                    return returnValue;
+                }
+
+                isHeapAlloc = false;
+                fileContent = data->GetString();
+                lengthBytes = (UINT) data->GetLength();
+            }
+
+            JsValueRef arrayBuffer;
+            IfJsrtErrorSetGoLabel(ChakraRTInterface::JsCreateArrayBuffer(lengthBytes, &arrayBuffer), ErrorStillFree);
+            BYTE* buffer;
+            unsigned int bufferLength;
+            IfJsrtErrorSetGoLabel(ChakraRTInterface::JsGetArrayBufferStorage(arrayBuffer, &buffer, &bufferLength), ErrorStillFree);
+            if (bufferLength < lengthBytes)
+            {
+                fwprintf(stderr, _u("Array buffer size is insufficient to store the binary file.\n"));
             }
             else
             {
-                JsValueRef arrayBuffer;
-                IfJsrtErrorSetGoLabel(ChakraRTInterface::JsCreateArrayBuffer(lengthBytes, &arrayBuffer), ErrorStillFree);
-                BYTE* buffer;
-                unsigned int bufferLength;
-                IfJsrtErrorSetGoLabel(ChakraRTInterface::JsGetArrayBufferStorage(arrayBuffer, &buffer, &bufferLength), ErrorStillFree);
-                if (bufferLength < lengthBytes)
-                {
-                    fwprintf(stderr, _u("Array buffer size is insufficient to store the binary file.\n"));
-                }
-                else
+                if (memcpy_s(buffer, bufferLength, (BYTE*)fileContent, lengthBytes) == 0)
                 {
-                    if (memcpy_s(buffer, bufferLength, (BYTE*)fileContent, lengthBytes) == 0)
-                    {
-                        returnValue = arrayBuffer;
-                    }
+                    returnValue = arrayBuffer;
                 }
+            }
 ErrorStillFree:
+            if (isHeapAlloc)
+            {
                 HeapFree(GetProcessHeap(), 0, (void*)fileContent);
             }
         }
@@ -1365,7 +1420,7 @@ bool WScriptJsrt::PrintException(LPCSTR fileName, JsErrorCode jsErrorCode)
 
                 int line;
                 int column;
-                
+
                 IfJsrtErrorFail(CreatePropertyIdFromString("line", &linePropertyId), false);
                 IfJsrtErrorFail(ChakraRTInterface::JsGetProperty(exception, linePropertyId, &lineProperty), false);
                 IfJsrtErrorFail(ChakraRTInterface::JsNumberToInt(lineProperty, &line), false);
@@ -1551,19 +1606,23 @@ HRESULT WScriptJsrt::ModuleMessage::Call(LPCSTR fileName)
 
             if (FAILED(hr))
             {
-                if (!HostConfigFlags::flags.MuteHostErrorMsgIsEnabled)
+                // check if have it registered
+                AutoString *data;
+                if (!SourceMap::Find(specifierStr, &data))
                 {
-                    fprintf(stderr, "Couldn't load file.\n");
+                    if (!HostConfigFlags::flags.MuteHostErrorMsgIsEnabled)
+                    {
+                        fprintf(stderr, "Couldn't load file '%s'\n", specifierStr.GetString());
+                    }
+                    LoadScript(nullptr, *specifierStr, nullptr, "module", true, WScriptJsrt::FinalizeFree, false);
+                    goto Error;
                 }
-
-                LoadScript(nullptr, *specifierStr, nullptr, "module", true, WScriptJsrt::FinalizeFree, false);
-            }
-            else
-            {
-                LoadScript(nullptr, *specifierStr, fileContent, "module", true, WScriptJsrt::FinalizeFree, true);
+                fileContent = data->GetString();
             }
+            LoadScript(nullptr, *specifierStr, fileContent, "module", true, WScriptJsrt::FinalizeFree, true);
         }
     }
+Error:
     return errorCode;
 }
 

+ 1 - 0
bin/ch/WScriptJsrt.h

@@ -119,6 +119,7 @@ private:
 
     static JsValueRef CALLBACK LoadBinaryFileCallback(JsValueRef callee, bool isConstructCall, JsValueRef *arguments, unsigned short argumentCount, void *callbackState);
     static JsValueRef CALLBACK LoadTextFileCallback(JsValueRef callee, bool isConstructCall, JsValueRef *arguments, unsigned short argumentCount, void *callbackState);
+    static JsValueRef CALLBACK RegisterModuleSourceCallback(JsValueRef callee, bool isConstructCall, JsValueRef *arguments, unsigned short argumentCount, void *callbackState);
     static JsValueRef CALLBACK FlagCallback(JsValueRef callee, bool isConstructCall, JsValueRef *arguments, unsigned short argumentCount, void *callbackState);
 
     static JsValueRef CALLBACK BroadcastCallback(JsValueRef callee, bool isConstructCall, JsValueRef *arguments, unsigned short argumentCount, void *callbackState);

+ 50 - 1
bin/ch/stdafx.h

@@ -181,6 +181,13 @@ public:
         data_wide(nullptr), errorCode(JsNoError), dontFree(false)
     { }
 
+    AutoString(AutoString &autoString):length(autoString.length),
+        data(autoString.data), data_wide(autoString.data_wide),
+        errorCode(JsNoError), dontFree(false)
+    {
+        autoString.dontFree = true; // take over the ownership
+    }
+
     AutoString(JsValueRef value):length(0), data(nullptr),
         data_wide(nullptr), errorCode(JsNoError), dontFree(false)
     {
@@ -279,7 +286,49 @@ public:
     }
 
     char* operator*() { return data; }
-    char** operator&()  { return &data; }
+};
+
+struct FileNode
+{
+    AutoString data;
+    AutoString path;
+    FileNode * next;
+    FileNode(AutoString &path_, AutoString &data_):
+        path(path_), data(data_), next(nullptr) {
+        path_.MakePersistent();
+        data_.MakePersistent();
+    }
+};
+
+class SourceMap
+{
+    static FileNode * root;
+public:
+    static void Add(AutoString &path, AutoString &data)
+    {
+        // SourceMap lifetime == process lifetime
+        FileNode * node = new FileNode(path, data);
+        if (root != nullptr)
+        {
+            node->next = root;
+        }
+        root = node;
+    }
+
+    static bool Find(AutoString &path, AutoString ** out)
+    {
+        FileNode * node = root;
+        while(node != nullptr)
+        {
+            if (strncmp(node->path.GetString(), path.GetString(), path.GetLength()) == 0)
+            {
+                *out = &(node->data);
+                return true;
+            }
+            node = node->next;
+        }
+        return false;
+    }
 };
 
 inline JsErrorCode CreatePropertyIdFromString(const char* str, JsPropertyIdRef *Id)

+ 0 - 112
test/es6/rlexe.xml

@@ -1326,104 +1326,6 @@
       <tags>exclude_dynapogo,exclude_xplat</tags>
     </default>
   </test>
-  <test>
-    <default>
-      <files>moduletest1.js</files>
-      <compile-flags>-ES6Module</compile-flags>
-      <tags>exclude_dynapogo,exclude_sanitize_address</tags>
-    </default>
-  </test>
-  <test>
-    <default>
-      <files>moduletest2.js</files>
-      <compile-flags>-ES6Module</compile-flags>
-      <tags>exclude_dynapogo,exclude_sanitize_address</tags>
-    </default>
-  </test>
-  <test>
-    <default>
-      <files>module-syntax.js</files>
-      <compile-flags>-MuteHostErrorMsg -ES6Module -args summary -endargs</compile-flags>
-      <tags>exclude_dynapogo,exclude_sanitize_address</tags>
-    </default>
-  </test>
-  <test>
-    <default>
-      <files>module-syntax1.js</files>
-      <compile-flags>-ES6Module -args summary -endargs</compile-flags>
-      <tags>exclude_sanitize_address</tags>
-    </default>
-  </test>
-  <test>
-    <default>
-      <files>module-functionality.js</files>
-      <compile-flags>-MuteHostErrorMsg -ES6Module -args summary -endargs</compile-flags>
-      <tags>exclude_dynapogo,exclude_sanitize_address</tags>
-    </default>
-  </test>
-  <test>
-    <default>
-      <files>moduleUrlInError.js</files>
-      <tags>exclude_sanitize_address</tags>
-    </default>
-  </test>
-  <test>
-    <default>
-      <files>dynamic-module-functionality.js</files>
-      <compile-flags>-ES6Module -ESDynamicImport -args summary -endargs</compile-flags>
-      <tags>exclude_sanitize_address</tags>
-    </default>
-  </test>
-  <test>
-    <default>
-      <files>dynamic-module-import-specifier.js</files>
-      <compile-flags>-MuteHostErrorMsg -ESDynamicImport -ES6Module -args summary -endargs</compile-flags>
-      <tags>exclude_sanitize_address</tags>
-    </default>
-  </test>
-  <test>
-    <default>
-      <files>module-syntax.js</files>
-      <compile-flags>-MuteHostErrorMsg -ES6Module -force:deferparse -args summary -endargs</compile-flags>
-      <tags>exclude_sanitize_address</tags>
-    </default>
-  </test>
-  <test>
-    <default>
-      <files>module-syntax1.js</files>
-      <compile-flags>-ES6Module -force:deferparse -args summary -endargs</compile-flags>
-      <tags>exclude_sanitize_address</tags>
-    </default>
-  </test>
-  <test>
-    <default>
-      <files>module-namespace.js</files>
-      <compile-flags>-ES6Module -Es6ToStringTag -args summary -endargs</compile-flags>
-      <tags>exclude_dynapogo,exclude_drt,exclude_sanitize_address</tags>
-    </default>
-  </test>
-  <test>
-    <default>
-      <files>module-bugfixes.js</files>
-      <compile-flags>-MuteHostErrorMsg -ES6Module -args summary -endargs</compile-flags>
-      <tags>exclude_dynapogo,exclude_sanitize_address,bugfix</tags>
-    </default>
-  </test>
-  <test>
-    <default>
-      <files>bug_OS12095746.js</files>
-      <compile-flags>-MuteHostErrorMsg -IgnoreScriptErrorCode -TraceHostCallback -ES6Module -ESDynamicImport</compile-flags>
-      <tags>exclude_dynapogo,exclude_sanitize_address,bugfix,exclude_drt</tags>
-      <baseline>bug_OS12095746.baseline</baseline>
-    </default>
-  </test>
-  <test>
-    <default>
-      <files>test_bug_2645.js</files>
-      <compile-flags>-ES6Module</compile-flags>
-      <tags>exclude_sanitize_address</tags>
-    </default>
-  </test>
   <test>
     <default>
       <files>OS_5500719.js</files>
@@ -1458,13 +1360,6 @@
       <tags>BugFix</tags>
     </default>
   </test>
-  <test>
-    <default>
-      <files>bug_issue_3076.js</files>
-      <compile-flags>-force:deferparse -ESDynamicImport </compile-flags>
-      <tags>BugFix,exclude_sanitize_address</tags>
-    </default>
-  </test>
   <test>
     <default>
       <files>bug_issue_3247.js</files>
@@ -1522,13 +1417,6 @@
       <compile-flags>-force:deferparse -args summary -endargs</compile-flags>
     </default>
   </test>
-  <test>
-    <default>
-      <files>bug_OS14562349.js</files>
-      <tags>BugFix</tags>
-      <compile-flags>-ESDynamicImport -args summary -endargs</compile-flags>
-    </default>
-  </test>
   <test>
     <default>
       <files>DeferParseLambda.js</files>

+ 0 - 0
test/es6/ModuleCircularBar.js → test/es6module/ModuleCircularBar.js


+ 0 - 0
test/es6/ModuleCircularFoo.js → test/es6module/ModuleCircularFoo.js


+ 0 - 0
test/es6/ModuleComplexExports.js → test/es6module/ModuleComplexExports.js


+ 0 - 0
test/es6/ModuleComplexReexports.js → test/es6module/ModuleComplexReexports.js


+ 0 - 0
test/es6/ModuleDefaultExport1.js → test/es6module/ModuleDefaultExport1.js


+ 0 - 0
test/es6/ModuleDefaultExport2.js → test/es6module/ModuleDefaultExport2.js


+ 0 - 0
test/es6/ModuleDefaultExport3.js → test/es6module/ModuleDefaultExport3.js


+ 0 - 0
test/es6/ModuleDefaultExport4.js → test/es6module/ModuleDefaultExport4.js


+ 0 - 0
test/es6/ModuleDefaultReexport.js → test/es6module/ModuleDefaultReexport.js


+ 0 - 0
test/es6/ModuleReexportDefault.js → test/es6module/ModuleReexportDefault.js


+ 0 - 0
test/es6/ModuleSimpleExport.js → test/es6module/ModuleSimpleExport.js


+ 0 - 0
test/es6/ModuleSimpleReexport.js → test/es6module/ModuleSimpleReexport.js


+ 0 - 0
test/es6/ValidExportDefaultStatement1.js → test/es6module/ValidExportDefaultStatement1.js


+ 0 - 0
test/es6/ValidExportDefaultStatement2.js → test/es6module/ValidExportDefaultStatement2.js


+ 0 - 0
test/es6/ValidExportStatements.js → test/es6module/ValidExportStatements.js


+ 0 - 0
test/es6/ValidExportStatements2.js → test/es6module/ValidExportStatements2.js


+ 0 - 0
test/es6/ValidImportStatements.js → test/es6module/ValidImportStatements.js


+ 0 - 0
test/es6/ValidReExportStatements.js → test/es6module/ValidReExportStatements.js


+ 0 - 0
test/es6/bug_OS12095746.baseline → test/es6module/bug_OS12095746.baseline


+ 0 - 0
test/es6/bug_OS12095746.js → test/es6module/bug_OS12095746.js


+ 0 - 0
test/es6/bug_OS12095746_mod0.js → test/es6module/bug_OS12095746_mod0.js


+ 0 - 0
test/es6/bug_OS12095746_mod1.js → test/es6module/bug_OS12095746_mod1.js


+ 0 - 0
test/es6/bug_OS12095746_mod2.js → test/es6module/bug_OS12095746_mod2.js


+ 0 - 0
test/es6/bug_OS12095746_moddep.js → test/es6module/bug_OS12095746_moddep.js


+ 0 - 0
test/es6/bug_OS12113549_module1.js → test/es6module/bug_OS12113549_module1.js


+ 0 - 0
test/es6/bug_OS14562349.js → test/es6module/bug_OS14562349.js


+ 0 - 0
test/es6/bug_issue_3076.js → test/es6module/bug_issue_3076.js


+ 0 - 0
test/es6/dynamic-module-functionality.js → test/es6module/dynamic-module-functionality.js


+ 0 - 0
test/es6/dynamic-module-import-specifier.js → test/es6module/dynamic-module-import-specifier.js


+ 0 - 0
test/es6/exportmodule.js → test/es6module/exportmodule.js


+ 0 - 0
test/es6/module-3250-bug-dep.js → test/es6module/module-3250-bug-dep.js


+ 0 - 0
test/es6/module-3250-bug-dep2.js → test/es6module/module-3250-bug-dep2.js


+ 0 - 0
test/es6/module-3250-ext-a.js → test/es6module/module-3250-ext-a.js


+ 0 - 0
test/es6/module-3250-ext-b.js → test/es6module/module-3250-ext-b.js


+ 0 - 0
test/es6/module-bugfixes.js → test/es6module/module-bugfixes.js


+ 0 - 0
test/es6/module-functionality.js → test/es6module/module-functionality.js


+ 0 - 0
test/es6/module-namespace.js → test/es6module/module-namespace.js


+ 0 - 0
test/es6/module-syntax.js → test/es6module/module-syntax.js


+ 0 - 0
test/es6/module-syntax1.js → test/es6module/module-syntax1.js


+ 0 - 0
test/es6/moduleExport1.js → test/es6module/moduleExport1.js


+ 0 - 0
test/es6/moduleImportTheError.js → test/es6module/moduleImportTheError.js


+ 0 - 0
test/es6/moduleThrowAnError.js → test/es6module/moduleThrowAnError.js


+ 0 - 0
test/es6/moduleUrlInError.js → test/es6module/moduleUrlInError.js


+ 0 - 0
test/es6/module_1_2645.js → test/es6module/module_1_2645.js


+ 0 - 0
test/es6/module_2_2645.js → test/es6module/module_2_2645.js


+ 0 - 0
test/es6/module_4482_dep1.js → test/es6module/module_4482_dep1.js


+ 0 - 0
test/es6/module_4482_dep2.js → test/es6module/module_4482_dep2.js


+ 0 - 0
test/es6/module_4482_dep3.js → test/es6module/module_4482_dep3.js


+ 0 - 0
test/es6/module_4570_dep1.js → test/es6module/module_4570_dep1.js


+ 0 - 0
test/es6/module_4570_dep2.js → test/es6module/module_4570_dep2.js


+ 0 - 0
test/es6/moduletest1.js → test/es6module/moduletest1.js


+ 0 - 0
test/es6/moduletest2.js → test/es6module/moduletest2.js


+ 0 - 0
test/es6/moduletest2_mod0.js → test/es6module/moduletest2_mod0.js


+ 0 - 0
test/es6/moduletest2_mod1a.js → test/es6module/moduletest2_mod1a.js


+ 0 - 0
test/es6/moduletest2_mod1b.js → test/es6module/moduletest2_mod1b.js


+ 0 - 0
test/es6/moduletest2_mod2a.js → test/es6module/moduletest2_mod2a.js


+ 0 - 0
test/es6/moduletest2_mod2b.js → test/es6module/moduletest2_mod2b.js


+ 0 - 0
test/es6/otherModule.js → test/es6module/otherModule.js


+ 0 - 0
test/es6/passmodule.js → test/es6module/passmodule.js


+ 129 - 0
test/es6module/rlexe.xml

@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="utf-8"?>
+<regress-exe>
+  <test>
+    <default>
+      <files>test001.js</files>
+      <baseline/>
+      <compile-flags>-PrintSystemException  -es6module -es6generators -es7asyncawait -ArrayMutationTestSeed:456986689  -maxinterpretcount:1 -maxsimplejitruncount:2 -MinMemOpCount:0 -werexceptionsupport  -bgjit- -loopinterpretcount:1 -off:lossyinttypespec</compile-flags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>test002.js</files>
+      <baseline/>
+      <compile-flags>-PrintSystemException  -es6module -es6generators -es7asyncawait -ArrayMutationTestSeed:1580332815  -maxinterpretcount:1 -maxsimplejitruncount:2 -MinMemOpCount:0 -werexceptionsupport  -MinSwitchJumpTableSize:3 -MaxLinearStringCaseCount:2 -MaxLinearIntCaseCount:2 -force:fieldcopyprop -force:rejit -UseJITTrampoline- -force:fixdataprops -off:stackargopt -force:atom -oopjit- -force:ScriptFunctionWithInlineCache -off:lossyinttypespec -ForceArrayBTree -off:trackintusage -ForceJITCFGCheck -ForceStaticInterpreterThunk -off:cachedScope -off:DelayCapture -off:fefixedmethods -off:ArrayCheckHoist</compile-flags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>moduletest1.js</files>
+      <compile-flags>-ES6Module</compile-flags>
+      <tags>exclude_dynapogo,exclude_sanitize_address</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>moduletest2.js</files>
+      <compile-flags>-ES6Module</compile-flags>
+      <tags>exclude_dynapogo,exclude_sanitize_address</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>module-syntax.js</files>
+      <compile-flags>-MuteHostErrorMsg -ES6Module -args summary -endargs</compile-flags>
+      <tags>exclude_dynapogo,exclude_sanitize_address</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>module-syntax1.js</files>
+      <compile-flags>-ES6Module -args summary -endargs</compile-flags>
+      <tags>exclude_sanitize_address</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>module-functionality.js</files>
+      <compile-flags>-MuteHostErrorMsg -ES6Module -args summary -endargs</compile-flags>
+      <tags>exclude_dynapogo,exclude_sanitize_address</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>moduleUrlInError.js</files>
+      <tags>exclude_sanitize_address</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>dynamic-module-functionality.js</files>
+        <compile-flags>-ES6Module -ESDynamicImport -args summary -endargs</compile-flags>
+      <tags>exclude_sanitize_address</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>dynamic-module-import-specifier.js</files>
+        <compile-flags>-MuteHostErrorMsg -ES6Module -ESDynamicImport -args summary -endargs</compile-flags>
+      <tags>exclude_sanitize_address</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>module-syntax.js</files>
+      <compile-flags>-MuteHostErrorMsg -ES6Module -force:deferparse -args summary -endargs</compile-flags>
+      <tags>exclude_sanitize_address</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>module-syntax1.js</files>
+      <compile-flags>-ES6Module -force:deferparse -args summary -endargs</compile-flags>
+      <tags>exclude_sanitize_address</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>module-namespace.js</files>
+      <compile-flags>-ES6Module -Es6ToStringTag -args summary -endargs</compile-flags>
+      <tags>exclude_dynapogo,exclude_drt,exclude_sanitize_address</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>module-bugfixes.js</files>
+      <compile-flags>-MuteHostErrorMsg -ES6Module -args summary -endargs</compile-flags>
+      <tags>exclude_dynapogo,exclude_sanitize_address,bugfix</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>test_bug_2645.js</files>
+      <compile-flags>-ES6Module</compile-flags>
+      <tags>exclude_sanitize_address</tags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>bug_OS12095746.js</files>
+        <compile-flags>-MuteHostErrorMsg -IgnoreScriptErrorCode -TraceHostCallback -ES6Module -ESDynamicImport</compile-flags>
+      <tags>exclude_dynapogo,exclude_sanitize_address,bugfix,exclude_drt</tags>
+      <baseline>bug_OS12095746.baseline</baseline>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>bug_OS14562349.js</files>
+      <tags>BugFix</tags>
+      <compile-flags>-ESDynamicImport -args summary -endargs</compile-flags>
+    </default>
+  </test>
+  <test>
+    <default>
+      <files>bug_issue_3076.js</files>
+    <compile-flags>-force:deferparse -ESDynamicImport</compile-flags>
+      <tags>BugFix,exclude_sanitize_address</tags>
+    </default>
+  </test>
+</regress-exe>

+ 1957 - 0
test/es6module/test001.js

@@ -0,0 +1,1957 @@
+//-------------------------------------------------------------------------------------------------------
+// Copyright (C) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
+//-------------------------------------------------------------------------------------------------------
+
+WScript.RegisterModuleSource('module0_c30fef70-bb68-4d9e-b3eb-af61d0fdbee0.js', `
+var module0_localbinding_0 = {};
+export { module0_localbinding_0 as default };
+`);
+WScript.RegisterModuleSource('module1_4bc26dce-a547-48ef-811a-bd1717d03cbe.js', `
+var loopInvariant = shouldBailout ? 7 : 8;
+var GiantPrintArray = [];
+__counter++;;
+function makeArrayLength(x) { if(x < 1 || x > 4294967295 || x != x || isNaN(x) || !isFinite(x)) return 100; else return Math.floor(x) & 0xffff; };;
+function leaf() { return 100; };
+class module1BaseClass { };;
+var obj0 = {};
+var protoObj0 = {};
+var obj1 = {};
+var protoObj1 = {};
+var arrObj0 = {};
+var litObj0 = {prop1: 3.14159265358979};
+var litObj1 = {prop0: 0, prop1: 1};
+var arrObj0 = {};
+var func0 = function(argMath87,argMath88 = leaf.call(protoObj1 )){
+  leaf();
+  WScript.Echo(strvar0 =='caller');
+  return (typeof(argMath87)  != 'number') ;
+};
+var func1 = function(argMath89 = (b <<= func0.call(obj0 , ary.length, -3)),argMath90,argMath91){
+  class class12 extends module1BaseClass {
+    constructor (){
+      super();
+      argMath90 >>=(-4.25417462235087E+17 + func0.call(litObj0 , func0.call(protoObj1 , ('{,ëe,' + 'dx$!Çlm!' + protoObj1.prop1), 'caller'), (e++ )));
+      strvar4 = ('{,ëe,' + 'dx$!Çlm!').replace(/a/g, '!Ï'+'µ!'+'5!' + '(!').concat((f ? argMath89 : 65537));
+      if(shouldBailout){
+        return  'somestring'
+      }
+    }
+    set func6 (argMath92){
+      strvar7 = strvar2.concat(-164);
+      return 7.55358946502581E+18;
+    }
+    func7 (argMath93,argMath94 = ((typeof((strvar4.concat(arguments.length) + ('caller' ? strvar4 : i16[(((! g) ? (ary.shift()) : (~ argMath93))) & 255])))  != 'boolean')  * (new module1BaseClass()) + (e <<= (typeof((strvar4.concat(arguments.length) + ('caller' ? strvar4 : i16[(((! g) ? (ary.shift()) : (~ argMath93))) & 255])))  != 'boolean') )),...argArr95){
+      var fPolyProp = function (o) {
+        if (o!==undefined) {
+          WScript.Echo(o.prop0 + ' ' + o.prop1 + ' ' + o.prop2);
+        }
+      };
+      fPolyProp(litObj0);
+      fPolyProp(litObj1);
+
+      return 1322510159;
+    }
+    get func8 (){
+      arrObj0.prop1 %=(('caller' == ui8[(144) & 255]) ^ (obj0.prop1 = (((strvar0).replace(strvar0, strvar2) ? 'caller' : (~ ((-902901476.9 == 65536) ? (obj1.prop0 %= 1271449041.1) : Math.log(b)))) > (ary.slice(13,12)))));
+      obj0 = obj1;
+      arrObj0.prop4 = (obj0.prop0 >= obj0.prop1);
+      strvar1 = strvar7.concat((g === arrObj0.prop1));
+      return 653002063.1;
+    }
+    func9 (argMath96,argMath97 = ((argMath96-- ) * (('caller' << ((argMath89 == b)&&(argMath96 === protoObj1.prop1))) * (arrObj0[(((i8[1260584891.9] >= 0 ? i8[1260584891.9] : 0)) & 0XF)] + argMath96)) + ('caller' instanceof ((typeof EvalError == 'function' ) ? EvalError : Object))),argMath98,argMath99){
+      WScript.Echo(strvar7 !=ui8[(218) & 255]);
+      argMath98 = (argMath98 != -170147366.9);
+      argMath98 =(! -1624275393);
+      argMath99 =(typeof(argMath99)  != 'object') ;
+      return c;
+    }
+  }
+  return (obj1.prop1 != b);
+};
+var func2 = function(argMath100,...argArr101){
+  class class13 {
+    constructor (){
+      c = (('È').replace('È', 'Ã!'+'qÄ'+'U*' + 'é%') ? ((protoObj0.prop1 > arrObj0.prop1)||(argMath100 < argMath100)) : argMath100);
+      var uniqobj17 = {51: (true instanceof ((typeof Object == 'function' ) ? Object : Object)), prop0: (911978738 - /.{2,5}/gmy.test('Ø#$!w' + '#z#¨!!%%')), prop2: Object.create(protoObj0, {}), prop3: func1.call(protoObj1 , arrObj0.prop1, obj0, /^bb.\B./giu), prop4: (new module1BaseClass()), prop5: ui16[((911978738 - /.{2,5}/gmy.test('Ø#$!w' + '#z#¨!!%%'))) & 255], prop6: ((+ -3.48024066844604E+17) * (typeof(argMath100)  == 'string')  - (((~ func1.call(protoObj1 , arrObj0.prop1, obj0, /^bb.\B./giu)) & (-2.97013115046733E+18 + (-- arrObj0.prop0))) ? (new module1BaseClass()) : 186))};
+    }
+    func11 (argMath102 = (ary.shift()),argMath103,argMath104 = ((((arrObj0.prop0 != obj1.prop0)||(arrObj0.prop0 >= arrObj0.prop0)) * ((argArr101[((((Reflect.construct(module1BaseClass)) >= 0 ? (Reflect.construct(module1BaseClass)) : 0)) & 0XF)] <= Math.sqrt((-35 <= ((argMath102 << 2147483647) + (argMath102 = argMath102))))) + ((new module1BaseClass()) === 2147483647))) == argMath103)){
+      if(shouldBailout){
+        return  'somestring'
+      }
+      strvar6 = strvar3[0%strvar3.length];
+      obj1 = arrObj0;
+      return 96152958;
+    }
+    static set func12 (argMath105 = ((~ (Function('') instanceof ((typeof String == 'function' ) ? String : Object))) ? (obj1.length -= arrObj0.prop0) : e)){
+      var strvar9 = ((strvar6).replace(strvar6, strvar5)).replace(strvar6.concat((f + (((new RangeError()) instanceof ((typeof func1 == 'function' ) ? func1 : Object)) ? strvar5 : func1.call(arrObj0 , ((/a/ instanceof ((typeof Error == 'function' ) ? Error : Object)) * ((argMath105 == argMath100) + (- -217))), arrObj0, /(?=\B.)/imy)))), 'È' + 'XvX!');
+      strvar9 = strvar9.substring((strvar9.length)/2,(strvar9.length)/4);
+      strvar9 = strvar0.concat(func1.call(arrObj0 , ((/a/ instanceof ((typeof Error == 'function' ) ? Error : Object)) * ((argMath105 == argMath100) + (- -217))), arrObj0, /(?=\B.)/imy));
+      strvar9 = strvar3 + ary[(2)];
+      strvar5 = strvar1 + -84;
+      h = argArr101[(15)];
+      return 255;
+    }
+    static func13 (){
+      argMath100 = ((protoObj1.prop1 > obj1.prop1) * ((argMath100-- ) - parseInt("-0x32")));
+      return argMath100;
+    }
+    static func14 (argMath106,argMath107,argMath108){
+      var strvar9 = strvar7;
+      if(shouldBailout){
+        return  'somestring'
+      }
+      strvar9 = 'U$'+'!)'+'(<' + '#õ' + (typeof(strvar7)  == 'object') ;
+      argMath106 = obj0.prop0;
+      WScript.Echo(strvar9 !==(argMath108 ? argMath106 : protoObj1.prop0));
+      return argMath108;
+    }
+    static func15 (argMath109 = func1.call(arrObj0 , (Function('') instanceof ((typeof Function == 'function' ) ? Function : Object)), protoObj0, /\w*$/gmy),argMath110,argMath111,...argArr112){
+(Object.defineProperty(arrObj0, 'length', {writable: true, enumerable: false, configurable: true }));
+      arrObj0.length = makeArrayLength((-- obj0.prop0));
+      strvar6 = strvar0[2%strvar0.length];
+      strvar5 = (strvar3).replace(strvar3, 'Ã!'+'qÄ'+'U*' + 'é%') + argMath111;
+      return protoObj1.prop1;
+    }
+  }
+  var reResult0='%$'+'º{'+'%Ã' + 'ûÛ'.search(/(?=\B.)/imy);
+  return (typeof(((strvar7).replace(/a/g, ('È').replace('È', 'Ã!'+'qÄ'+'U*' + 'é%'))).replace((strvar7).replace(/a/g, ('È').replace('È', 'Ã!'+'qÄ'+'U*' + 'é%')), strvar6))  == 'boolean') ;
+};
+var func3 = function(argMath113,argMath114,argMath115,argMath116 = (argMath115 + argMath113)){
+  if((func2.call(arrObj0 , strvar1, ary) && (~ -2147483648))) {
+  }
+  else {
+    return a;
+    strvar4 = strvar5[5%strvar5.length];
+  }
+  return (((- (f64[(68) & 255] ? argMath115 : argMath115)) !== (func0.call(litObj1 , func1.call(protoObj0 , (new func2(strvar4,ary)).prop1 , litObj1, /(?:\s{1,5})/m), arguments[(0)]) ? f64[(68) & 255] : (argMath115 + argMath113))) instanceof ((typeof Error == 'function' ) ? Error : Object));
+};
+var func4 = function(){
+  obj1.prop0 |=(c != d);
+  func2.call(arrObj0 , strvar7, ary);
+  func1.call(litObj0 , (arrObj0.prop1 %= (func2.call(protoObj1 , strvar2, ary) ? (322427898 < 222) : arrObj0[(((-1719618252.9 >= 0 ? -1719618252.9 : 0)) & 0XF)])), litObj0, /\w*$/gmy);
+  return ((typeof(strvar1)  == 'string')  ? i32[(((new module1BaseClass()) ? (+ ((new Error('abc')) instanceof ((typeof Error == 'function' ) ? Error : Object))) : (((new Error('abc')) instanceof ((typeof Error == 'function' ) ? Error : Object)) ? ((i16[(195) & 255]) >= (typeof(arrObj0.prop0)  == 'boolean') ) : (-104 + i32[(53) & 255])))) & 255] : ((((new Error('abc')) instanceof ((typeof Error == 'function' ) ? Error : Object)) ? ((i16[(195) & 255]) >= (typeof(arrObj0.prop0)  == 'boolean') ) : (-104 + i32[(53) & 255])) ^ (typeof('|' + 'w.e!')  != 'undefined') ));
+};
+obj0.method0 = func0;
+obj0.method1 = func3;
+obj1.method0 = func0;
+obj1.method1 = func4;
+arrObj0.method0 = obj1.method0;
+arrObj0.method1 = func1;
+var ary = new Array(10);
+var i8 = new Int8Array(256);
+var i16 = new Int16Array(256);
+var i32 = new Int32Array(256);
+var ui8 = new Uint8Array(256);
+var ui16 = new Uint16Array(256);
+var ui32 = new Uint32Array(256);
+var f32 = new Float32Array(256);
+var f64 = new Float64Array(256);
+var uic8 = new Uint8ClampedArray(256);
+var IntArr0 = new Array(921369286,-173852817,53813199,3584101917151775744,77,-237,-2122643450,-32140187364175240,2147483647,577311958,-6411518294911199232,4294967295,-24022675);
+var IntArr1 = new Array(5836200086927007744,2);
+var FloatArr0 = new Array(-447864429,-1928534699.9,-6.37056506534262E+18,-4.92196016225587E+18,-2.94968807450473E+18,1482319631.1,523262382);
+var VarArr0 = [];
+var a = -8.79554116726933E+18;
+var b = 90;
+var c = 556540024.1;
+var d = -2.81621134091371E+18;
+var e = 3.59653681810537E+18;
+var f = 55;
+var g = false;
+var h = -503129761.9;
+var strvar0 = ',5ã(%' + '(´fY$!*!';
+var strvar1 = 'Ã!'+'qÄ'+'U*' + 'é%';
+var strvar2 = ')!%!+' + 'o!ül#*Ê!';
+var strvar3 = 'f';
+var strvar4 = 'U$'+'!)'+'(<' + '#õ';
+var strvar5 = '|' + 'w.e!';
+var strvar6 = 'd';
+var strvar7 = '³' + '#!c!';
+arrObj0[0] = -714909716;
+arrObj0[1] = 65535;
+arrObj0[2] = 1.52475291138827E+18;
+arrObj0[3] = -729214458;
+arrObj0[4] = 1064996105.1;
+arrObj0[5] = 5.52665884004211E+18;
+arrObj0[6] = -875366864;
+arrObj0[7] = 1.29084665037753E+17;
+arrObj0[8] = 7.72144743500994E+17;
+arrObj0[9] = 965965984;
+arrObj0[10] = -2147483648;
+arrObj0[11] = -52;
+arrObj0[12] = -1293434249.9;
+arrObj0[13] = -2;
+arrObj0[14] = -1073741824;
+arrObj0[arrObj0.length-1] = 476963729;
+arrObj0.length = makeArrayLength(-5.19517384006747E+18);
+ary[0] = 1;
+ary[1] = 31;
+ary[2] = -769472063;
+ary[3] = -2.52709304174521E+18;
+ary[4] = 712116228;
+ary[5] = -437517276;
+ary[6] = 566524026;
+ary[7] = -686650420;
+ary[8] = 97;
+ary[9] = -145;
+ary[10] = 1633071508;
+ary[11] = -68343815;
+ary[12] = -340486995;
+ary[13] = -502599986.9;
+ary[14] = -2147483646;
+ary[ary.length-1] = 908480179;
+ary.length = makeArrayLength(-645955025);
+var protoObj0 = Object.create(obj0);
+var protoObj1 = Object.create(obj1);
+obj0.prop0 = -566160078;
+obj0.prop1 = 3.79126636439559E+17;
+obj0.length = makeArrayLength(1047251188);
+protoObj0.prop0 = -2147483648;
+protoObj0.prop1 = 1517209737;
+protoObj0.length = makeArrayLength(2147483647);
+obj1.prop0 = -1747532298;
+obj1.prop1 = -1073741824;
+obj1.length = makeArrayLength(-4.55127690531929E+18);
+protoObj1.prop0 = -5.28356289627782E+18;
+protoObj1.prop1 = 832438379;
+protoObj1.length = makeArrayLength(475464201);
+arrObj0.prop0 = -173;
+arrObj0.prop1 = 5.15785951505631E+18;
+arrObj0.length = makeArrayLength(-1831508476.9);
+arrObj0.prop4 = -7.74993560169772E+18;
+IntArr1[2] = -1868708746.9;
+FloatArr0[7] = -208232192;
+FloatArr0[8] = -3;
+VarArr0[9] = 8.47245306222751E+18;
+VarArr0[0] = 57674902;
+VarArr0[5] = 1542270638.1;
+VarArr0[8] = 1864952660.1;
+VarArr0[2] = -442977118;
+VarArr0[1] = -1245807097.9;
+VarArr0[6] = 2147483647;
+VarArr0[7] = 65535;
+VarArr0[3] = 466332135;
+VarArr0[4] = -2147483649;
+VarArr0[10] = -1018892154;
+export {  } from 'module0_c30fef70-bb68-4d9e-b3eb-af61d0fdbee0.js';
+import { default as module1_localbinding_0, default as module1_localbinding_1, default as module1_localbinding_2 } from 'module0_c30fef70-bb68-4d9e-b3eb-af61d0fdbee0.js';
+export default module1_localbinding_1 = (new module1BaseClass());
+import { default as module1_localbinding_3, default as module1_localbinding_4 } from 'module0_c30fef70-bb68-4d9e-b3eb-af61d0fdbee0.js';
+export { strvar3 as module1_exportbinding_3, strvar2 as module1_exportbinding_4, strvar6 as module1_exportbinding_5, module1_localbinding_2 as module1_exportbinding_6 };
+WScript.Echo('a = ' + (a|0));
+WScript.Echo('b = ' + (b|0));
+WScript.Echo('c = ' + (c|0));
+WScript.Echo('d = ' + (d|0));
+WScript.Echo('e = ' + (e|0));
+WScript.Echo('f = ' + (f|0));
+WScript.Echo('g = ' + (g|0));
+WScript.Echo('h = ' + (h|0));
+WScript.Echo('module1_localbinding_0 = ' + (module1_localbinding_0|0));
+WScript.Echo('module1_localbinding_1 = ' + (module1_localbinding_1|0));
+WScript.Echo('module1_localbinding_2 = ' + (module1_localbinding_2|0));
+WScript.Echo('module1_localbinding_3 = ' + (module1_localbinding_3|0));
+WScript.Echo('module1_localbinding_4 = ' + (module1_localbinding_4|0));
+WScript.Echo('module1_exportbinding_0 = ' + (module1_exportbinding_0|0));
+WScript.Echo('obj0.prop0 = ' + (obj0.prop0|0));
+WScript.Echo('obj0.prop1 = ' + (obj0.prop1|0));
+WScript.Echo('obj0.length = ' + (obj0.length|0));
+WScript.Echo('protoObj0.prop0 = ' + (protoObj0.prop0|0));
+WScript.Echo('protoObj0.prop1 = ' + (protoObj0.prop1|0));
+WScript.Echo('protoObj0.length = ' + (protoObj0.length|0));
+WScript.Echo('obj1.prop0 = ' + (obj1.prop0|0));
+WScript.Echo('obj1.prop1 = ' + (obj1.prop1|0));
+WScript.Echo('obj1.length = ' + (obj1.length|0));
+WScript.Echo('protoObj1.prop0 = ' + (protoObj1.prop0|0));
+WScript.Echo('protoObj1.prop1 = ' + (protoObj1.prop1|0));
+WScript.Echo('protoObj1.length = ' + (protoObj1.length|0));
+WScript.Echo('arrObj0.prop0 = ' + (arrObj0.prop0|0));
+WScript.Echo('arrObj0.prop1 = ' + (arrObj0.prop1|0));
+WScript.Echo('arrObj0.length = ' + (arrObj0.length|0));
+WScript.Echo('arrObj0.prop4 = ' + (arrObj0.prop4|0));
+WScript.Echo('strvar0 = ' + (strvar0));
+WScript.Echo('strvar1 = ' + (strvar1));
+WScript.Echo('strvar2 = ' + (strvar2));
+WScript.Echo('strvar3 = ' + (strvar3));
+WScript.Echo('strvar4 = ' + (strvar4));
+WScript.Echo('strvar5 = ' + (strvar5));
+WScript.Echo('strvar6 = ' + (strvar6));
+WScript.Echo('strvar7 = ' + (strvar7));
+WScript.Echo('arrObj0[0] = ' + (arrObj0[0]|0));
+WScript.Echo('arrObj0[1] = ' + (arrObj0[1]|0));
+WScript.Echo('arrObj0[2] = ' + (arrObj0[2]|0));
+WScript.Echo('arrObj0[3] = ' + (arrObj0[3]|0));
+WScript.Echo('arrObj0[4] = ' + (arrObj0[4]|0));
+WScript.Echo('arrObj0[5] = ' + (arrObj0[5]|0));
+WScript.Echo('arrObj0[6] = ' + (arrObj0[6]|0));
+WScript.Echo('arrObj0[7] = ' + (arrObj0[7]|0));
+WScript.Echo('arrObj0[8] = ' + (arrObj0[8]|0));
+WScript.Echo('arrObj0[9] = ' + (arrObj0[9]|0));
+WScript.Echo('arrObj0[10] = ' + (arrObj0[10]|0));
+WScript.Echo('arrObj0[11] = ' + (arrObj0[11]|0));
+WScript.Echo('arrObj0[12] = ' + (arrObj0[12]|0));
+WScript.Echo('arrObj0[13] = ' + (arrObj0[13]|0));
+WScript.Echo('arrObj0[14] = ' + (arrObj0[14]|0));
+WScript.Echo('arrObj0[arrObj0.length-1] = ' + (arrObj0[arrObj0.length-1]|0));
+WScript.Echo('arrObj0.length = ' + (arrObj0.length|0));
+WScript.Echo('ary[0] = ' + (ary[0]|0));
+WScript.Echo('ary[1] = ' + (ary[1]|0));
+WScript.Echo('ary[2] = ' + (ary[2]|0));
+WScript.Echo('ary[3] = ' + (ary[3]|0));
+WScript.Echo('ary[4] = ' + (ary[4]|0));
+WScript.Echo('ary[5] = ' + (ary[5]|0));
+WScript.Echo('ary[6] = ' + (ary[6]|0));
+WScript.Echo('ary[7] = ' + (ary[7]|0));
+WScript.Echo('ary[8] = ' + (ary[8]|0));
+WScript.Echo('ary[9] = ' + (ary[9]|0));
+WScript.Echo('ary[10] = ' + (ary[10]|0));
+WScript.Echo('ary[11] = ' + (ary[11]|0));
+WScript.Echo('ary[12] = ' + (ary[12]|0));
+WScript.Echo('ary[13] = ' + (ary[13]|0));
+WScript.Echo('ary[14] = ' + (ary[14]|0));
+WScript.Echo('ary[ary.length-1] = ' + (ary[ary.length-1]|0));
+WScript.Echo('ary.length = ' + (ary.length|0));
+for (var i = 0; i < GiantPrintArray.length; i++) {
+  WScript.Echo(GiantPrintArray[i]);
+  }
+;
+WScript.Echo('sumOfary = ' +  ary.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_ary = ' +  ary.slice(0, 11));;
+WScript.Echo('sumOfIntArr0 = ' +  IntArr0.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_IntArr0 = ' +  IntArr0.slice(0, 11));;
+WScript.Echo('sumOfIntArr1 = ' +  IntArr1.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_IntArr1 = ' +  IntArr1.slice(0, 11));;
+WScript.Echo('sumOfFloatArr0 = ' +  FloatArr0.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_FloatArr0 = ' +  FloatArr0.slice(0, 11));;
+WScript.Echo('sumOfVarArr0 = ' +  VarArr0.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_VarArr0 = ' +  VarArr0.slice(0, 11));;
+`);
+WScript.RegisterModuleSource('module2_8b137f10-0570-45c1-af05-26d02fa88317.js', `
+var loopInvariant = shouldBailout ? 8 : 4;
+var GiantPrintArray = [];
+__counter++;;
+function makeArrayLength(x) { if(x < 1 || x > 4294967295 || x != x || isNaN(x) || !isFinite(x)) return 100; else return Math.floor(x) & 0xffff; };;
+function leaf() { return 100; };
+class module2BaseClass { };;
+var obj0 = {};
+var protoObj0 = {};
+var obj1 = {};
+var protoObj1 = {};
+var arrObj0 = {};
+var litObj0 = {prop1: 3.14159265358979};
+var litObj1 = {prop0: 0, prop1: 1};
+var arrObj0 = {};
+var func0 = function(argMath117,argMath118,argMath119,argMath120 = ('6-Þ!û' + '+Ña¶7(#h'.indexOf((strvar2 + (protoObj1.prop1 ^= ((typeof(argMath119)  == 'number')  >>> 8.75511800249586E+18)))))){
+  var strvar9 = strvar3;
+  leaf.call(litObj0 );
+  return (i16[(165) & 255] || (leaf.call(obj1 ) + argMath120));
+};
+var func1 = function(argMath121){
+  WScript.Echo(strvar2 >(argMath121 = func0.call(obj1 , /^bb.\B./giu, f64[(e) & 255], strvar2, strvar2)));
+  class class14 extends module2BaseClass {
+    constructor (argMath122){
+      super();
+      protoObj0.prop0 =(arrObj0.prop1 === argMath122);
+    }
+    set func6 (argMath123){
+      var strvar9 = strvar4.concat('caller');
+      argMath121 =101798099;
+      return 204;
+    }
+    static get func7 (){
+      var strvar9 = strvar7;
+      strvar9 = strvar9.substring((strvar9.length)/1,(strvar9.length)/1);
+      if(shouldBailout){
+        return  'somestring'
+      }
+(Object.defineProperty(protoObj1, 'prop4', {writable: true, enumerable: false, configurable: true }));
+      protoObj1.prop4 = (typeof(arrObj0.prop0)  != 'string') ;
+      strvar1 = strvar9.concat(-199);
+      var fPolyProp = function (o) {
+        if (o!==undefined) {
+          WScript.Echo(o.prop0 + ' ' + o.prop1 + ' ' + o.prop2);
+        }
+      };
+      fPolyProp(litObj0);
+      fPolyProp(litObj1);
+
+      var strvar10 = (strvar9 + ui8[((new module2BaseClass())) & 255]);
+      strvar10 = strvar10.substring((strvar10.length)/4,(strvar10.length)/2);
+      return 18882563.1;
+    }
+    static func8 (argMath124){
+      WScript.Echo(strvar5 !==argMath124);
+      obj1.prop0 = 'caller';
+      strvar5 = 'w' + '$*s¸' + (protoObj0.prop0 &= 65535);
+      return obj0.prop1;
+    }
+    static func9 (argMath125,argMath126,argMath127,argMath128){
+      strvar3 = strvar0[2%strvar0.length];
+      strvar2 = strvar6.concat((! argMath126));
+      obj1.prop1 =(! 1019377658);
+      return 65535;
+    }
+  }
+  return (protoObj1.prop1 >>= func0.call(obj0 , /(?:\s{1,5})/m, ((obj1.prop0 >= arrObj0.prop0)||(obj1.prop1 > c)), strvar2, ((strvar3 + func0.call(protoObj1 , /^(\s)$/gmyu, -2147483648, strvar2, (new module2BaseClass()))) >= arrObj0[(18)])));
+};
+var func2 = function(argMath129,argMath130,argMath131){
+  var reResult1=/^(\s)$/gmyu.exec('!×'+'!!'+'%#' + '\`!');
+  protoObj0 = protoObj1;
+  return ((argMath129 <<= ((argMath130 != argMath129)&&(protoObj0.prop0 <= protoObj1.prop1))) instanceof ((typeof String == 'function' ) ? String : Object));
+};
+var func3 = function(argMath132 = (new module2BaseClass()),argMath133){
+  if(shouldBailout){
+    return  'somestring'
+  }
+  //ReflectOwnKeys.ecs
+
+  print(Reflect.ownKeys(protoObj1));
+
+  var uniqobj18 = [''];
+  uniqobj18[__counter%uniqobj18.length].toString();
+  return (argMath133 * i16[(83) & 255] - argMath133);
+};
+var func4 = function(){
+  class class15 extends module2BaseClass {
+    func10 (){
+      var t = {prop0: ('!{'+'%%'+'!i' + 'hÃ'.indexOf(strvar7))};
+(Object.defineProperty(litObj0, 'prop1', {writable: true, enumerable: false, configurable: true }));
+      litObj0.prop1 = (c > protoObj1.prop0);
+      return protoObj1.prop0;
+    }
+    func11 (){
+      protoObj1.prop1 -=(~ obj0.prop0);
+      if(shouldBailout){
+        return  'somestring'
+      }
+      WScript.Echo(strvar7 >='caller');
+      WScript.Echo(strvar2 >arrObj0[(2)]);
+      WScript.Echo(strvar3 ===func0.call(arrObj0 , /^(\s)$/gmyu, f, strvar2, uic8.length));
+      protoObj1 = obj1;
+      return protoObj0.prop0;
+    }
+    static func12 (){
+      strvar6 = strvar5[6%strvar5.length];
+      return obj1.prop1;
+    }
+  }
+  if((new module2BaseClass())) {
+    var uniqobj19 = {prop0: (new class15()), prop1: ((obj1.prop1 > d) * func0.call(arrObj0 , /(?:\s{1,5})/m, parseInt("0x56"), strvar3, (c === arrObj0.prop0)) - -2021241070.9), prop2: 'caller', prop3: (func2.call(arrObj0 , parseInt("-0x8AB92DA"), leaf, ((('prop0' in litObj0) * ((ary.pop()) !== (1 / (-661987208 == 0 ? 1 : -661987208))) - ary[(10)]) * ((a === a) - (- (1 / (-661987208 == 0 ? 1 : -661987208)))))) ? (new class15()) : (ary.reverse()))};
+    return -1136765219;
+    WScript.Echo(strvar0 !==func2.call(arrObj0 , parseInt("-0x8AB92DA"), leaf, ((('prop0' in litObj0) * ((ary.pop()) !== (1 / (-661987208 == 0 ? 1 : -661987208))) - ary[(10)]) * ((a === a) - (- (1 / (-661987208 == 0 ? 1 : -661987208)))))));
+    GiantPrintArray.push('strvar7 = ' + (strvar7));
+  }
+  else {
+    return -97;
+    strvar5 = strvar0[6%strvar0.length];
+    if(shouldBailout){
+      return  'somestring'
+    }
+  }
+  var uniqobj20 = [class15];
+  var uniqobj21 = uniqobj20[__counter%uniqobj20.length];
+  uniqobj21.func12();
+  return 156;
+};
+obj0.method0 = func1;
+obj0.method1 = func4;
+obj1.method0 = func2;
+obj1.method1 = obj1.method0;
+arrObj0.method0 = obj1.method1;
+arrObj0.method1 = func1;
+var ary = new Array(10);
+var i8 = new Int8Array(256);
+var i16 = new Int16Array(256);
+var i32 = new Int32Array(256);
+var ui8 = new Uint8Array(256);
+var ui16 = new Uint16Array(256);
+var ui32 = new Uint32Array(256);
+var f32 = new Float32Array(256);
+var f64 = new Float64Array(256);
+var uic8 = new Uint8ClampedArray(256);
+var IntArr0 = new Array(49,200);
+var IntArr1 = new Array(-6215228,-20,-576121884,161,2147483650);
+var FloatArr0 = [2147483647,-3.27757790634056E+18,-145809452,-112];
+var VarArr0 = new Array(strvar2,-2021056373,-2070441080.9,910654270,-243588172,166);
+var a = -156;
+var b = -2147483646;
+var c = 1;
+var d = -6.08413267351703E+18;
+var e = -8.23552029453557E+18;
+var f = -2.12968175172174E+18;
+var g = 844057704;
+var h = -1935022078;
+var strvar0 = 'Z+(#!' + '!Ü,!$*))';
+var strvar1 = '$' + '²N²M';
+var strvar2 = 'É#°%$!j!$E!#³(^';
+var strvar3 = '<!'+'!¥'+'ÿ]' + '8#';
+var strvar4 = '%Ã!,!' + 'X#ÊT9$þ-';
+var strvar5 = 'øØã%I' + 'WÆ|!RÏhí';
+var strvar6 = 'Z+(#!' + '!Ü,!$*))';
+var strvar7 = 'øØã%I' + 'WÆ|!RÏhí';
+arrObj0[0] = -1073741824;
+arrObj0[1] = 220;
+arrObj0[2] = -34912986;
+arrObj0[3] = 232;
+arrObj0[4] = 2147483647;
+arrObj0[5] = 840651514;
+arrObj0[6] = -1248695101;
+arrObj0[7] = -158;
+arrObj0[8] = 5.70052917299591E+18;
+arrObj0[9] = -226;
+arrObj0[10] = -201;
+arrObj0[11] = 111;
+arrObj0[12] = 1689116339.1;
+arrObj0[13] = 929886279;
+arrObj0[14] = 175;
+arrObj0[arrObj0.length-1] = -6.65419301104312E+18;
+arrObj0.length = makeArrayLength(-1);
+ary[0] = -542977354;
+ary[1] = 4294967295;
+ary[2] = -1.36500891757342E+18;
+ary[3] = -156;
+ary[4] = -7.62299249246701E+17;
+ary[5] = 17253738;
+ary[6] = -184;
+ary[7] = 216;
+ary[8] = 999572167;
+ary[9] = -594051950;
+ary[10] = 1.15376239669834E+18;
+ary[11] = 5.45057902856662E+18;
+ary[12] = 2147483647;
+ary[13] = 632769023;
+ary[14] = 406861220.1;
+ary[ary.length-1] = -1492920342.9;
+ary.length = makeArrayLength(-1073741824);
+var protoObj0 = Object.create(obj0);
+var protoObj1 = Object.create(obj1);
+var aliasOfuic8 = uic8;;
+obj0.prop0 = 3;
+obj0.prop1 = -65175290;
+obj0.length = makeArrayLength(-328041668.9);
+protoObj0.prop0 = -1073741824;
+protoObj0.prop1 = 7.81394304112858E+18;
+protoObj0.length = makeArrayLength(1717837004);
+obj1.prop0 = -39;
+obj1.prop1 = 158398902;
+obj1.length = makeArrayLength(-411937310);
+protoObj1.prop0 = 108;
+protoObj1.prop1 = -5.61361307587279E+18;
+protoObj1.length = makeArrayLength(-256);
+arrObj0.prop0 = -245832537;
+arrObj0.prop1 = -666770065;
+arrObj0.length = makeArrayLength(-2147483647);
+FloatArr0[8] = -1073741824;
+FloatArr0[4] = 904222607;
+FloatArr0[5] = -11;
+FloatArr0[7] = -189;
+FloatArr0[6] = 2.3805099861932E+18;
+FloatArr0[9] = 660805078;
+VarArr0[9] = -2145262901.9;
+VarArr0[11] = 1418391883;
+VarArr0[10] = 509992692;
+VarArr0[7] = -760139045;
+VarArr0[8] = -2.8766605761927E+18;
+VarArr0[VarArr0.length] = 7.75503534276333E+18;
+export { e as module2_exportbinding_0, arrObj0 as module2_exportbinding_1, obj0 as module2_exportbinding_2, h as module2_exportbinding_3 };
+WScript.Echo(strvar3 >=((h *= (- -2.15381927547472E+18)) ? (VarArr0.shift()) : 'caller'));
+import { default as module2_localbinding_0, default as module2_localbinding_1, default as module2_localbinding_2 } from 'module0_c30fef70-bb68-4d9e-b3eb-af61d0fdbee0.js';
+export { module1_exportbinding_0 as module2_exportbinding_4, module1_exportbinding_6 as module2_exportbinding_5, module1_exportbinding_4 as module2_exportbinding_6 } from 'module1_4bc26dce-a547-48ef-811a-bd1717d03cbe.js';
+function func13 () {
+}
+var uniqobj22 = new func13();
+import {  } from 'module1_4bc26dce-a547-48ef-811a-bd1717d03cbe.js';
+import {  } from 'module1_4bc26dce-a547-48ef-811a-bd1717d03cbe.js';
+WScript.Echo('a = ' + (a|0));
+WScript.Echo('b = ' + (b|0));
+WScript.Echo('c = ' + (c|0));
+WScript.Echo('d = ' + (d|0));
+WScript.Echo('e = ' + (e|0));
+WScript.Echo('f = ' + (f|0));
+WScript.Echo('g = ' + (g|0));
+WScript.Echo('h = ' + (h|0));
+WScript.Echo('module2_localbinding_0 = ' + (module2_localbinding_0|0));
+WScript.Echo('module2_localbinding_1 = ' + (module2_localbinding_1|0));
+WScript.Echo('module2_localbinding_2 = ' + (module2_localbinding_2|0));
+WScript.Echo('obj0.prop0 = ' + (obj0.prop0|0));
+WScript.Echo('obj0.prop1 = ' + (obj0.prop1|0));
+WScript.Echo('obj0.length = ' + (obj0.length|0));
+WScript.Echo('protoObj0.prop0 = ' + (protoObj0.prop0|0));
+WScript.Echo('protoObj0.prop1 = ' + (protoObj0.prop1|0));
+WScript.Echo('protoObj0.length = ' + (protoObj0.length|0));
+WScript.Echo('obj1.prop0 = ' + (obj1.prop0|0));
+WScript.Echo('obj1.prop1 = ' + (obj1.prop1|0));
+WScript.Echo('obj1.length = ' + (obj1.length|0));
+WScript.Echo('protoObj1.prop0 = ' + (protoObj1.prop0|0));
+WScript.Echo('protoObj1.prop1 = ' + (protoObj1.prop1|0));
+WScript.Echo('protoObj1.length = ' + (protoObj1.length|0));
+WScript.Echo('arrObj0.prop0 = ' + (arrObj0.prop0|0));
+WScript.Echo('arrObj0.prop1 = ' + (arrObj0.prop1|0));
+WScript.Echo('arrObj0.length = ' + (arrObj0.length|0));
+WScript.Echo('strvar0 = ' + (strvar0));
+WScript.Echo('strvar1 = ' + (strvar1));
+WScript.Echo('strvar2 = ' + (strvar2));
+WScript.Echo('strvar3 = ' + (strvar3));
+WScript.Echo('strvar4 = ' + (strvar4));
+WScript.Echo('strvar5 = ' + (strvar5));
+WScript.Echo('strvar6 = ' + (strvar6));
+WScript.Echo('strvar7 = ' + (strvar7));
+WScript.Echo('arrObj0[0] = ' + (arrObj0[0]|0));
+WScript.Echo('arrObj0[1] = ' + (arrObj0[1]|0));
+WScript.Echo('arrObj0[2] = ' + (arrObj0[2]|0));
+WScript.Echo('arrObj0[3] = ' + (arrObj0[3]|0));
+WScript.Echo('arrObj0[4] = ' + (arrObj0[4]|0));
+WScript.Echo('arrObj0[5] = ' + (arrObj0[5]|0));
+WScript.Echo('arrObj0[6] = ' + (arrObj0[6]|0));
+WScript.Echo('arrObj0[7] = ' + (arrObj0[7]|0));
+WScript.Echo('arrObj0[8] = ' + (arrObj0[8]|0));
+WScript.Echo('arrObj0[9] = ' + (arrObj0[9]|0));
+WScript.Echo('arrObj0[10] = ' + (arrObj0[10]|0));
+WScript.Echo('arrObj0[11] = ' + (arrObj0[11]|0));
+WScript.Echo('arrObj0[12] = ' + (arrObj0[12]|0));
+WScript.Echo('arrObj0[13] = ' + (arrObj0[13]|0));
+WScript.Echo('arrObj0[14] = ' + (arrObj0[14]|0));
+WScript.Echo('arrObj0[arrObj0.length-1] = ' + (arrObj0[arrObj0.length-1]|0));
+WScript.Echo('arrObj0.length = ' + (arrObj0.length|0));
+WScript.Echo('ary[0] = ' + (ary[0]|0));
+WScript.Echo('ary[1] = ' + (ary[1]|0));
+WScript.Echo('ary[2] = ' + (ary[2]|0));
+WScript.Echo('ary[3] = ' + (ary[3]|0));
+WScript.Echo('ary[4] = ' + (ary[4]|0));
+WScript.Echo('ary[5] = ' + (ary[5]|0));
+WScript.Echo('ary[6] = ' + (ary[6]|0));
+WScript.Echo('ary[7] = ' + (ary[7]|0));
+WScript.Echo('ary[8] = ' + (ary[8]|0));
+WScript.Echo('ary[9] = ' + (ary[9]|0));
+WScript.Echo('ary[10] = ' + (ary[10]|0));
+WScript.Echo('ary[11] = ' + (ary[11]|0));
+WScript.Echo('ary[12] = ' + (ary[12]|0));
+WScript.Echo('ary[13] = ' + (ary[13]|0));
+WScript.Echo('ary[14] = ' + (ary[14]|0));
+WScript.Echo('ary[ary.length-1] = ' + (ary[ary.length-1]|0));
+WScript.Echo('ary.length = ' + (ary.length|0));
+for (var i = 0; i < GiantPrintArray.length; i++) {
+  WScript.Echo(GiantPrintArray[i]);
+  }
+;
+WScript.Echo('sumOfary = ' +  ary.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_ary = ' +  ary.slice(0, 11));;
+WScript.Echo('sumOfIntArr0 = ' +  IntArr0.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_IntArr0 = ' +  IntArr0.slice(0, 11));;
+WScript.Echo('sumOfIntArr1 = ' +  IntArr1.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_IntArr1 = ' +  IntArr1.slice(0, 11));;
+WScript.Echo('sumOfFloatArr0 = ' +  FloatArr0.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_FloatArr0 = ' +  FloatArr0.slice(0, 11));;
+WScript.Echo('sumOfVarArr0 = ' +  VarArr0.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_VarArr0 = ' +  VarArr0.slice(0, 11));;
+`);
+WScript.RegisterModuleSource('module3_53830194-6bbb-4e4b-a0e5-48f090c58bc5.js', `
+var loopInvariant = shouldBailout ? 3 : 2;
+var GiantPrintArray = [];
+__counter++;;
+function makeArrayLength(x) { if(x < 1 || x > 4294967295 || x != x || isNaN(x) || !isFinite(x)) return 100; else return Math.floor(x) & 0xffff; };;
+function leaf() { return 100; };
+class module3BaseClass { };;
+var obj0 = {};
+var protoObj0 = {};
+var obj1 = {};
+var protoObj1 = {};
+var arrObj0 = {};
+var litObj0 = {prop1: 3.14159265358979};
+var litObj1 = {prop0: 0, prop1: 1};
+var arrObj0 = {};
+var func0 = function(argMath134,argMath135 = (typeof (new leaf()).prop1 ),argMath136 = (((ui8[(Math.round({prop7: (b++ ), prop6: (argMath134 / (204 == 0 ? 1 : 204)), prop5: (655151137 ? argMath134 : argMath135), prop4: ((new RangeError()) instanceof ((typeof RegExp == 'function' ) ? RegExp : Object)), prop3: 'caller', prop2: (c < f), prop1: (argMath135 = argMath134), prop0: leaf.call(litObj1 )})) & 255] ? g : leaf.call(obj0 )) || -735328841) >= ((new RegExp('xyz')) instanceof ((typeof Number == 'function' ) ? Number : Object)))){
+  var __loopvar3 = loopInvariant - 10;
+  LABEL0:
+  for (var _strvar3 in i16) {
+    if(typeof _strvar3 === 'string' && _strvar3.indexOf('method') != -1) continue;
+    if (__loopvar3 >= loopInvariant + -3) break;
+    __loopvar3 += 3;
+    i16[_strvar3] = leaf();
+  }
+  var strvar9 = strvar0;
+  strvar9 = strvar9.substring((strvar9.length)/4,(strvar9.length)/3);
+  return -1355887234;
+};
+var func1 = function(){
+  return g;
+};
+var func2 = function(argMath137,argMath138,argMath139){
+  return 'caller';
+};
+var func3 = function(){
+  var func5 = async (argMath140 = (g === arrObj0.prop1),argMath141) => {
+    if(shouldBailout){
+      return  'somestring'
+    }
+    g &=func0.call(protoObj1 , obj1, arguments[(3)], (f <<= ('=!'+'#I'+'ìl' + 'éÒ'.indexOf('­Nw#' + 'P,-%!bh+'))));
+    var v = (typeof(argMath141)  == 'boolean') ;
+    var strvar9 = strvar5;
+    if(shouldBailout){
+      return  'somestring'
+    }
+    return     await (-- f);
+    }
+  if((protoObj1.prop1 + (/a/ instanceof ((typeof Boolean == 'function' ) ? Boolean : Object)))) {
+    var uniqobj23 = {lf0: {prop0: -46, prop1: 178, length: -3.94041175986451E+18 , method0: func1, method1: func5}};
+    if(shouldBailout){
+      return  'somestring'
+    }
+    var strvar9 = ('V!þ²!­]«!#Ç!++$').replace(strvar0, 'D('+')ü'+'!Y' + 'ª.');
+    strvar9 = strvar9.substring((strvar9.length)/2,(strvar9.length)/4);
+  }
+  else {
+  }
+  WScript.Echo(strvar7 ===(((new Error('abc')) instanceof ((typeof Boolean == 'function' ) ? Boolean : Object)) === (++ arrObj0.prop0)));
+  return 1604656268.1;
+};
+var func4 = function(argMath142 = (ary[((((ary.shift()) >= 0 ? (ary.shift()) : 0)) & 0XF)] || -1346076001.9),argMath143,argMath144){
+  return i16[(38) & 255];
+};
+obj0.method0 = func3;
+obj0.method1 = obj0.method0;
+obj1.method0 = obj0.method0;
+obj1.method1 = func3;
+arrObj0.method0 = func0;
+arrObj0.method1 = obj0.method0;
+var ary = new Array(10);
+var i8 = new Int8Array(256);
+var i16 = new Int16Array(256);
+var i32 = new Int32Array(256);
+var ui8 = new Uint8Array(256);
+var ui16 = new Uint16Array(256);
+var ui32 = new Uint32Array(256);
+var f32 = new Float32Array(256);
+var f64 = new Float64Array(256);
+var uic8 = new Uint8ClampedArray(256);
+var IntArr0 = new Array();
+var IntArr1 = [-2043878326,77,-530133672600011520,1073741823,-1133614366,-6014909246758133760,5271528068470378496];
+var FloatArr0 = new Array(-2,-2.00889256568232E+18,2147483647,-167,622923917.1,4.78809143856786E+18,-307737959);
+var VarArr0 = ['\`' + '.$+Ð',-1214675798,-1979158660.9,797341338,-1036570365,-1.72061319476266E+18,4586541608294704640,82,89,0,1073741823,922127558,179,-44];
+var a = 3;
+var b = -68;
+var c = 3;
+var d = -61;
+var e = -2147483647;
+var f = -424778268;
+var g = -3.01699184080999E+18;
+var h = 4294967295;
+var strvar0 = '=!'+'#I'+'ìl' + 'éÒ';
+var strvar1 = ';!'+'!t'+'+%' + ',A';
+var strvar2 = 'V!þ²!­]«!#Ç!++$';
+var strvar3 = '\`' + '.$+Ð';
+var strvar4 = 'y#'+'mG'+'B!' + '9R';
+var strvar5 = '¶';
+var strvar6 = 'V!þ²!­]«!#Ç!++$';
+var strvar7 = 'Y!'+'Êa'+'T!' + 'IT';
+arrObj0[0] = 1370379925.1;
+arrObj0[1] = 673468634;
+arrObj0[2] = 3;
+arrObj0[3] = 5.31635086971615E+18;
+arrObj0[4] = 1618875023.1;
+arrObj0[5] = 189935959;
+arrObj0[6] = -1.26228164073488E+18;
+arrObj0[7] = -603815743;
+arrObj0[8] = 0;
+arrObj0[9] = -491000551;
+arrObj0[10] = -1096873373;
+arrObj0[11] = 498488262;
+arrObj0[12] = -329635316;
+arrObj0[13] = -842915097;
+arrObj0[14] = 6.34073397670534E+18;
+arrObj0[arrObj0.length-1] = -1.74048200624669E+18;
+arrObj0.length = makeArrayLength(2.99456427474991E+18);
+ary[0] = -2147483649;
+ary[1] = 116;
+ary[2] = -94;
+ary[3] = 166;
+ary[4] = -5.55011863813426E+18;
+ary[5] = -9.10794148970794E+18;
+ary[6] = 900855335;
+ary[7] = 73058294;
+ary[8] = 1.48379004568504E+17;
+ary[9] = 679332417;
+ary[10] = -531114652;
+ary[11] = 737373722.1;
+ary[12] = 0;
+ary[13] = -290993719.9;
+ary[14] = -225;
+ary[ary.length-1] = -136877334;
+ary.length = makeArrayLength(21);
+var protoObj0 = Object.create(obj0);
+var protoObj1 = Object.create(obj1);
+obj0.prop0 = -103;
+obj0.prop1 = -233;
+obj0.length = makeArrayLength(-5.01946834858957E+18);
+protoObj0.prop0 = 1073741823;
+protoObj0.prop1 = 1553661441.1;
+protoObj0.length = makeArrayLength(4.65322549682375E+18);
+obj1.prop0 = 0;
+obj1.prop1 = 891127080;
+obj1.length = makeArrayLength(-1543139939.9);
+protoObj1.prop0 = -175;
+protoObj1.prop1 = -2147483649;
+protoObj1.length = makeArrayLength(93);
+arrObj0.prop0 = -1073741824;
+arrObj0.prop1 = -158;
+arrObj0.length = makeArrayLength(61);
+IntArr0[0] = -1.27117999390664E+18;
+FloatArr0[8] = 65537;
+FloatArr0[7] = 2147483647;
+FloatArr0[9] = -116583682;
+FloatArr0[10] = -26746124;
+export {  } from 'module1_4bc26dce-a547-48ef-811a-bd1717d03cbe.js';
+import { module2_exportbinding_1 as module3_localbinding_0, module2_exportbinding_4 as module3_localbinding_1 } from 'module2_8b137f10-0570-45c1-af05-26d02fa88317.js';
+var reResult2=/^bb.\B./giu.exec(strvar6);
+strvar5 = strvar5[5%strvar5.length];
+export {  };
+export { module3_localbinding_0 as module3_exportbinding_0, arrObj0 as module3_exportbinding_1, arrObj0 as module3_exportbinding_2 };
+import { module2_exportbinding_0 as module3_localbinding_2, module2_exportbinding_1 as module3_localbinding_3 } from 'module2_8b137f10-0570-45c1-af05-26d02fa88317.js';
+WScript.Echo('a = ' + (a|0));
+WScript.Echo('b = ' + (b|0));
+WScript.Echo('c = ' + (c|0));
+WScript.Echo('d = ' + (d|0));
+WScript.Echo('e = ' + (e|0));
+WScript.Echo('f = ' + (f|0));
+WScript.Echo('g = ' + (g|0));
+WScript.Echo('h = ' + (h|0));
+WScript.Echo('module3_localbinding_0 = ' + (module3_localbinding_0|0));
+WScript.Echo('module3_localbinding_1 = ' + (module3_localbinding_1|0));
+WScript.Echo('module3_localbinding_2 = ' + (module3_localbinding_2|0));
+WScript.Echo('module3_localbinding_3 = ' + (module3_localbinding_3|0));
+WScript.Echo('obj0.prop0 = ' + (obj0.prop0|0));
+WScript.Echo('obj0.prop1 = ' + (obj0.prop1|0));
+WScript.Echo('obj0.length = ' + (obj0.length|0));
+WScript.Echo('protoObj0.prop0 = ' + (protoObj0.prop0|0));
+WScript.Echo('protoObj0.prop1 = ' + (protoObj0.prop1|0));
+WScript.Echo('protoObj0.length = ' + (protoObj0.length|0));
+WScript.Echo('obj1.prop0 = ' + (obj1.prop0|0));
+WScript.Echo('obj1.prop1 = ' + (obj1.prop1|0));
+WScript.Echo('obj1.length = ' + (obj1.length|0));
+WScript.Echo('protoObj1.prop0 = ' + (protoObj1.prop0|0));
+WScript.Echo('protoObj1.prop1 = ' + (protoObj1.prop1|0));
+WScript.Echo('protoObj1.length = ' + (protoObj1.length|0));
+WScript.Echo('arrObj0.prop0 = ' + (arrObj0.prop0|0));
+WScript.Echo('arrObj0.prop1 = ' + (arrObj0.prop1|0));
+WScript.Echo('arrObj0.length = ' + (arrObj0.length|0));
+WScript.Echo('strvar0 = ' + (strvar0));
+WScript.Echo('strvar1 = ' + (strvar1));
+WScript.Echo('strvar2 = ' + (strvar2));
+WScript.Echo('strvar3 = ' + (strvar3));
+WScript.Echo('strvar4 = ' + (strvar4));
+WScript.Echo('strvar5 = ' + (strvar5));
+WScript.Echo('strvar6 = ' + (strvar6));
+WScript.Echo('strvar7 = ' + (strvar7));
+WScript.Echo('arrObj0[0] = ' + (arrObj0[0]|0));
+WScript.Echo('arrObj0[1] = ' + (arrObj0[1]|0));
+WScript.Echo('arrObj0[2] = ' + (arrObj0[2]|0));
+WScript.Echo('arrObj0[3] = ' + (arrObj0[3]|0));
+WScript.Echo('arrObj0[4] = ' + (arrObj0[4]|0));
+WScript.Echo('arrObj0[5] = ' + (arrObj0[5]|0));
+WScript.Echo('arrObj0[6] = ' + (arrObj0[6]|0));
+WScript.Echo('arrObj0[7] = ' + (arrObj0[7]|0));
+WScript.Echo('arrObj0[8] = ' + (arrObj0[8]|0));
+WScript.Echo('arrObj0[9] = ' + (arrObj0[9]|0));
+WScript.Echo('arrObj0[10] = ' + (arrObj0[10]|0));
+WScript.Echo('arrObj0[11] = ' + (arrObj0[11]|0));
+WScript.Echo('arrObj0[12] = ' + (arrObj0[12]|0));
+WScript.Echo('arrObj0[13] = ' + (arrObj0[13]|0));
+WScript.Echo('arrObj0[14] = ' + (arrObj0[14]|0));
+WScript.Echo('arrObj0[arrObj0.length-1] = ' + (arrObj0[arrObj0.length-1]|0));
+WScript.Echo('arrObj0.length = ' + (arrObj0.length|0));
+WScript.Echo('ary[0] = ' + (ary[0]|0));
+WScript.Echo('ary[1] = ' + (ary[1]|0));
+WScript.Echo('ary[2] = ' + (ary[2]|0));
+WScript.Echo('ary[3] = ' + (ary[3]|0));
+WScript.Echo('ary[4] = ' + (ary[4]|0));
+WScript.Echo('ary[5] = ' + (ary[5]|0));
+WScript.Echo('ary[6] = ' + (ary[6]|0));
+WScript.Echo('ary[7] = ' + (ary[7]|0));
+WScript.Echo('ary[8] = ' + (ary[8]|0));
+WScript.Echo('ary[9] = ' + (ary[9]|0));
+WScript.Echo('ary[10] = ' + (ary[10]|0));
+WScript.Echo('ary[11] = ' + (ary[11]|0));
+WScript.Echo('ary[12] = ' + (ary[12]|0));
+WScript.Echo('ary[13] = ' + (ary[13]|0));
+WScript.Echo('ary[14] = ' + (ary[14]|0));
+WScript.Echo('ary[ary.length-1] = ' + (ary[ary.length-1]|0));
+WScript.Echo('ary.length = ' + (ary.length|0));
+for (var i = 0; i < GiantPrintArray.length; i++) {
+  WScript.Echo(GiantPrintArray[i]);
+  }
+;
+WScript.Echo('sumOfary = ' +  ary.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_ary = ' +  ary.slice(0, 11));;
+WScript.Echo('sumOfIntArr0 = ' +  IntArr0.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_IntArr0 = ' +  IntArr0.slice(0, 11));;
+WScript.Echo('sumOfIntArr1 = ' +  IntArr1.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_IntArr1 = ' +  IntArr1.slice(0, 11));;
+WScript.Echo('sumOfFloatArr0 = ' +  FloatArr0.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_FloatArr0 = ' +  FloatArr0.slice(0, 11));;
+WScript.Echo('sumOfVarArr0 = ' +  VarArr0.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_VarArr0 = ' +  VarArr0.slice(0, 11));;
+WScript.Echo('sumOfreResult2 = ' + !reResult2 ? 'null' :  reResult2.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_reResult2 = ' + !reResult2 ? 'null' :  reResult2.slice(0, 11));;
+`);
+WScript.LoadScriptFile('module3_53830194-6bbb-4e4b-a0e5-48f090c58bc5.js', 'module');
+
+const oldEcho = WScript.Echo;
+console.log = print = WScript.Echo = (...args) => {
+  oldEcho(...(args.map(a => {
+    return a.toString().replace(/,{10,}/g, m => `{,${m.length}}`);
+  })));
+};;
+var shouldBailout = false;
+var runningJITtedCode = false;
+var reuseObjects = false;
+var randomGenerator = function(inputseed) {
+    var seed = inputseed;
+    return function() {
+    // Robert Jenkins' 32 bit integer hash function.
+    seed = ((seed + 0x7ed55d16) + (seed << 12))  & 0xffffffff;
+    seed = ((seed ^ 0xc761c23c) ^ (seed >>> 19)) & 0xffffffff;
+    seed = ((seed + 0x165667b1) + (seed << 5))   & 0xffffffff;
+    seed = ((seed + 0xd3a2646c) ^ (seed << 9))   & 0xffffffff;
+    seed = ((seed + 0xfd7046c5) + (seed << 3))   & 0xffffffff;
+    seed = ((seed ^ 0xb55a4f09) ^ (seed >>> 16)) & 0xffffffff;
+    return (seed & 0xfffffff) / 0x10000000;
+    };
+};;
+var intArrayCreatorCount = 0;
+function GenerateArray(seed, arrayType, arraySize, missingValuePercent, typeOfDeclaration) {
+   Math.random = randomGenerator(seed);
+   var result, codeToExecute, thisArrayName, maxMissingValues = Math.floor(arraySize * missingValuePercent), noOfMissingValuesAdded = 0;
+   var contents = [];
+   var isVarArray = arrayType == 'var';
+   function IsMissingValue(allowedMissingValues) {
+       return Math.floor(Math.random() * 100) < allowedMissingValues
+   }
+
+   thisArrayName = 'tempIntArr' + intArrayCreatorCount++;
+
+   for (var arrayIndex = 0; arrayIndex < arraySize; arrayIndex++) {
+       if (isVarArray && arrayIndex != 0) {
+           arrayType = Math.floor(Math.random() * 100) < 50 ? 'int' : 'float';
+       }
+
+       if(noOfMissingValuesAdded < maxMissingValues && IsMissingValue(missingValuePercent)) {
+           noOfMissingValuesAdded++;
+           contents.push('');
+       } else {
+           var randomValueGenerated;
+           if (arrayType == 'int') {
+               randomValueGenerated = Math.floor(Math.random() * seed);
+           } else if (arrayType == 'float') {
+               randomValueGenerated = Math.random() * seed;
+           } else if (arrayType == 'var') {
+               randomValueGenerated = '\'' + (Math.random() * seed).toString(36) + '\'';
+           }
+           contents.push(randomValueGenerated);
+       }
+   }
+
+   if(contents.length == 1 && typeOfDeclaration == 'constructor') {
+       contents.push(Math.floor(Math.random() * seed));
+   }
+   if(typeOfDeclaration == 'literal') {
+       codeToExecute = 'var ' + thisArrayName + ' = [' + contents.join() + '];';
+   } else {
+       codeToExecute = 'var ' + thisArrayName + ' = new Array(' + contents.join() + ');';
+   }
+
+   codeToExecute += 'result =  ' + thisArrayName + ';';
+   eval(codeToExecute);
+   return result;
+}
+;
+
+function getRoundValue(n) {
+  if(n % 1 == 0) // int number
+    return n % 2147483647;
+  else // float number
+    return n.toFixed(8);
+ return n;
+};
+
+var print = WScript.Echo;
+WScript.Echo = function(n) { if(!n) print(n); else print(formatOutput(n.toString())); };
+
+function formatOutput(n) {{
+ return n.replace(/[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/g, function(match) {{return getRoundValue(parseFloat(match));}} );
+}};
+function sumOfArrayElements(prev, curr, index, array) {
+    return (typeof prev == "number" && typeof curr == "number") ? curr + prev : 0
+}
+;
+var __counter = 0;
+function test0(){
+  var loopInvariant = shouldBailout ? 5 : 11;
+  var GiantPrintArray = [];
+  __counter++;;
+  function makeArrayLength(x) { if(x < 1 || x > 4294967295 || x != x || isNaN(x) || !isFinite(x)) return 100; else return Math.floor(x) & 0xffff; };;
+  function leaf() { return 100; };
+  class BaseClass { };;
+  var obj0 = {};
+  var protoObj0 = {};
+  var obj1 = {};
+  var protoObj1 = {};
+  var arrObj0 = {};
+  var litObj0 = {prop1: 3.14159265358979};
+  var litObj1 = {prop0: 0, prop1: 1};
+  var arrObj0 = {};
+  var func0 = function(){
+    var strvar9 = strvar6;
+    return ('E'.indexOf('$'));
+  };
+  var func1 = function(){
+    var uniqobj0 = {76: (Object.create({34: ((new BaseClass()) ? (this.prop1 + (+ (typeof(arrObj0.prop0)  == 'object') )) : (ary.reverse())), prop0: (typeof(arrObj0.prop0)  == 'object') , prop2: (ary.reverse()), prop3: ((Reflect.construct(BaseClass)) * ((a = 9) - ""))}, {}) ? (((new BaseClass()) ? (this.prop1 + (+ (typeof(arrObj0.prop0)  == 'object') )) : (ary.reverse())) | func0.call(arrObj0 )) : parseInt("2QHXJLJ", 34)), prop0: ary[(17)], prop1: arrObj0.prop0, prop2: (ary.reverse()), prop3: h, prop4: ary[(17)], prop5: arrObj0[(((((new BaseClass()) ? (+ (typeof(arrObj0.prop0)  == 'object') ) : -2) >= 0 ? ((new BaseClass()) ? (+ (typeof(arrObj0.prop0)  == 'object') ) : -2) : 0)) & 0XF)], prop6: 2138416323};
+    strvar7 = strvar6 + (arrObj0[(14)] >>> i8.length);
+    class class0 {
+      constructor (argMath0,argMath1 = ((argMath0 >>> arrObj0[((((Reflect.construct(BaseClass)) >= 0 ? (Reflect.construct(BaseClass)) : 0)) & 0XF)]) * ui32[('caller') & 255] - ((new Error('abc')) instanceof ((typeof Error == 'function' ) ? Error : Object))),argMath2){
+        arrObj0 = obj0;
+        strvar0 = strvar3[3%strvar3.length];
+        protoObj0 = arrObj0;
+      }
+      func6 (){
+        strvar1 = (strvar1).replace(strvar1, '%È'+'÷7'+'($' + ')ð').concat((ary.reverse()));
+        WScript.Echo(strvar7 <=(new.target ? new.target : protoObj1.prop0));
+        arrObj0 = arrObj0;
+        strvar7 = strvar5[6%strvar5.length];
+        strvar4 = '!>#!#' + 'e%%.à6$(' + func0.call(obj1 );
+        return new.target;
+      }
+      static func7 (){
+        strvar2 = strvar2.concat((1 instanceof ((typeof RegExp == 'function' ) ? RegExp : Object)));
+        return -957388289.9;
+      }
+      static func8 (argMath3,argMath4){
+        var strvar9 = '!K##*' + '!.!Á!!aØ';
+        strvar9 = strvar9.substring((strvar9.length)/3,(strvar9.length)/3);
+        return -244;
+        WScript.Echo(strvar9 ===26);
+        return -1.27140288777015E+18;
+      }
+      static func9 (){
+        return a;
+        var fPolyProp = function (o) {
+          if (o!==undefined) {
+            WScript.Echo(o.prop0 + ' ' + o.prop1 + ' ' + o.prop2);
+          }
+        };
+        fPolyProp(uniqobj0);
+        fPolyProp(litObj0);
+        fPolyProp(litObj1);
+
+        obj1 = obj0;
+        var fPolyProp = function (o) {
+          if (o!==undefined) {
+            WScript.Echo(o.prop0 + ' ' + o.prop1 + ' ' + o.prop2);
+          }
+        };
+        fPolyProp(uniqobj0);
+        fPolyProp(litObj0);
+        fPolyProp(litObj1);
+
+        return -2;
+      }
+      static func10 (argMath5,argMath6 = func0.call(uniqobj0 ),argMath7 = (typeof((func0.call(litObj1 ) ? i32[(arrObj0.prop0) & 255] : ui16[(33) & 255]))  == 'number') ){
+        WScript.Echo(strvar1 !=(new.target instanceof ((typeof Object == 'function' ) ? Object : Object)));
+        WScript.Echo(strvar6 ===738261810);
+        var strvar9 = 'iE$%6' + 't(i+ø1#%';
+        strvar9 = strvar9[2%strvar9.length];
+        var strvar10 = ('·' + 'º$$h' + (ary.unshift(arguments[(((254142947.1 >= 0 ? 254142947.1 : 0)) & 0XF)], (((typeof (-- argMath5)) * (strvar1 + (+ strvar6))) ? strvar3.replace(/^(\s)$/gmyu,strvar2) : ((d++ ) ? (argMath7 = ('!1A!!' + '­qÊ#!q.,' + new.target)) : (argMath7 !== 'caller'))), f64[230], (arguments[(2)] ? g : 'caller'), (~ argMath6), (arrObj0.prop1 |= 'caller'), new.target, (typeof(uniqobj0.prop2)  == 'boolean') , -1073741824)));
+        strvar10 = strvar10.substring((strvar10.length)/1,(strvar10.length)/1);
+        return 208;
+      }
+    }
+    return parseInt("-14D92LSSOH3K0", 35);
+  };
+  var func2 = function(){
+    obj1.prop5=((typeof((this.prop0 === -267694940))  == 'number')  * ((-5.38327058993804E+17 instanceof ((typeof Function == 'function' ) ? Function : Object)) + ('iE$%6' + 't(i+ø1#%'.indexOf('%È'+'÷7'+'($' + ')ð'))));
+    return obj1.prop0;
+    return ((c++ ) << (typeof(d)  == 'undefined') );
+  };
+  var func3 = function(argMath8 = ('.N'+'L¶'+'¹+' + ':»').replace('$', (strvar6 + ((new EvalError()) instanceof ((typeof Number == 'function' ) ? Number : Object)))),argMath9){
+    class class1 extends BaseClass {
+      constructor (){
+        super();
+        var strvar9 = strvar2;
+        strvar9 = strvar9.substring((strvar9.length)/2,(strvar9.length)/3);
+        var strvar10 = strvar2.concat(strvar2).concat((i16[((protoObj1.prop0 >>= (new BaseClass()))) & 255] >>> (typeof ((new Array()) instanceof ((typeof func0 == 'function' ) ? func0 : Object)))));
+        strvar10 = strvar10.substring((strvar10.length)/3,(strvar10.length)/1);
+        WScript.Echo(strvar7 >(-1148924051 * arrObj0.prop1 - argMath8));
+      }
+      func12 (argMath10,argMath11){
+        arguments[((((argMath10 * new.target - ((argMath11 != argMath10)||(argMath11 != argMath11))) >= 0 ? (argMath10 * new.target - ((argMath11 != argMath10)||(argMath11 != argMath11))) : 0)) & 0XF)] = argMath11;
+        GiantPrintArray.push('argMath11 = ' + (argMath11));
+        strvar0 = strvar7 + Math.abs(824264046);
+        WScript.Echo(strvar0 !==(argMath11++ ));
+        var uniqobj1 = Object.create(obj1);
+        return 237;
+      }
+      func13 (argMath12,argMath13 = ((h <<= strvar7.concat(arguments[(3)])) >>> (((argMath12 <= argMath12)&&(argMath12 >= b)) * (((argMath12-- ) ? (protoObj1.length-- ) : (typeof(protoObj1.prop0)  == 'number') ) + strvar7.concat(arguments[(3)]))))){
+        obj0.length= makeArrayLength((typeof(protoObj1.prop0)  == 'number') );
+        arrObj0.prop0 =new.target;
+        if(shouldBailout){
+          return  'somestring'
+        }
+(Object.defineProperty(obj0, 'prop0', {writable: true, enumerable: false, configurable: true }));
+        obj0.prop0 = f32.length;
+        return -248983642;
+      }
+      func14 (){
+        strvar6 = strvar1.concat((ary.push(i32.length, (new.target % 5.12071490839023E+18), i32.length, (ary.push(strvar1, (argMath8 * (g - -790385379)), i16[(65) & 255], ui8[104]))
+, arguments[(((-110307129 >= 0 ? -110307129 : 0)) & 0XF)], (new.target instanceof ((typeof Error == 'function' ) ? Error : Object))))
+);
+(Object.defineProperty(protoObj0, 'prop0', {writable: true, enumerable: false, configurable: true }));
+        protoObj0.prop0 = ((new BaseClass()) ? (ary.push((new BaseClass()), (arrObj0.prop0 >>= (argMath8 << ((new.target | ((function () {;}) instanceof ((typeof Object == 'function' ) ? Object : Object))) != ('$('+'êp'+'<Ù' + '+*'.concat((-2147483648 - -425766036.9))).replace('$('+'êp'+'<Ù' + '+*'.concat((-2147483648 - -425766036.9)), ('6' + '}l!-').replace('%È'+'÷7'+'($' + ')ð', '$' + 'PsÎ!'))))), ((argMath8 >= protoObj1.prop0)&&(argMath8 !== e)), (true instanceof ((typeof Error == 'function' ) ? Error : Object)), parseInt("1NA3J43", 29), arrObj0[(((((new BaseClass()) >>> (protoObj1.length = ((b <<= -3.85767794895796E+18) << (487825989 == arrObj0.prop1)))) >= 0 ? ((new BaseClass()) >>> (protoObj1.length = ((b <<= -3.85767794895796E+18) << (487825989 == arrObj0.prop1)))) : 0)) & 0XF)], (new BaseClass()), 325983158.1, (((new BaseClass()) >>> (protoObj1.length = ((b <<= -3.85767794895796E+18) << (487825989 == arrObj0.prop1)))) >= '6' + '}l!-'.match(/^bb.\B./giu)), new.target))
+ : 'caller');
+        return -487838881;
+      }
+      static func15 (...argArr14){
+        WScript.Echo(strvar1 <='caller');
+        WScript.Echo(strvar6 ===argArr14);
+        return new.target;
+      }
+      static func16 (argMath15 = (((protoObj1.prop0 == obj1.prop1)&&(argMath8 >= obj0.prop0)) << (-61 ? (typeof(a)  != null)  : (typeof('$('+'êp'+'<Ù' + '+*')  == 'object') )),argMath16){
+        return obj1.prop0;
+      }
+    }
+    var uniqobj2 = [''];
+    var uniqobj3 = uniqobj2[__counter%uniqobj2.length];
+    uniqobj3.toString();
+    return func1.call(obj0 );
+  };
+  var func4 = function(argMath17,argMath18,argMath19){
+    return ((new RangeError()) instanceof ((typeof Boolean == 'function' ) ? Boolean : Object));
+  };
+  obj0.method0 = func1;
+  obj0.method1 = func4;
+  obj1.method0 = obj0.method0;
+  obj1.method1 = obj0.method1;
+  arrObj0.method0 = obj0.method0;
+  arrObj0.method1 = func0;
+  var ary = new Array(10);
+  var i8 = new Int8Array(256);
+  var i16 = new Int16Array(256);
+  var i32 = new Int32Array(256);
+  var ui8 = new Uint8Array(256);
+  var ui16 = new Uint16Array(256);
+  var ui32 = new Uint32Array(256);
+  var f32 = new Float32Array(256);
+  var f64 = new Float64Array(256);
+  var uic8 = new Uint8ClampedArray(256);
+  var IntArr0 = new Array(2);
+  var IntArr1 = [1040147176,553232717,-8535527538888092672,-295192204];
+  var FloatArr0 = [-1003829572,3.17757764417729E+17,4294967297];
+  var VarArr0 = ['!K##*' + '!.!Á!!aØ',-2147483647,1438332516,1602735343,-243771682,1046715915.1,3.84084597844452E+18,418231437,1123825713,1069147790,-495115110];
+  var a = 4.63385355197199E+18;
+  var b = -1809005874;
+  var c = 304381093.1;
+  var d = 193788548;
+  var e = -2147483646;
+  var f = 98886203;
+  var g = +undefined;
+  var h = 112451899;
+  var strvar0 = '!1A!!' + '­qÊ#!q.,';
+  var strvar1 = 'b#.%)!$*%!4`!ó3';
+  var strvar2 = '·' + 'º$$h';
+  var strvar3 = 'iE$%6' + 't(i+ø1#%';
+  var strvar4 = '$';
+  var strvar5 = '$' + 'PsÎ!';
+  var strvar6 = 'EÇ)H!' + '!¶!%!×!!';
+  var strvar7 = '·' + 'º$$h';
+  arrObj0[0] = 3;
+  arrObj0[1] = 1916474356;
+  arrObj0[2] = 905460349;
+  arrObj0[3] = -1513583670;
+  arrObj0[4] = 5.20025591074759E+17;
+  arrObj0[5] = 1436408244.1;
+  arrObj0[6] = 1;
+  arrObj0[7] = 65535;
+  arrObj0[8] = -2147483648;
+  arrObj0[9] = -148278634;
+  arrObj0[10] = 1699173249;
+  arrObj0[11] = -1073741824;
+  arrObj0[12] = 24;
+  arrObj0[13] = -721660545.9;
+  arrObj0[14] = -184;
+  arrObj0[arrObj0.length-1] = -87;
+  arrObj0.length = makeArrayLength(346098506);
+  ary[0] = 78;
+  ary[1] = 497469681;
+  ary[2] = -1626697447.9;
+  ary[3] = 77;
+  ary[4] = -2147483649;
+  ary[5] = -569402636.9;
+  ary[6] = -150;
+  ary[7] = -1647643228.9;
+  ary[8] = -971880980.9;
+  ary[9] = -255;
+  ary[10] = 8.28327771944641E+18;
+  ary[11] = +Infinity;
+  ary[12] = 22;
+  ary[13] = 2;
+  ary[14] = -167;
+  ary[ary.length-1] = 1707316294.1;
+  ary.length = makeArrayLength(-203993083.9);
+  var protoObj0 = Object.create(obj0);
+  var protoObj1 = Object.create(obj1);
+  var aliasOfFloatArr0 = FloatArr0;;
+  var aliasOfi16 = i16;;
+  this.prop0 = -1315370079.9;
+  this.prop1 = 65537;
+  obj0.prop0 = 4294967295;
+  obj0.prop1 = 4294967297;
+  obj0.length = makeArrayLength(901172219);
+  protoObj0.prop0 = -29675685;
+  protoObj0.prop1 = 953508156;
+  protoObj0.length = makeArrayLength(3.51894432202121E+18);
+  obj1.prop0 = 4294967296;
+  obj1.prop1 = -64258637;
+  obj1.length = makeArrayLength(35);
+  protoObj1.prop0 = 1073741823;
+  protoObj1.prop1 = 82;
+  protoObj1.length = makeArrayLength(-2147483648);
+  arrObj0.prop0 = -136;
+  arrObj0.prop1 = -1;
+  arrObj0.length = makeArrayLength(249);
+  obj1.prop5 = 65536;
+  IntArr0[0] = -157950436;
+  IntArr0[1] = -89;
+  class class2 {
+    constructor (argMath20,argMath21 = ('!1A!!' + '­qÊ#!q.,' + f64[4.3205433360153E+18]),...argArr22){
+      class class3 {
+        constructor (){
+          var uniqobj4 = {prop0: ((new Error('abc')) instanceof ((typeof String == 'function' ) ? String : Object)), prop1: FloatArr0[(((Object.create({19: (protoObj0.method0.call(obj0 ) ? ((- Math.clz32(c)) <= ('caller' ? (typeof(-1584359167.9)  != null)  : -247)) : (e = protoObj0.method1.call(litObj0 , obj0, protoObj1, argArr22))), prop1: strvar4.concat(f64[(159) & 255]), prop2: argArr22[(10)], prop3: (a-- ), prop4: Object.create(arrObj0, {}), prop5: (argArr22[(10)] * (('iE$%6' + 't(i+ø1#%'.indexOf(('6' + '}l!-').replace('6' + '}l!-', strvar2))) + e))}, {}) >= 0 ? Object.create({19: (protoObj0.method0.call(obj0 ) ? ((- Math.clz32(c)) <= ('caller' ? (typeof(-1584359167.9)  != null)  : -247)) : (e = protoObj0.method1.call(litObj0 , obj0, protoObj1, argArr22))), prop1: strvar4.concat(f64[(159) & 255]), prop2: argArr22[(10)], prop3: (a-- ), prop4: Object.create(arrObj0, {}), prop5: (argArr22[(10)] * (('iE$%6' + 't(i+ø1#%'.indexOf(('6' + '}l!-').replace('6' + '}l!-', strvar2))) + e))}, {}) : 0)) & 0XF)]};
+          return e;
+        }
+        func19 (){
+          if(shouldBailout){
+            return  'somestring'
+          }
+          return -5.59549328034068E+18;
+        }
+        func20 (argMath23,...argArr24){
+          protoObj0 = arrObj0;
+          strvar1 = '!>#!#' + 'e%%.à6$(' + (protoObj1.method0.call(litObj0 ) ? i32[(argMath20) & 255] : obj1.method1.call(arrObj0 , litObj1, protoObj0, aliasOfFloatArr0));
+strvar0 +=aliasOfFloatArr0[(((obj1.method1.call(protoObj0 , arrObj0, litObj1, aliasOfFloatArr0) >= 0 ? obj1.method1.call(protoObj0 , arrObj0, litObj1, aliasOfFloatArr0) : 0)) & 0XF)];
+          g = ((function () {;}) instanceof ((typeof EvalError == 'function' ) ? EvalError : Object));
+          f = func1.call(obj1 );
+          return obj1.prop0;
+        }
+        func21 (...argArr25){
+          WScript.Echo(strvar5 <=(++ obj0.length));
+(Object.defineProperty(protoObj1, 'prop5', {writable: true, enumerable: false, configurable: true }));
+          protoObj1.prop5 = (typeof(arrObj0.prop1)  == 'object') ;
+          protoObj0 = arrObj0;
+          return f;
+        }
+        func22 (argMath26){
+          if(shouldBailout){
+            return  'somestring'
+          }
+          WScript.Echo(strvar7 !=(('!1A!!' + '­qÊ#!q.,').replace(/a/g, ('$('+'êp'+'<Ù' + '+*').replace(/a/g, strvar6)), (typeof -511528907), /^(\w)*/giy.exec('b#.%)!$*%!4`!ó3'), ('Ë' + ('Ë'.indexOf('%È'+'÷7'+'($' + ')ð'))), (new BaseClass()), (typeof -511528907)));
+          protoObj1.prop1 ^=(/(?:\s{1,5})/m.test('#!þª%!($%)+6$¾l') ? ((typeof(argMath26)  == 'number')  * (new BaseClass())) : (((protoObj1.prop1 != obj0.prop1)||(protoObj1.prop1 <= b)) ? obj1.method1.call(protoObj1 , obj1, protoObj0, IntArr0) : (typeof(obj1.prop0)  == 'number') ));
+          return 1888943603;
+          return -1600372348;
+        }
+        static func23 (){
+          return -193;
+        }
+        static get func24 (){
+          strvar2 = strvar4.concat(-1086644705);
+          strvar4 = strvar6 + (obj1.length ^= Math.atan2(-2022478198, argMath21));
+          return 5.6570671754547E+17;
+        }
+      }
+      litObj1 = protoObj1;
+    }
+    func25 (){
+(Object.defineProperty(obj1, 'prop1', {writable: true, enumerable: false, configurable: true }));
+      obj1.prop1 = -4.95348659478242E+18;
+      function func26 () {
+      }
+      var uniqobj5 = new func26();
+      return (VarArr0.shift());
+    }
+    func27 (argMath27,argMath28 = argMath27){
+      obj0 = arrObj0;
+      protoObj1 = protoObj0;
+      var __loopvar2 = loopInvariant,__loopSecondaryVar2_0 = loopInvariant - 6,__loopSecondaryVar2_1 = loopInvariant;
+      LABEL0:
+      LABEL1:
+      for(; argMath28 < (((new BaseClass()) ? (arrObj0.prop0 = 5.68380287628574E+18) : parseInt("-77"))); ((new RangeError()) instanceof ((typeof func0 == 'function' ) ? func0 : Object))) {
+        __loopSecondaryVar2_1 += 3;
+        if (__loopvar2 < loopInvariant - 3) break;
+        __loopvar2--;
+        __loopSecondaryVar2_0 += 2;
+        if((((new BaseClass()) ? (arrObj0.prop0 = 5.68380287628574E+18) : parseInt("-77")) & parseInt("-77"))) {
+          continue ;
+          strvar1 = strvar7 + (obj1.prop0 === protoObj0.prop0);
+          strvar3 = strvar3.concat(aliasOfFloatArr0[((((-2147483649 > f) >= 0 ? (-2147483649 > f) : 0)) & 0XF)]);
+          var strvar9 = ('$('+'êp'+'<Ù' + '+*').replace(strvar5, '·' + 'º$$h');
+          strvar9 = strvar9.substring((strvar9.length)/1,(strvar9.length)/2);
+        }
+        else {
+          GiantPrintArray.push('__loopvar2 = ' + (__loopvar2));
+          strvar6 = strvar2.concat(argMath28);
+          strvar1 = strvar5[0%strvar5.length];
+          return -20;
+          strvar1 = strvar3[1%strvar3.length];
+          strvar1 = strvar7[1%strvar7.length];
+        }
+        var func28 = function*(){
+          yield argMath28;
+          return -1141713205.9;
+        };
+      }
+      obj1.method0=arrObj0[((('caller' >= 0 ? 'caller' : 0)) & 0XF)];
+      return -120;
+    }
+    func29 (){
+      class class4 extends BaseClass {
+        set func30 (argMath29){
+          var v = (typeof(argMath29)  == 'boolean') ;
+          WScript.Echo(strvar5 <=-2147483649);
+          var w = ((ary.unshift((Reflect.construct(BaseClass)), ((Reflect.construct(BaseClass)) * (arrObj0.prop0 * ((h != v) - argMath29)) + (argMath29 -= (Reflect.construct(BaseClass)))), arrObj0.method1.call(arrObj0 ), v)) & ('caller' << 'caller'));
+(Reflect.defineProperty(obj1, 'length', {writable: true, enumerable: false, configurable: true }));
+          obj1.length = makeArrayLength((('caller' << 'caller') * 2));
+          var strvar9 = 's' + 'oN Û';
+          strvar9 = strvar9.substring((strvar9.length)/2,(strvar9.length)/4);
+          return -1023731287;
+        }
+        func31 (){
+          WScript.Echo(strvar1 >i8[((-406103126 < h)) & 255]);
+          var strvar9 = '%';
+          strvar9 = strvar9.substring((strvar9.length)/1,(strvar9.length)/1);
+          var strvar10 = strvar5;
+          strvar10 = strvar10.substring((strvar10.length)/3,(strvar10.length)/4);
+          return protoObj1.prop1;
+        }
+      }
+      var __loopvar2 = loopInvariant + 6,__loopSecondaryVar2_0 = loopInvariant - 3;
+      LABEL0:
+      for (var _strvar0 of f64) {
+        if(typeof _strvar0 === 'string' && _strvar0.indexOf('method') != -1) continue;
+        __loopSecondaryVar2_0++;
+        if (__loopvar2 == loopInvariant) break;
+        __loopvar2 -= 2;
+      }
+      function func32 () {
+        this.prop0 = (('caller' ? (g !== 'caller') : parseInt("11110", 2)) ? protoObj0.method0.call(protoObj1 ) : 'iE$%6' + 't(i+ø1#%'.split(/\w*$/gmy));
+      }
+      var uniqobj6 = new func32();
+      e *=((typeof(uniqobj6.prop0)  != null)  * ((('caller' ? (g !== 'caller') : parseInt("11110", 2)) >>> ui8[(((new RangeError()) instanceof ((typeof arrObj0.method0 == 'function' ) ? arrObj0.method0 : Object))) & 255]) <= (((typeof((strvar4 + f64[(75) & 255]))  == 'undefined') , protoObj1.method1.call(class4 , arrObj0, litObj0, VarArr0), ((((obj0.prop1 == obj0.prop0)&&(obj0.prop0 > uniqobj6.prop0)) ? (obj1.prop0 !== b) : (uniqobj6.prop0 - protoObj1.prop0)) + 742629711), arrObj0[((((uniqobj6.prop0 >>= (940473568.1 * g)) >= 0 ? (uniqobj6.prop0 >>= (940473568.1 * g)) : 0)) & 0XF)], (new BaseClass()), (940473568.1 * g)) || (Function('') instanceof ((typeof String == 'function' ) ? String : Object)))) - -8.48316285838144E+18);
+      arrObj0.method1.call(protoObj1 );
+      return (('H!'+'³%'+'Å·' + '#!'.indexOf(('·' + 'º$$h').replace(/a/g, strvar4))) > ((typeof((strvar4 + f64[(75) & 255]))  == 'undefined') , protoObj1.method1.call(class4 , arrObj0, litObj0, VarArr0), ((((obj0.prop1 == obj0.prop0)&&(obj0.prop0 > uniqobj6.prop0)) ? (obj1.prop0 !== b) : (uniqobj6.prop0 - protoObj1.prop0)) + 742629711), arrObj0[((((uniqobj6.prop0 >>= (940473568.1 * g)) >= 0 ? (uniqobj6.prop0 >>= (940473568.1 * g)) : 0)) & 0XF)], (new BaseClass()), (940473568.1 * g)));
+    }
+    func33 (argMath30 = (g != protoObj0.prop1),argMath31 = -1.05238683620309E+18,argMath32 = ('±#'+'$!'+'$#' + 'Öz'.indexOf(strvar5))){
+      strvar6 = strvar0[4%strvar0.length];
+      WScript.Echo(strvar3 >(aliasOfFloatArr0.unshift(strvar3, (new BaseClass()), (h <<= argMath32), func0.call(obj1 ), 'caller', (aliasOfFloatArr0.push((typeof((strvar5 + FloatArr0[(((1296341644 >= 0 ? 1296341644 : 0)) & 0XF)]).concat(-270351935))  != 'undefined') , 'caller', (typeof((new BaseClass()))  == 'boolean') , arrObj0.method1(), 'caller', i16[7.64851401468389E+18], 'caller', 'caller'))
+, func3.call(litObj0 , ('caller' ? (~ argMath30) : (typeof(b)  == 'boolean') ), ary))));
+      class class5 extends BaseClass {
+        constructor (argMath33 = ({} instanceof ((typeof Error == 'function' ) ? Error : Object)),argMath34,argMath35){
+          super();
+          WScript.Echo(strvar6 >(new BaseClass()));
+          var uniqobj7 = {prop0: (func2() * (protoObj1.prop1 >>>= (+ ((++ f) ^ (protoObj1.prop1 >= f)))) - func0.call(protoObj0 )), prop1: ((((++ f) >= 'caller') >>> (+ ((++ f) ^ (protoObj1.prop1 >= f)))) ? (++ f) : aliasOfFloatArr0[(16)]), prop2: argMath33, prop3: (new BaseClass()), prop4: func4(obj0,litObj0,ary), prop5: protoObj1.method1.call(litObj1 , arrObj0, litObj1, FloatArr0), prop6: arguments[(17)], prop7: protoObj1.method1.call(litObj1 , arrObj0, litObj1, FloatArr0)};
+          strvar1 = strvar5.concat(((((++ f) >= 'caller') >>> (+ ((++ f) ^ (protoObj1.prop1 >= f)))) ? (++ f) : aliasOfFloatArr0[(16)]));
+          WScript.Echo(strvar2 >(argMath35 ^= aliasOfi16[(749043533) & 255]));
+        }
+        func35 (argMath36 = (protoObj0.method0.call(obj0 ) & (new BaseClass())),argMath37 = ((argMath36 >>= ((new RegExp('xyz')) instanceof ((typeof Boolean == 'function' ) ? Boolean : Object))) instanceof ((typeof Object == 'function' ) ? Object : Object)),argMath38){
+          strvar5 = strvar7 + ui32[(uic8[(19) & 255]) & 255];
+          WScript.Echo(strvar6 ==(argMath36++ ));
+          b =strvar7;
+          WScript.Echo(strvar1 <997868220);
+          return argMath32;
+        }
+        func36 (){
+          return -236626533;
+        }
+        get func37 (){
+          return argMath31;
+        }
+        func38 (...argArr39){
+          WScript.Echo(strvar4 !=obj0.method1.call(arrObj0 , litObj1, protoObj0, ary));
+          WScript.Echo(strvar3 ==((protoObj1.prop0 <= protoObj0.prop1)&&(arrObj0.prop1 === argMath30)));
+          obj0 = arrObj0;
+          strvar4 = strvar4[2%strvar4.length];
+          return 65535;
+        }
+        static func39 (argMath40 = (arrObj0.prop1 %= 'caller')){
+          strvar3 = strvar2[0%strvar2.length];
+          return -2147483648;
+        }
+      }
+      function func40 () {
+        this.prop0 = 767681218;
+      }
+      var uniqobj8 = new func40();
+      return (Reflect.construct(BaseClass));
+    }
+    static func41 (){
+      class class6 {
+        constructor (){
+          if(shouldBailout){
+            return  'somestring'
+          }
+        }
+        func43 (argMath41){
+          return c;
+        }
+        static func44 (argMath42,argMath43,...argArr44){
+          strvar7 = 'b#.%)!$*%!4`!ó3'.concat(('½'.concat(protoObj0.method1.call(arrObj0 , litObj0, protoObj0, ary)) && (argArr44.pop())));
+          if(shouldBailout){
+            return  'somestring'
+          }
+          GiantPrintArray.push('strvar1 = ' + (strvar1));
+          return 570361785;
+        }
+      }
+      var uniqobj9 = Object.create(obj1);
+      strvar5 = (strvar2).replace(strvar2, ('½').replace((strvar0 + uic8[(uniqobj9.prop1) & 255]), '!>#!#' + 'e%%.à6$('.concat((protoObj1.prop1 instanceof ((typeof Array == 'function' ) ? Array : Object))))).concat(('valueOf' in IntArr0));
+      var strvar9 = strvar0;
+      strvar9 = strvar9.substring((strvar9.length)/1,(strvar9.length)/2);
+      class class7 extends class6 {
+        constructor (argMath45,argMath46,argMath47 = argMath45){
+          super();
+        }
+        get func46 (){
+          strvar7 = '%È'+'÷7'+'($' + ')ð' + ({} instanceof ((typeof EvalError == 'function' ) ? EvalError : Object));
+          if(shouldBailout){
+            return  'somestring'
+          }
+          strvar5 = strvar9[6%strvar9.length];
+          obj1.length= makeArrayLength(({} instanceof ((typeof EvalError == 'function' ) ? EvalError : Object)));
+          d =(arrObj0.prop1 = 'caller');
+          protoObj1.prop1 >>=((~ 0) * ('caller' + -116));
+          return uniqobj9.prop5;
+        }
+        func47 (){
+          return uniqobj9.prop0;
+        }
+        get func48 (){
+          strvar1 = ('.N'+'L¶'+'¹+' + ':»').replace(((strvar3.concat(i16[(237) & 255])).replace(strvar3.concat(i16[(237) & 255]), ('%È'+'÷7'+'($' + ')ð').replace(/a/g, strvar9))).replace('6' + '}l!-', strvar3), (strvar9 + ui16[(248) & 255])).concat('caller');
+          var strvar10 = strvar9;
+          GiantPrintArray.push('protoObj1.prop1 = ' + (protoObj1.prop1));
+          GiantPrintArray.push('strvar9 = ' + (strvar9));
+          return 1;
+        }
+        func49 (argMath48,argMath49){
+          var strvar10 = 'iE$%6' + 't(i+ø1#%';
+          return 955722662;
+        }
+      }
+      var __loopvar2 = loopInvariant;
+      LABEL0:
+      LABEL1:
+      for (var _strvar4 in IntArr1) {
+        if(typeof _strvar4 === 'string' && _strvar4.indexOf('method') != -1) continue;
+        __loopvar2--;
+        if (__loopvar2 <= loopInvariant - 3) break;
+      }
+      return (typeof(arrObj0.prop0)  == 'object') ;
+    }
+    static func50 (argMath50,argMath51 = (VarArr0.reverse()),argMath52,...argArr53){
+      // spreadIteratorBuiltins.ecs - spread builtins that use symbol.iterator
+
+      function v0(a,b,c){
+          strvar0 = ((strvar1).replace(strvar1, (((strvar6).replace(/a/g, strvar1)).replace((strvar6).replace(/a/g, strvar1), ('!>#!#' + 'e%%.à6$(').replace(/a/g, strvar1))).replace(((strvar6).replace(/a/g, strvar1)).replace((strvar6).replace(/a/g, strvar1), ('!>#!#' + 'e%%.à6$(').replace(/a/g, strvar1)), strvar7)) + (obj1.prop0 >>= (- -62))) + 46;
+          // spreadArray.ecs - spread an array then spread it to function args then replace its iterator  and spread it again
+
+          var v1 = [...argArr53];
+
+          function v2()
+          {
+              var v3 = [...arguments];
+              var v4  = function(v5) {
+              var v6 = (function(v5) {
+                  var v7 = 0;
+                  var v8 = v5.length;
+                  return function () {
+                      (((argMath51 ? (38 >>> (((- d) > ((new Object()) instanceof ((typeof Boolean == 'function' ) ? Boolean : Object))) ? (++ argMath52) : (argMath51 >>= (typeof(obj1.prop5)  == 'boolean') ))) : arrObj0.method0.call(litObj0 )) + obj0.method1.call(obj1 , protoObj0, litObj0, argArr53)) * (typeof(Math.round(func0.call(litObj1 )))  != 'undefined')  + (argMath51 >>>= obj0.method1.call(obj1 , protoObj0, litObj0, argArr53)))
+                      WScript.Echo(strvar2 <(argMath51 += '%'.split('E',2)));
+                      return {next: function() {
+
+                          if (v7 < v8)
+                          {
+                              ui8.length
+                              return { value: v5[v7++], done: false };
+                          }
+                          else
+                          {
+                              argMath51 = Object.create(litObj0, {});
+                              v7 = 0;
+                              return { done: true };
+                          }
+                      }}
+                  }
+              })(v5);
+              return v6;};
+              v3[Symbol.iterator] = v4(v3);
+              return [...v3];
+          }
+          print(v1);
+          print(v2(...v1));
+          if(shouldBailout)
+          {
+              print(v2(...v1));
+          }
+       }
+      var v9 = false
+
+      if(v9) {
+          v0(...((new Map([[argMath52], [ary]])).values()));
+      }else {
+          v0(...(""+(argMath51)));
+      }
+
+      return (-- protoObj1.prop0);
+    }
+    static get func51 (){
+      var __loopvar2 = loopInvariant - 12,__loopSecondaryVar2_0 = loopInvariant - 6;
+      LABEL0:
+      while((('%').replace('%', (strvar4).replace(/a/g, strvar3)))) {
+        __loopvar2 += 4;
+        if (__loopvar2 == loopInvariant + 4) break;
+        __loopSecondaryVar2_0 += 2;
+        var uniqobj10 = new BaseClass();
+        strvar0 = strvar0.concat(72);
+(Reflect.defineProperty(protoObj0, 'prop1', {writable: true, enumerable: false, configurable: true }));
+        protoObj0.prop1 = (((function () {;}) instanceof ((typeof Number == 'function' ) ? Number : Object)) * ((obj0.prop1 == g)&&(b <= obj0.prop1)) + ((obj0.prop0 >= arrObj0.prop1)&&(d < arrObj0.prop1)));
+        (function(){
+          if(shouldBailout){
+            return  'somestring'
+          }
+          obj0 = protoObj0;
+(Object.defineProperty(obj1, 'length', {writable: true, enumerable: false, configurable: true }));
+          obj1.length = makeArrayLength(arrObj0[((((('iE$%6' + 't(i+ø1#%' + aliasOfFloatArr0[(__loopvar2 + 3)]) >>> (protoObj1.prop1 ^= (new BaseClass()))) >= 0 ? (('iE$%6' + 't(i+ø1#%' + aliasOfFloatArr0[(__loopvar2 + 3)]) >>> (protoObj1.prop1 ^= (new BaseClass()))) : 0)) & 0XF)]);
+        })();
+      }
+      return ((arrObj0.prop1 %= VarArr0[(1)]) * (3.60946836061253E+18 - (ui8[(((protoObj1.prop0 >>= 'caller') << ((protoObj1.prop1 != protoObj0.prop1)&&(d <= arrObj0.prop1)))) & 255] === ((c = (new BaseClass())) != ((protoObj1.prop1 != protoObj0.prop1)&&(d <= arrObj0.prop1))))));
+    }
+  }
+  class class8 {
+    constructor (argMath54 = ((new Array()) instanceof ((typeof Number == 'function' ) ? Number : Object)),argMath55,argMath56){
+      protoObj0.length= makeArrayLength((+ b));
+      if((((FloatArr0[((((aliasOfFloatArr0[(((Math.sin(c) >= 0 ? Math.sin(c) : 0)) & 0XF)] || (obj0.prop1 -= argMath55)) >= 0 ? (aliasOfFloatArr0[(((Math.sin(c) >= 0 ? Math.sin(c) : 0)) & 0XF)] || (obj0.prop1 -= argMath55)) : 0)) & 0XF)] ? (argMath55 ? (typeof(arrObj0.prop0)  == null)  : (-- argMath55)) : ((argMath56 >= obj0.prop1)||(argMath56 === obj1.prop1))) ? IntArr1[((((obj0.prop0 ? 'caller' : ((f == argMath56)&&(arrObj0.prop1 !== argMath56))) >= 0 ? (obj0.prop0 ? 'caller' : ((f == argMath56)&&(arrObj0.prop1 !== argMath56))) : 0)) & 0XF)] : ((new Array()) instanceof ((typeof Number == 'function' ) ? Number : Object))) < ((aliasOfFloatArr0.reverse()) / (((typeof(argMath56)  != 'string')  % (! 353437749)) == 0 ? 1 : ((typeof(argMath56)  != 'string')  % (! 353437749)))))) {
+        litObj1.prop0=((Reflect.construct(BaseClass)) * ((! (((typeof((new class2(leaf,(-5.92449543539975E+18 * -3),ary)))  != 'object')  ? (((new Object()) instanceof ((typeof Array == 'function' ) ? Array : Object)) ? func1.call(obj0 ) : d) : (typeof (/a/ instanceof ((typeof Error == 'function' ) ? Error : Object)))) * ((10 && arrObj0.method1.call(protoObj1 )) - protoObj0.prop0))) * (Reflect.construct(BaseClass)) + (Reflect.construct(BaseClass))) + argMath54);
+        var uniqobj11 = new BaseClass();
+        if(shouldBailout){
+          return  'somestring'
+        }
+        var uniqobj12 = [protoObj0, obj1, obj0, protoObj1, obj1];
+        var uniqobj13 = uniqobj12[__counter%uniqobj12.length];
+        uniqobj13.method1(uniqobj11,arrObj0,aliasOfFloatArr0);
+      }
+      else {
+        if(shouldBailout){
+          return  'somestring'
+        }
+        // Snippets: StringES6ops.ecs
+        GiantPrintArray.push(String.prototype.repeat.call(strvar4,0));
+        GiantPrintArray.push(String.prototype.repeat.call(strvar4,1));
+        GiantPrintArray.push(String.prototype.repeat.call(strvar2,3));
+
+        GiantPrintArray.push(String.prototype.startsWith.call(strvar3,strvar3,argMath56,f));
+        GiantPrintArray.push(String.prototype.endsWith.call(strvar5,strvar0,arrObj0.prop1,g));
+        GiantPrintArray.push(String.prototype.contains.call(strvar7,strvar2));
+        (function(){
+        })();
+      }
+    }
+    get func55 (){
+      var re1 = new RegExp("^\B\W", "giy");
+      if(shouldBailout){
+        return  'somestring'
+      }
+      if(shouldBailout){
+        return  'somestring'
+      }
+      arrObj0.prop1 =('caller' ? obj1.method1(class2,obj1,ary) : (i16[(90) & 255] ? ((typeof(strvar4)  == 'undefined')  instanceof ((typeof Object == 'function' ) ? Object : Object)) : (f >= protoObj1.prop0)));
+      return ((new Object()) instanceof ((typeof Error == 'function' ) ? Error : Object));
+      return (new BaseClass());
+    }
+    func56 (){
+      return Math.atan2(b, -624765640);
+    }
+    func57 (argMath57,argMath58,argMath59 = arrObj0[(16)]){
+      class class9 {
+        func58 (argMath60,argMath61,argMath62 = (-2147483648 * argMath61 + argMath60),argMath63){
+          h = (/a/ instanceof ((typeof RegExp == 'function' ) ? RegExp : Object));
+          if(shouldBailout){
+            return  'somestring'
+          }
+          var id27 = argMath62;
+          return -200577984.9;
+        }
+        func59 (argMath64,...argArr65){
+          if(shouldBailout){
+            return  'somestring'
+          }
+          var strvar9 = '%È'+'÷7'+'($' + ')ð';
+(Object.defineProperty(litObj0, 'prop1', {writable: true, enumerable: false, configurable: true }));
+          litObj0.prop1 = (b %= (argArr65 ? (protoObj0.prop0 < a) : argMath64));
+          return 287014643;
+        }
+        func60 (argMath66,argMath67,argMath68,argMath69){
+          strvar2 = strvar0.concat((typeof(argMath67)  == 'string') );
+          var strvar9 = '$('+'êp'+'<Ù' + '+*';
+          arrObj0 = obj0;
+          c = (obj1.length-- );
+          return b;
+        }
+        func61 (){
+          if(shouldBailout){
+            return  'somestring'
+          }
+          strvar3 = strvar0[4%strvar0.length];
+          strvar3 = strvar3.concat((typeof(argMath57)  != 'undefined') );
+          strvar0 = strvar5[4%strvar5.length];
+          litObj0 = litObj0;
+          return -819139730;
+        }
+      }
+      strvar7 = strvar7[4%strvar7.length];
+      protoObj0.length= makeArrayLength({78: (new func2()).prop1 , prop0: (+ (new BaseClass())), prop1: ((new RegExp('xyz')) instanceof ((typeof Number == 'function' ) ? Number : Object)), prop2: (((obj0.prop1 >= argMath59)||(obj1.prop5 >= arrObj0.prop1)) ? (((typeof('iE$%6' + 't(i+ø1#%')  != 'boolean') , (new class2(leaf,(new class9()),ary)), ((obj0.prop1 >= argMath59)||(obj1.prop5 >= arrObj0.prop1)), arrObj0[(11)], {prop5: func3.call(class9 , (3 & argMath58), ary), prop4: ((protoObj1.prop0 * -88) >= (Reflect.construct(class9))), prop3: (protoObj1.length |= ((b >= argMath58)&&(protoObj0.prop0 == e))), prop2: 4.2111412487637E+18, prop1: 'caller', prop0: ((argMath59 < protoObj0.prop1)&&(g > arrObj0.prop0))}) ? ((d < obj1.prop5) * (strvar0).replace((strvar0).replace(strvar0, strvar6), '6' + '}l!-'.concat((argMath57 >= argMath58))) - (new class9())) : (+ (new BaseClass()))) : ('$' + (((typeof('iE$%6' + 't(i+ø1#%')  != 'boolean') , (new class2(leaf,(new class9()),ary)), ((obj0.prop1 >= argMath59)||(obj1.prop5 >= arrObj0.prop1)), arrObj0[(11)], {prop5: func3.call(class9 , (3 & argMath58), ary), prop4: ((protoObj1.prop0 * -88) >= (Reflect.construct(class9))), prop3: (protoObj1.length |= ((b >= argMath58)&&(protoObj0.prop0 == e))), prop2: 4.2111412487637E+18, prop1: 'caller', prop0: ((argMath59 < protoObj0.prop1)&&(g > arrObj0.prop0))}) ? ((d < obj1.prop5) * (strvar0).replace((strvar0).replace(strvar0, strvar6), '6' + '}l!-'.concat((argMath57 >= argMath58))) - (new class9())) : (+ (new BaseClass()))))), prop3: obj0.method0.call(protoObj1 ), prop4: obj0.method0.call(protoObj1 ), prop5: (typeof (typeof(strvar0)  != 'string') )});
+      strvar7 = (((strvar1).replace(strvar6, strvar5)).replace('!K##*' + '!.!Á!!aØ', '!1A!!' + '­qÊ#!q.,') + (((strvar1).replace(strvar6, strvar5)).replace('!K##*' + '!.!Á!!aØ', '!1A!!' + '­qÊ#!q.,') instanceof ((typeof RegExp == 'function' ) ? RegExp : Object))).concat((+ (new BaseClass())));
+      return Math.ceil(arrObj0[(5)]);
+    }
+    func62 (argMath70 = ui8[(parseInt("-2H", 33)) & 255],argMath71 = (ui8[((-- protoObj1.prop0)) & 255] | ((func0() != (((new EvalError()) instanceof ((typeof EvalError == 'function' ) ? EvalError : Object)) == ui8[(parseInt("-2H", 33)) & 255])) ? ((-- protoObj1.prop0) * '!1A!!' + '­qÊ#!q.,'.concat((b instanceof ((typeof Array == 'function' ) ? Array : Object))) + (arguments[(((('caller' ? (new BaseClass()) : (b instanceof ((typeof Array == 'function' ) ? Array : Object))) >= 0 ? ('caller' ? (new BaseClass()) : (b instanceof ((typeof Array == 'function' ) ? Array : Object))) : 0)) & 0XF)] ? (true instanceof ((typeof func3 == 'function' ) ? func3 : Object)) : argMath70)) : (protoObj1.method1.call(obj1 , protoObj1, arrObj0, VarArr0) * (i32[(176) & 255] + (((new BaseClass()) instanceof ((typeof String == 'function' ) ? String : Object)) * ((arguments[(((('caller' ? (new BaseClass()) : (b instanceof ((typeof Array == 'function' ) ? Array : Object))) >= 0 ? ('caller' ? (new BaseClass()) : (b instanceof ((typeof Array == 'function' ) ? Array : Object))) : 0)) & 0XF)] ? (true instanceof ((typeof func3 == 'function' ) ? func3 : Object)) : argMath70) - ('EÇ)H!' + '!¶!%!×!!'.indexOf(strvar1)))))))),argMath72,argMath73){
+      class class10 {
+        get func63 (){
+          WScript.Echo(strvar4 ==(typeof(arrObj0.prop0)  == 'object') );
+          d -=((argMath71 === argMath71)||(argMath73 >= argMath70));
+          return 82;
+        }
+        get func64 (){
+          WScript.Echo(strvar3 <obj0.method0.call(arrObj0 ));
+          strvar4 = strvar1[2%strvar1.length];
+          strvar1 = (strvar2 + arrObj0[(4)]).concat((VarArr0.shift()));
+          argMath70 = (((typeof(c)  == 'undefined')  * strvar2 + arrObj0[(4)]) === aliasOfi16[(194) & 255]);
+          var fPolyProp = function (o) {
+            if (o!==undefined) {
+              WScript.Echo(o.prop0 + ' ' + o.prop1 + ' ' + o.prop2);
+            }
+          };
+          fPolyProp(litObj0);
+          fPolyProp(litObj1);
+
+          var y = (protoObj1.method0.call(obj0 ) % ((typeof(c)  == 'undefined')  ? ((((typeof(argMath71)  != 'number')  > (argMath70 |= aliasOfi16[(194) & 255])) ? (((new Error('abc')) instanceof ((typeof func4 == 'function' ) ? func4 : Object)) * ((obj0.prop0 != (arrObj0.prop1 & e)) - ((typeof(b)  != null)  ? ((typeof(argMath71)  != 'number')  > (argMath70 |= aliasOfi16[(194) & 255])) : (-5.43628402375822E+18 | -199842525.9)))) : protoObj1.method0.call(obj0 )) ? (IntArr0.pop()) : Math.clz32((obj1.prop0 &= arguments[(9)]))) : ((typeof(c)  == 'undefined')  * strvar2 + arrObj0[(4)])));
+          return a;
+        }
+        func65 (argMath74,argMath75 = (3.88115737361849E+17 === ((obj1.prop5 <= argMath74)&&(arrObj0.prop1 >= d))),argMath76){
+          strvar2 = strvar1[4%strvar1.length];
+          argMath71 = (-1039359579 << ((e != argMath74)&&(argMath75 !== argMath76)));
+          arrObj0[(8)] = (-2.20267986851485E+18 || argMath74);
+          litObj1 = protoObj0;
+          return -957116691.9;
+        }
+        static func66 (argMath77 = argMath73,argMath78){
+          if(shouldBailout){
+            return  'somestring'
+          }
+          if(shouldBailout){
+            return  'somestring'
+          }
+          var strvar9 = 'EÇ)H!' + '!¶!%!×!!';
+          return protoObj0.prop0;
+        }
+        static func67 (argMath79 = (Reflect.construct(BaseClass)),argMath80 = argMath79,argMath81 = i8[((argMath79 *= protoObj1.method0.call(litObj0 ))) & 255],argMath82){
+          obj1.prop0 = (argMath79 ? f32[7.89390994427982E+17] : (protoObj1.length >>= (((((argMath71 |= b) * (IntArr1[(((argMath80 >= 0 ? argMath80 : 0)) & 0XF)] + (argMath71 <= argMath79))) <= (func2.call(arrObj0 ) * argMath81)) * ((5.7586208344102E+18 instanceof ((typeof Number == 'function' ) ? Number : Object)) + (protoObj0.length %= func4.call(protoObj0 , obj1, obj0, FloatArr0)))) * argMath82 + argMath82)));
+(Object.defineProperty(obj1, 'prop5', {writable: true, enumerable: false, configurable: true }));
+          obj1.prop5 = protoObj1.method0.call(class2 );
+          strvar0 = strvar1.concat(((typeof -179) && obj1.prop0));
+          strvar1 = strvar3[4%strvar3.length];
+          var strvar9 = '6' + '}l!-';
+          strvar9 = strvar9.substring((strvar9.length)/3,(strvar9.length)/4);
+          argMath81 =(IntArr1.reverse());
+          return 4294967296;
+        }
+        static set func68 (argMath83){
+          return 65535;
+        }
+      }
+      if((! ((func0() != (((new EvalError()) instanceof ((typeof EvalError == 'function' ) ? EvalError : Object)) == ui8[(parseInt("-2H", 33)) & 255])) ? ((-- protoObj1.prop0) * '!1A!!' + '­qÊ#!q.,'.concat((b instanceof ((typeof Array == 'function' ) ? Array : Object))) + (arguments[(((('caller' ? (new BaseClass()) : (b instanceof ((typeof Array == 'function' ) ? Array : Object))) >= 0 ? ('caller' ? (new BaseClass()) : (b instanceof ((typeof Array == 'function' ) ? Array : Object))) : 0)) & 0XF)] ? (true instanceof ((typeof func3 == 'function' ) ? func3 : Object)) : argMath70)) : (protoObj1.method1.call(obj1 , protoObj1, arrObj0, VarArr0) * (i32[(176) & 255] + (((new BaseClass()) instanceof ((typeof String == 'function' ) ? String : Object)) * ((arguments[(((('caller' ? (new BaseClass()) : (b instanceof ((typeof Array == 'function' ) ? Array : Object))) >= 0 ? ('caller' ? (new BaseClass()) : (b instanceof ((typeof Array == 'function' ) ? Array : Object))) : 0)) & 0XF)] ? (true instanceof ((typeof func3 == 'function' ) ? func3 : Object)) : argMath70) - ('EÇ)H!' + '!¶!%!×!!'.indexOf(strvar1))))))))) {
+        litObj0.prop0={11: g, prop0: 6.72194973336282E+18, prop1: ary[(((arrObj0[(18)] >= 0 ? arrObj0[(18)] : 0)) & 0XF)], prop2: ((strvar0.concat(i32[(216) & 255])).replace(/a/g, strvar2) !== (strvar0.concat(i32[(216) & 255]) ? ('iE$%6' + 't(i+ø1#%'.indexOf((strvar1 + ((argMath72 < protoObj1.prop0)||(argMath70 !== argMath70))))) : arrObj0.method1())), prop3: i8[(((argMath72 < protoObj1.prop0)||(argMath70 !== argMath70))) & 255], prop5: (Function('') instanceof ((typeof EvalError == 'function' ) ? EvalError : Object)), prop6: ((f >= d)||(c <= argMath72))};
+        var __loopvar3 = loopInvariant,__loopSecondaryVar3_0 = loopInvariant + 3;
+        LABEL0:
+        for(; obj1.prop0 < (i8[(((argMath72 < protoObj1.prop0)||(argMath70 !== argMath70))) & 255]); ((e = ('caller', (g >>>= 'caller'), (c == obj0.prop1), -2147483648, ((f >= d)||(c <= argMath72)))) + ((typeof(((strvar0.concat(i32[(216) & 255]) ? ('iE$%6' + 't(i+ø1#%'.indexOf((strvar1 + ((argMath72 < protoObj1.prop0)||(argMath70 !== argMath70))))) : arrObj0.method1()) >= ui16[(arguments[(5)]) & 255]))  != 'boolean')  ? (+ obj0.prop1) : litObj0.prop0.prop5))) {
+          if (__loopvar3 >= loopInvariant + 6) break;
+          __loopvar3 += 3;
+          __loopSecondaryVar3_0--;
+          litObj0.prop0.prop0 -=(- 541582879.1);
+          var strvar9 = strvar5;
+          strvar9 = strvar9.substring((strvar9.length)/1,(strvar9.length)/4);
+          WScript.Echo(strvar7 !==(('valueOf' in obj0) instanceof ((typeof Number == 'function' ) ? Number : Object)));
+        }
+        strvar4 = strvar3 + -1073741824;
+        litObj1 = litObj1;
+      }
+      else {
+      }
+      return (new class10());
+    }
+  }
+  // Snippets typedarrays.ecs
+  var v10 =  Uint8ClampedArray;
+  // addarray:tt
+
+  function mapFn(v11) {
+      return v11;
+  }
+
+  var mapObj = {
+      mapFn: function(v11) {
+          return v11;
+      }
+  }
+
+  var sa = 1;
+  if (v10 == Int8Array || v10 == Uint8Array || v10 == Uint8ClampedArray) {
+      sa = 1;
+  } else if (v10 == Int16Array || v10 == Uint16Array) {
+      sa = 2;
+  } else if (v10 == Int32Array || v10 == Uint32Array || v10 == Float32Array) {
+      sa = 4;
+  } else {
+      sa = 8;
+  }
+
+  var v12 = (new v10(new Array(6400))).buffer;
+  // addarray:b1
+  var v13 = new ArrayBuffer(6400);
+  // addarray:b2
+
+  // Created with length
+  var v14 = new v10(20);
+  // addarray:a
+  for(var v15 in v14) { GiantPrintArray.push(v15) }
+
+  // From typedArray
+  v14 = new v10(new  Float32Array());
+  for(var v15 in v14) { GiantPrintArray.push(v15) }
+
+  // From Array
+  v14 = new v10(v10);
+  for(v15 in v14) { GiantPrintArray.push(v15) }
+
+  // From ArrayBuffer
+  var os = Math.floor(0.75 * (6400 / sa)) * sa;
+  var l = Math.floor(1.0 * (6400 / sa));
+  try {
+    v14 = new v10( v13, os, l);
+    for(v15 in v14) { GiantPrintArray.push(v15) }
+  } catch(e) { }
+  // Using from API without map function
+  v14 = v10.from(FloatArr0);
+  for(v15 in v14) { GiantPrintArray.push(v15) }
+  v14 = v10.from(new  Uint16Array());
+  for(v15 in v14) { GiantPrintArray.push(v15) }
+
+  // Using from API with map function
+  v14 = v10.from( v13, mapFn);
+  for(v15 in v14) { GiantPrintArray.push(v15) }
+  v14 = v10.from(new  Uint8Array(), mapFn);
+  for(v15 in v14) { GiantPrintArray.push(v15) }
+
+  // Using of API
+  v14 = v10.of( v13);
+  for(v15 in v14) { GiantPrintArray.push(v15) }
+  v14 = v10.of(new  Float32Array());
+  for(v15 in v14) { GiantPrintArray.push(v15) }
+
+  function* func69 (){
+    var uniqobj14 = [protoObj1, obj1];
+    uniqobj14[__counter%uniqobj14.length].method1(protoObj1,protoObj1,ary);
+    var __loopvar1 = loopInvariant - 9;
+    LABEL0:
+    for (var _strvar0 in ui8) {
+      if(typeof _strvar0 === 'string' && _strvar0.indexOf('method') != -1) continue;
+      __loopvar1 += 3;
+      if (__loopvar1 == loopInvariant + 3) break;
+      ui8[_strvar0] = 'caller';
+      WScript.Echo(strvar2 >=('b#.%)!$*%!4`!ó3'.indexOf('$' + 'PsÎ!')));
+      return ('caller' ? ((- (arrObj0.prop0 > d)) > ((((b < protoObj0.length) * ((5.68436399035355E+17 ? (protoObj1.prop1 >>= 4294967296) : (typeof(obj1.prop1)  == 'object') ) - (ui16[(loopInvariant - 9) & 255] * 'caller' - (_strvar0 <<= f)))) === (yield Math.atan2('caller', f64[(obj1.prop0) & 255]))) ? protoObj1.method1(litObj1,litObj1,v13) : -0)) : i8[((VarArr0.pop())) & 255]);
+    }
+    strvar2 = strvar0 + ((('caller' >> uic8[((obj1.prop5++ )) & 255]) >>> (((obj0.length += obj0.prop0) instanceof ((typeof Function == 'function' ) ? Function : Object)) || {prop4: (strvar7.concat((f ? this.prop1 : 6.99230669936059E+18)) + uic8[(210) & 255]), prop3: arrObj0.method0.call(litObj0 ), prop2: (f ? this.prop1 : 6.99230669936059E+18), prop1: protoObj0.method1.call(class8 , obj0, class8, v13), prop0: ((arrObj0.length >= protoObj0.length)&&(obj1.length <= this.prop1))})) - arrObj0.length);
+    return -81;
+  }
+  class class11 {
+    constructor (){
+    }
+    static get func71 (){
+      return (typeof(strvar3)  == 'object') ;
+    }
+    static func72 (){
+      strvar4 = strvar7.concat(func69());
+      if((func69().next() ^ i16[(199) & 255])) {
+        strvar1 = strvar4[5%strvar4.length];
+      }
+      else {
+      }
+      function func73 (arg0, arg1) {
+        this.prop0 = arg0;
+        this.prop2 = arg1;
+      }
+      var uniqobj15 = new func73('½'.replace(/^(\s)$/gmyu,'$' + 'PsÎ!'),-162);
+      if (shouldBailout) {
+        (shouldBailout ? (Object.defineProperty(uniqobj15, 'prop2', {set: function(_x) {         async function func73 (argMath84,argMath85,...argArr86){
+          var fPolyProp = function (o) {
+            if (o!==undefined) {
+              WScript.Echo(o.prop0 + ' ' + o.prop1 + ' ' + o.prop2);
+            }
+          };
+          fPolyProp(litObj0);
+          fPolyProp(litObj1);
+
+          var uniqobj16 = {prop0: func69().next()};
+          var strvar9 = strvar0.concat((protoObj0.prop1 *= i16[(199) & 255]));
+          strvar9 = strvar9.substring((strvar9.length)/1,(strvar9.length)/2);
+          var x = func69();
+          if(shouldBailout){
+            return  'somestring'
+          }
+          var y = func69();
+          return 4.45034339255548E+18;
+        }
+        }, configurable: true }), class2.func50.call(protoObj0 , func69().next(), ((new BaseClass()) == '$('+'êp'+'<Ù' + '+*'.concat((Reflect.construct(class8, func69().return(596558375),VarArr0,'½'.replace(/^(\s)$/gmyu,'$' + 'PsÎ!'))))), strvar7, ary)) : class2.func50.call(protoObj0 , func69().next(), ((new BaseClass()) == '$('+'êp'+'<Ù' + '+*'.concat((Reflect.construct(class8, func69().return(596558375),VarArr0,'½'.replace(/^(\s)$/gmyu,'$' + 'PsÎ!'))))), strvar7, ary));
+      }
+      // Snippet ObjectLiterals
+      var v16 = (uniqobj15.prop2 %= 'caller');
+      // addvar:x
+      var v17 = {
+          v16,
+          [(e |= func4.call(uniqobj15 , obj1, obj0, v14))] : 187,
+          v18(v19) {
+              strvar5 = strvar5[5%strvar5.length];
+              for (var v20 in v17) {
+                  GiantPrintArray.push(v20);
+                  GiantPrintArray.push( Reflect.get(v17, v20));
+                  GiantPrintArray.push(this.v20);
+              }
+          },
+          v21 : 1303872825,
+          ['caller'] : (func1.call(class8 ) * ((arrObj0.prop1 ? h : ('s' + 'oN Û' + ((obj1.prop0 > obj1.prop5) >> ((obj1.prop5 * "" + -7.16923843930741E+18) ? (! -466981042) : (1825447673.1 <= protoObj1.prop1)))).concat(3.13710327740174E+18)) + uic8[(((+ v14[(0)]) * ((arguments.length instanceof ((typeof Error == 'function' ) ? Error : Object)) + ('·' + 'º$$h'.indexOf(((strvar6).replace(strvar6, 'E') + (VarArr0.reverse()))))))) & 255]))
+      };
+      // addobj:obj
+      // addvar:obj.x,obj.y
+      for (var v20 in v17) {
+          GiantPrintArray.push(v20 + ":" + v17[v20]);
+      }
+      return (ui16[120223835] ? ('Ë'.indexOf(strvar7)) : (func1.call(class8 ) * ((arrObj0.prop1 ? h : ('s' + 'oN Û' + ((obj1.prop0 > obj1.prop5) >> ((obj1.prop5 * "" + -7.16923843930741E+18) ? (! -466981042) : (1825447673.1 <= protoObj1.prop1)))).concat(3.13710327740174E+18)) + uic8[(((+ v14[(0)]) * ((arguments.length instanceof ((typeof Error == 'function' ) ? Error : Object)) + ('·' + 'º$$h'.indexOf(((strvar6).replace(strvar6, 'E') + (VarArr0.reverse()))))))) & 255])));
+    }
+  }
+  var func75 = async function(){
+    h -=(((ui32[(f64[(163) & 255]) & 255] instanceof ((typeof EvalError == 'function' ) ? EvalError : Object)) +     await this.prop0) * 'caller' - (func0.call(protoObj1 ) * FloatArr0[(((    await d >= 0 ?     await d : 0)) & 0XF)] + (h -= 120)));
+    var strvar9 = '!K##*' + '!.!Á!!aØ';
+    var id27 = func69();
+    //ReflectGetSetPrototypeOf.ecs
+
+    var v22 = new Array();
+    var v23 = new Array();
+    print(Reflect.setPrototypeOf(v23, v22));
+    print(Reflect.getPrototypeOf(v23));
+
+    return     await this.prop0;
+  };
+  var strvar9 = '$'.concat((typeof(obj0.length)  != 'string') );
+  strvar9 = strvar9.substring((strvar9.length)/2,(strvar9.length)/4);
+  WScript.Echo('a = ' + (a|0));
+  WScript.Echo('b = ' + (b|0));
+  WScript.Echo('c = ' + (c|0));
+  WScript.Echo('d = ' + (d|0));
+  WScript.Echo('e = ' + (e|0));
+  WScript.Echo('f = ' + (f|0));
+  WScript.Echo('g = ' + (g|0));
+  WScript.Echo('h = ' + (h|0));
+  WScript.Echo('this.prop0 = ' + (this.prop0|0));
+  WScript.Echo('this.prop1 = ' + (this.prop1|0));
+  WScript.Echo('obj0.prop0 = ' + (obj0.prop0|0));
+  WScript.Echo('obj0.prop1 = ' + (obj0.prop1|0));
+  WScript.Echo('obj0.length = ' + (obj0.length|0));
+  WScript.Echo('protoObj0.prop0 = ' + (protoObj0.prop0|0));
+  WScript.Echo('protoObj0.prop1 = ' + (protoObj0.prop1|0));
+  WScript.Echo('protoObj0.length = ' + (protoObj0.length|0));
+  WScript.Echo('obj1.prop0 = ' + (obj1.prop0|0));
+  WScript.Echo('obj1.prop1 = ' + (obj1.prop1|0));
+  WScript.Echo('obj1.length = ' + (obj1.length|0));
+  WScript.Echo('protoObj1.prop0 = ' + (protoObj1.prop0|0));
+  WScript.Echo('protoObj1.prop1 = ' + (protoObj1.prop1|0));
+  WScript.Echo('protoObj1.length = ' + (protoObj1.length|0));
+  WScript.Echo('arrObj0.prop0 = ' + (arrObj0.prop0|0));
+  WScript.Echo('arrObj0.prop1 = ' + (arrObj0.prop1|0));
+  WScript.Echo('arrObj0.length = ' + (arrObj0.length|0));
+  WScript.Echo('obj1.prop5 = ' + (obj1.prop5|0));
+  WScript.Echo('strvar0 = ' + (strvar0));
+  WScript.Echo('strvar1 = ' + (strvar1));
+  WScript.Echo('strvar2 = ' + (strvar2));
+  WScript.Echo('strvar3 = ' + (strvar3));
+  WScript.Echo('strvar4 = ' + (strvar4));
+  WScript.Echo('strvar5 = ' + (strvar5));
+  WScript.Echo('strvar6 = ' + (strvar6));
+  WScript.Echo('strvar7 = ' + (strvar7));
+  WScript.Echo('strvar9 = ' + (strvar9));
+  WScript.Echo('arrObj0[0] = ' + (arrObj0[0]|0));
+  WScript.Echo('arrObj0[1] = ' + (arrObj0[1]|0));
+  WScript.Echo('arrObj0[2] = ' + (arrObj0[2]|0));
+  WScript.Echo('arrObj0[3] = ' + (arrObj0[3]|0));
+  WScript.Echo('arrObj0[4] = ' + (arrObj0[4]|0));
+  WScript.Echo('arrObj0[5] = ' + (arrObj0[5]|0));
+  WScript.Echo('arrObj0[6] = ' + (arrObj0[6]|0));
+  WScript.Echo('arrObj0[7] = ' + (arrObj0[7]|0));
+  WScript.Echo('arrObj0[8] = ' + (arrObj0[8]|0));
+  WScript.Echo('arrObj0[9] = ' + (arrObj0[9]|0));
+  WScript.Echo('arrObj0[10] = ' + (arrObj0[10]|0));
+  WScript.Echo('arrObj0[11] = ' + (arrObj0[11]|0));
+  WScript.Echo('arrObj0[12] = ' + (arrObj0[12]|0));
+  WScript.Echo('arrObj0[13] = ' + (arrObj0[13]|0));
+  WScript.Echo('arrObj0[14] = ' + (arrObj0[14]|0));
+  WScript.Echo('arrObj0[arrObj0.length-1] = ' + (arrObj0[arrObj0.length-1]|0));
+  WScript.Echo('arrObj0.length = ' + (arrObj0.length|0));
+  WScript.Echo('ary[0] = ' + (ary[0]|0));
+  WScript.Echo('ary[1] = ' + (ary[1]|0));
+  WScript.Echo('ary[2] = ' + (ary[2]|0));
+  WScript.Echo('ary[3] = ' + (ary[3]|0));
+  WScript.Echo('ary[4] = ' + (ary[4]|0));
+  WScript.Echo('ary[5] = ' + (ary[5]|0));
+  WScript.Echo('ary[6] = ' + (ary[6]|0));
+  WScript.Echo('ary[7] = ' + (ary[7]|0));
+  WScript.Echo('ary[8] = ' + (ary[8]|0));
+  WScript.Echo('ary[9] = ' + (ary[9]|0));
+  WScript.Echo('ary[10] = ' + (ary[10]|0));
+  WScript.Echo('ary[11] = ' + (ary[11]|0));
+  WScript.Echo('ary[12] = ' + (ary[12]|0));
+  WScript.Echo('ary[13] = ' + (ary[13]|0));
+  WScript.Echo('ary[14] = ' + (ary[14]|0));
+  WScript.Echo('ary[ary.length-1] = ' + (ary[ary.length-1]|0));
+  WScript.Echo('ary.length = ' + (ary.length|0));
+  for (var i = 0; i < GiantPrintArray.length; i++) {
+  WScript.Echo(GiantPrintArray[i]);
+  }
+;
+  WScript.Echo('sumOfary = ' +  ary.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_ary = ' +  ary.slice(0, 11));;
+  WScript.Echo('sumOfIntArr0 = ' +  IntArr0.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_IntArr0 = ' +  IntArr0.slice(0, 11));;
+  WScript.Echo('sumOfIntArr1 = ' +  IntArr1.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_IntArr1 = ' +  IntArr1.slice(0, 11));;
+  WScript.Echo('sumOfFloatArr0 = ' +  FloatArr0.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_FloatArr0 = ' +  FloatArr0.slice(0, 11));;
+  WScript.Echo('sumOfVarArr0 = ' +  VarArr0.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_VarArr0 = ' +  VarArr0.slice(0, 11));;
+  WScript.Echo('sumOfaliasOfFloatArr0 = ' +  aliasOfFloatArr0.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
+  WScript.Echo('subset_of_aliasOfFloatArr0 = ' +  aliasOfFloatArr0.slice(0, 11));;
+};
+
+// generate profile
+test0();
+// Run Simple JIT
+test0();
+test0();
+
+// run JITted code
+runningJITtedCode = true;
+test0();
+
+print('pass');

Разница между файлами не показана из-за своего большого размера
+ 1372 - 0
test/es6module/test002.js


+ 0 - 0
test/es6/testDynamicImportfromModule.js → test/es6module/testDynamicImportfromModule.js


+ 0 - 0
test/es6/test_bug_2645.js → test/es6module/test_bug_2645.js


+ 5 - 0
test/rlexedirs.xml

@@ -246,6 +246,11 @@
     <files>es6</files>
   </default>
 </dir>
+<dir>
+  <default>
+    <files>es6module</files>
+  </default>
+</dir>
 <dir>
   <default>
     <files>es7</files>

Некоторые файлы не были показаны из-за большого количества измененных файлов