Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master' into fix/replace
Browse files Browse the repository at this point in the history
  • Loading branch information
shellscape committed Sep 23, 2024
2 parents 6b4ee00 + 1e73857 commit 6a7afaa
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 9 deletions.
8 changes: 8 additions & 0 deletions packages/commonjs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# @rollup/plugin-commonjs ChangeLog

## v26.0.2

_2024-09-23_

### Bugfixes

- fix: replace top-level this with exports name (#1618)

## v26.0.1

_2024-06-05_
Expand Down
2 changes: 1 addition & 1 deletion packages/commonjs/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@rollup/plugin-commonjs",
"version": "26.0.1",
"version": "26.0.2",
"publishConfig": {
"access": "public"
},
Expand Down
8 changes: 7 additions & 1 deletion packages/commonjs/src/transform-commonjs.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ export default async function transformCommonjs(
const topLevelAssignments = new Set();
const topLevelDefineCompiledEsmExpressions = [];
const replacedGlobal = [];
const replacedThis = [];
const replacedDynamicRequires = [];
const importedVariables = new Set();
const indentExclusionRanges = [];
Expand Down Expand Up @@ -369,7 +370,7 @@ export default async function transformCommonjs(
if (lexicalDepth === 0 && !classBodyDepth) {
uses.global = true;
if (!ignoreGlobal) {
replacedGlobal.push(node);
replacedThis.push(node);
}
}
return;
Expand Down Expand Up @@ -444,6 +445,11 @@ export default async function transformCommonjs(
storeName: true
});
}
for (const node of replacedThis) {
magicString.overwrite(node.start, node.end, exportsName, {
storeName: true
});
}
for (const node of replacedDynamicRequires) {
magicString.overwrite(
node.start,
Expand Down
5 changes: 3 additions & 2 deletions packages/commonjs/test/fixtures/function/this/main.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
const { augmentThis, classThis } = require('./foo');
const { augmentThis, classThis, y } = require('./foo');

const obj = {};
augmentThis.call(obj);

t.is(obj.x, 'x');
t.is(this.y, 'y');
t.is(this.y, undefined);
t.is(y, 'y');

const instance = new classThis();

Expand Down
9 changes: 4 additions & 5 deletions packages/commonjs/test/snapshots/function.js.md
Original file line number Diff line number Diff line change
Expand Up @@ -7286,8 +7286,6 @@ Generated by [AVA](https://avajs.dev).
{
'main.js': `'use strict';␊
␊
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
␊
var main = {};␊
␊
var foo = {};␊
Expand All @@ -7296,7 +7294,7 @@ Generated by [AVA](https://avajs.dev).
this.x = 'x';␊
};␊
␊
commonjsGlobal.y = 'y';␊
foo.y = 'y';␊
␊
foo.classThis = class classThis {␊
constructor(){␊
Expand All @@ -7310,13 +7308,14 @@ Generated by [AVA](https://avajs.dev).
yy = this.y␊
};␊
␊
const { augmentThis, classThis } = foo;␊
const { augmentThis, classThis, y } = foo;␊
␊
const obj = {};␊
augmentThis.call(obj);␊
␊
t.is(obj.x, 'x');␊
t.is(commonjsGlobal.y, 'y');␊
t.is(main.y, undefined);␊
t.is(y, 'y');␊
␊
const instance = new classThis();␊
␊
Expand Down
Binary file modified packages/commonjs/test/snapshots/function.js.snap
Binary file not shown.

0 comments on commit 6a7afaa

Please sign in to comment.