|
|
@@ -0,0 +1,47 @@
|
|
|
+//-------------------------------------------------------------------------------------------------------
|
|
|
+// Copyright (C) Microsoft. All rights reserved.
|
|
|
+// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
|
|
|
+//-------------------------------------------------------------------------------------------------------
|
|
|
+
|
|
|
+// ES6 Module tests for bugfixes
|
|
|
+
|
|
|
+WScript.LoadScriptFile("..\\UnitTestFramework\\UnitTestFramework.js");
|
|
|
+
|
|
|
+function testModuleScript(source, message, shouldFail = false) {
|
|
|
+ let testfunc = () => testRunner.LoadModule(source, 'samethread', shouldFail);
|
|
|
+
|
|
|
+ if (shouldFail) {
|
|
|
+ let caught = false;
|
|
|
+
|
|
|
+ // We can't use assert.throws here because the SyntaxError used to construct the thrown error
|
|
|
+ // is from a different context so it won't be strictly equal to our SyntaxError.
|
|
|
+ try {
|
|
|
+ testfunc();
|
|
|
+ } catch(e) {
|
|
|
+ caught = true;
|
|
|
+
|
|
|
+ // Compare toString output of SyntaxError and other context SyntaxError constructor.
|
|
|
+ assert.areEqual(e.constructor.toString(), SyntaxError.toString(), message);
|
|
|
+ }
|
|
|
+
|
|
|
+ assert.isTrue(caught, `Expected error not thrown: ${message}`);
|
|
|
+ } else {
|
|
|
+ assert.doesNotThrow(testfunc, message);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+var tests = [
|
|
|
+ {
|
|
|
+ name: "OS12113549: Assertion on module export in ProcessCapturedSym",
|
|
|
+ body: function() {
|
|
|
+ let functionBody =
|
|
|
+ `
|
|
|
+ import { module1_exportbinding_0 as module2_localbinding_0 } from 'bug_OS12113549_module1.js';
|
|
|
+ assert.areEqual({"BugID": "OS12113549"}, module2_localbinding_0);
|
|
|
+ `
|
|
|
+ testRunner.LoadModule(functionBody, 'samethread');
|
|
|
+ }
|
|
|
+ },
|
|
|
+];
|
|
|
+
|
|
|
+testRunner.runTests(tests, { verbose: WScript.Arguments[0] != "summary" });
|