// SyntaxError: Identifier 'e' has already been declared
```
UglifyJS may modify the input which in turn may suppress those errors.
+- Some versions of Chrome and Node.js will give incorrect results with the
+ following:
+ ```javascript
+ console.log({
+ ...{
+ set 42(v) {},
+ 42: "PASS",
+ },
+ });
+ // Expected: { '42': 'PASS' }
+ // Actual: { '42': undefined }
+ ```
+ UglifyJS may modify the input which in turn may suppress those errors.
template: "``",
trailing_comma: "function f(a,) {}",
});
+if (SUPPORT.exponentiation && sandbox.run_code("console.log(10 ** 100 === Math.pow(10, 100));") !== "true\n") {
+ SUPPORT.exponentiation = false;
+}
var VALUES = [
'"a"',
BINARY_OPS = BINARY_OPS.concat(BINARY_OPS);
BINARY_OPS.push(" in ");
-var ASSIGNMENTS = [
- "=",
- "=",
- "=",
- "=",
- "=",
- "=",
- "=",
- "=",
- "=",
- "=",
-
- "=",
- "=",
- "=",
- "=",
- "=",
- "=",
- "=",
- "=",
- "=",
- "=",
-
- "+=",
- "+=",
- "+=",
- "+=",
- "+=",
- "+=",
- "+=",
- "+=",
- "+=",
- "+=",
-
+var ASSIGNMENTS = [ "=" ];
+ASSIGNMENTS = ASSIGNMENTS.concat(ASSIGNMENTS);
+ASSIGNMENTS.push("+=");
+ASSIGNMENTS = ASSIGNMENTS.concat(ASSIGNMENTS);
+ASSIGNMENTS = ASSIGNMENTS.concat(ASSIGNMENTS);
+ASSIGNMENTS = ASSIGNMENTS.concat(ASSIGNMENTS);
+ASSIGNMENTS = ASSIGNMENTS.concat([
"-=",
"*=",
"/=",
"<<=",
">>=",
">>>=",
-];
-if (SUPPORT.exponentiation) ASSIGNMENTS.push("**=");
+]);
+if (SUPPORT.exponentiation) {
+ ASSIGNMENTS = ASSIGNMENTS.concat(ASSIGNMENTS);
+ ASSIGNMENTS.push("**=");
+}
var UNARY_SAFE = [
"+",