Skip to content

[Bug] Wrong function scope with rest parameters after transpiled #1037

Open
@zhanghaobin

Description

@zhanghaobin

description

async function with rest parameters seems got wrong function scope after transpiled

version

microbundle@^0.15.1

reproduce demo

// tsconfig.json

{
  "compilerOptions": {
    "esModuleInterop": true,
    "target": "ES6",
    "strict": true,
    "moduleResolution": "node",
    "experimentalDecorators": true,
    "baseUrl": ".",
    "allowJs": true
  },
  "include": ["*.ts"]
}

// test.ts

export const fn = async (...args: unknown[]) => {
  await 1;
  [].forEach(() => console.log(...args))
}
// test.js (generated by `microbundle -i test.ts -o test.js`)

exports.fn = function () {
  return Promise.resolve(1).then(function () {
    var n = arguments; // <- wrong function scope!!!
    [].forEach(function () {
      var o;
      return (o = console).log.apply(o, [].slice.call(n));
    });
  });
};
//# sourceMappingURL=test.js.map

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions