Skip to content

Commit 440be0c

Browse files
committed
Merge tag 'v4.23.1' into next
4.23.1
2 parents 69cfc6f + 607cf70 commit 440be0c

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

lib/ConstPlugin.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,15 @@ class ConstPlugin {
291291
(expression.operator === "||" && !bool);
292292

293293
if (param.isBoolean() || keepRight) {
294-
const dep = new ConstDependency(`${bool}`, param.range);
294+
// for case like
295+
//
296+
// return'development'===process.env.NODE_ENV&&'foo'
297+
//
298+
// we need a space before the bool to prevent result like
299+
//
300+
// returnfalse&&'foo'
301+
//
302+
const dep = new ConstDependency(` ${bool}`, param.range);
295303
dep.loc = expression.loc;
296304
parser.state.current.addDependency(dep);
297305
} else {

test/cases/parsing/evaluate/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,15 @@ it("should evaluate logical expression", function() {
1111
var value4 = typeof require !== "function" && require("fail");
1212
var value5 = "hello" && (() => "value5")();
1313
var value6 = "" || (() => "value6")();
14+
var value7 = (function () { return'value7'===typeof 'value7'&&'value7'})();
15+
1416
expect(value1).toBe("hello");
1517
expect(value2).toBe(true);
1618
expect(value3).toBe("");
1719
expect(value4).toBe(false);
1820
expect(value5).toBe("value5");
1921
expect(value6).toBe("value6");
22+
expect(value7).toBe(false);
2023
});
2124

2225
if("shouldn't evaluate expression", function() {

0 commit comments

Comments
 (0)