Skip to content

Block-scoped variable declarations emitted incorrectly for --target ES6 #5315

@plantain-00

Description

@plantain-00

version: typescript@1.8.0-dev.20151019

steps:

a.ts

async function a() {
    try {
        let status = 2;
        status = 3
    }
    catch (e) {

    }
}

run tsc a.ts -t es6 -m commonjs

result: a.js

var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promise, generator) {
    return new Promise(function (resolve, reject) {
        generator = generator.call(thisArg, _arguments);
        function cast(value) { return value instanceof Promise && value.constructor === Promise ? value : new Promise(function (resolve) { resolve(value); }); }
        function onfulfill(value) { try { step("next", value); } catch (e) { reject(e); } }
        function onreject(value) { try { step("throw", value); } catch (e) { reject(e); } }
        function step(verb, value) {
            var result = generator[verb](value);
            result.done ? resolve(result.value) : cast(result.value).then(onfulfill, onreject);
        }
        step("next", void 0);
    });
};
function a() {
    return __awaiter(this, void 0, Promise, function* () {
        try {
            let status = 2;
            status_1 = 3;
        }
        catch (e) {
        }
    });
}

@RyanCavanaugh

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptFixedA PR has been merged for this issueHigh Priority

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions