Skip to content

SyntaxError: Missing initializer in const declaration with await on UMD #36780

@filipesilva

Description

@filipesilva

TypeScript Version: 3.7.5

Search Terms:
SyntaxError: Missing initializer in const declaration
yield generator argument syntaxerror

Code

export async function func() {
  const packageName = '.';
  const packageJson = await import(packageName + '/package.json');
}
{
  "compilerOptions": {
    "module": "UMD",
    "target": "es2015",
  },
  "files": [
    "test.ts"
  ]
}

Expected behavior:
TS outputs valid syntax.

Actual behavior:
TS outputs invalid syntax.

var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
(function (factory) {
    if (typeof module === "object" && typeof module.exports === "object") {
        var v = factory(require, exports);
        if (v !== undefined) module.exports = v;
    }
    else if (typeof define === "function" && define.amd) {
        define(["require", "exports"], factory);
    }
})(function (require, exports) {
    "use strict";
    var __syncRequire = typeof module === "object" && typeof module.exports === "object";
    Object.defineProperty(exports, "__esModule", { value: true });
    function func() {
        return __awaiter(this, void 0, void 0, function* () {
            var _a;
            const packageName = '.';
            const packageJson = yield _a = packageName + '/package.json', __syncRequire ? Promise.resolve().then(() => require(_a)) : new Promise((resolve_1, reject_1) => { require([_a], resolve_1, reject_1); });
        });
    }
    exports.func = func;
});

When executed on node, I get following error:

kamik@RED-X1C6 MINGW64 /d/sandbox/random (master)
$ node test.js 
D:\sandbox\random\test.js:26
            const packageJson = yield _a = packageName + '/package.json', __syncRequire ? Promise.resolve().then(() => require(_a)) : new Promise((resolve_1, reject_1) => { require([_a], resolve_1, reject_1); });
                                                                          ^^^^^^^^^^^^^

SyntaxError: Missing initializer in const declaration
←[90m    at Module._compile (internal/modules/cjs/loader.js:718:23)←[39m
←[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)←[39m
←[90m    at Module.load (internal/modules/cjs/loader.js:641:32)←[39m
←[90m    at Function.Module._load (internal/modules/cjs/loader.js:556:12)←[39m
←[90m    at Function.Module.runMain (internal/modules/cjs/loader.js:837:10)←[39m
←[90m    at internal/main/run_main_module.js:17:11←[39m

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptDomain: API: TransformsRelates to the public transform API

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions