rollup 0.49.2 → 0.49.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # rollup changelog
2
2
 
3
+ ## 0.49.3
4
+
5
+ * Respect `watch` options ([#1596](https://github.com/rollup/rollup/issues/1596))
6
+ * Fix treeshaking regressions ([#1604](https://github.com/rollup/rollup/pull/1604))
7
+ * Allow `-o` to work with `output.format` ([#1606](https://github.com/rollup/rollup/pull/1606))
8
+
3
9
  ## 0.49.2
4
10
 
5
11
  * Fix treeshaking regressions ([#1591](https://github.com/rollup/rollup/pull/1591))
@@ -59,7 +65,7 @@
59
65
  ## 0.46.3
60
66
 
61
67
  * init for/for-of loop section head with correct scopes ([#1538](https://github.com/rollup/rollup/issues/1538), [#1539](https://github.com/rollup/rollup/issues/1539))
62
- * Fix namespace imports and re-exports in `es` outpot ([#1511](https://github.com/rollup/rollup/issues/1511))
68
+ * Fix namespace imports and re-exports in `es` output ([#1511](https://github.com/rollup/rollup/issues/1511))
63
69
  * Deshadow indirectly imported namespaces ([#1488](https://github.com/rollup/rollup/issues/1488), [#1505](https://github.com/rollup/rollup/issues/1505))
64
70
 
65
71
  ## 0.46.2
package/bin/rollup CHANGED
@@ -250,7 +250,7 @@ function isNumber (x) {
250
250
 
251
251
  var help = "rollup version __VERSION__\n=====================================\n\nUsage: rollup [options] <entry file>\n\nBasic options:\n\n-v, --version Show version number\n-h, --help Show this help message\n-c, --config Use this config file (if argument is used but value\n is unspecified, defaults to rollup.config.js)\n-w, --watch Watch files in bundle and rebuild on changes\n-i, --input Input (alternative to <entry file>)\n-o, --output.file <output> Output (if absent, prints to stdout)\n-f, --output.format [es] Type of output (amd, cjs, es, iife, umd)\n-e, --external Comma-separate list of module IDs to exclude\n-g, --globals Comma-separate list of `module ID:Global` pairs\n Any module IDs defined here are added to external\n-n, --name Name for UMD export\n-m, --sourcemap Generate sourcemap (`-m inline` for inline map)\n--amd.id ID for AMD module (default is anonymous)\n--amd.define Function to use in place of `define`\n--no-strict Don't emit a `\"use strict\";` in the generated modules.\n--no-indent Don't indent result\n--environment <values> Settings passed to config file (see example)\n--no-conflict Generate a noConflict method for UMD globals\n--silent Don't print warnings\n--intro Content to insert at top of bundle (inside wrapper)\n--outro Content to insert at end of bundle (inside wrapper)\n--banner Content to insert at top of bundle (outside wrapper)\n--footer Content to insert at end of bundle (outside wrapper)\n--interop Include interop block (true by default)\n\nExamples:\n\n# use settings in config file\nrollup -c\n\n# in config file, process.env.INCLUDE_DEPS === 'true'\n# and process.env.BUILD === 'production'\nrollup -c --environment INCLUDE_DEPS,BUILD:production\n\n# create CommonJS bundle.js from src/main.js\nrollup --format=cjs --output=bundle.js -- src/main.js\n\n# create self-executing IIFE using `window.jQuery`\n# and `window._` as external globals\nrollup -f iife --globals jquery:jQuery,lodash:_ \\\n -i src/app.js -o build/app.js -m build/app.js.map\n\nNotes:\n\n* When piping to stdout, only inline sourcemaps are permitted\n\nFor more information visit https://github.com/rollup/rollup/wiki\n";
252
252
 
253
- var version = "0.49.2";
253
+ var version = "0.49.3";
254
254
 
255
255
  var modules = {};
256
256
 
@@ -2244,7 +2244,8 @@ function mergeOptions ( config, command ) {
2244
2244
  context: config.context,
2245
2245
  moduleContext: config.moduleContext,
2246
2246
  plugins: config.plugins,
2247
- onwarn: config.onwarn
2247
+ onwarn: config.onwarn,
2248
+ watch: config.watch
2248
2249
  };
2249
2250
 
2250
2251
  // legacy, to ensure e.g. commonjs plugin still works
@@ -2300,14 +2301,21 @@ function mergeOptions ( config, command ) {
2300
2301
  paths: getOption('paths')
2301
2302
  };
2302
2303
 
2303
- const outputOptions = (
2304
- (command.output || config.output) ?
2304
+ let mergedOutputOptions;
2305
+ if (Array.isArray(config.output)) {
2306
+ mergedOutputOptions = config.output.map((output) => Object.assign({}, output, command.output));
2307
+ } else if (config.output && command.output) {
2308
+ mergedOutputOptions = [Object.assign({}, config.output, command.output)];
2309
+ } else {
2310
+ mergedOutputOptions = (command.output || config.output) ?
2305
2311
  ensureArray(command.output || config.output) :
2306
2312
  [{
2307
2313
  file: command.output ? command.output.file : null,
2308
2314
  format: command.output ? command.output.format : null
2309
- }]
2310
- ).map(output => {
2315
+ }];
2316
+ }
2317
+
2318
+ const outputOptions = mergedOutputOptions.map(output => {
2311
2319
  return Object.assign({}, baseOutputOptions, output);
2312
2320
  });
2313
2321
 
@@ -1,6 +1,6 @@
1
1
  /*
2
- Rollup.js v0.49.2
3
- Tue Aug 29 2017 08:11:12 GMT-0400 (EDT) - commit 0c85e2c31fc8787550e9482a0746d626379a068d
2
+ Rollup.js v0.49.3
3
+ Thu Sep 07 2017 21:02:36 GMT-0400 (EDT) - commit 0d20ed12e069b4fc445faecf221ffe5b40fbf90a
4
4
 
5
5
 
6
6
  https://github.com/rollup/rollup
@@ -5745,11 +5745,11 @@ class Node$1 {
5745
5745
  }
5746
5746
 
5747
5747
  hasEffectsWhenAssigned () {
5748
- return false;
5748
+ return true;
5749
5749
  }
5750
5750
 
5751
5751
  hasEffectsWhenMutated () {
5752
- return false;
5752
+ return true;
5753
5753
  }
5754
5754
 
5755
5755
  includeDeclaration () {
@@ -6027,9 +6027,11 @@ class AssignmentExpression extends Node$1 {
6027
6027
  hasEffectsAsExpressionStatement ( options ) {
6028
6028
  return this.hasEffects( options );
6029
6029
  }
6030
+ }
6030
6031
 
6031
- hasEffectsWhenMutated () {
6032
- return true;
6032
+ class AssignmentPattern extends Node$1 {
6033
+ hasEffectsWhenAssigned ( options ) {
6034
+ return this.left.hasEffectsWhenAssigned( options );
6033
6035
  }
6034
6036
  }
6035
6037
 
@@ -6081,10 +6083,6 @@ class BinaryExpression extends Node$1 {
6081
6083
 
6082
6084
  return operators[ this.operator ]( leftValue, rightValue );
6083
6085
  }
6084
-
6085
- hasEffectsWhenMutated () {
6086
- return true;
6087
- }
6088
6086
  }
6089
6087
 
6090
6088
  class Statement extends Node$1 {
@@ -6241,7 +6239,7 @@ simdTypes.forEach( t => {
6241
6239
  'ArrayBuffer', 'ArrayBuffer.isView',
6242
6240
  'DataView',
6243
6241
  'JSON.parse', 'JSON.stringify',
6244
- 'Promise', 'Promise.all', 'Promise.race', 'Promise.reject', 'Promise.resolve',
6242
+ 'Promise.all', 'Promise.race', 'Promise.resolve',
6245
6243
  'Intl.Collator', 'Intl.Collator.supportedLocalesOf', 'Intl.DateTimeFormat', 'Intl.DateTimeFormat.supportedLocalesOf', 'Intl.NumberFormat', 'Intl.NumberFormat.supportedLocalesOf'
6246
6244
 
6247
6245
  // TODO properties of e.g. window...
@@ -6391,10 +6389,6 @@ class CallExpression extends Node$1 {
6391
6389
  hasEffectsAsExpressionStatement ( options ) {
6392
6390
  return this.hasEffects( options );
6393
6391
  }
6394
-
6395
- hasEffectsWhenMutated () {
6396
- return true;
6397
- }
6398
6392
  }
6399
6393
 
6400
6394
  class CatchClause extends Node$1 {
@@ -6511,10 +6505,6 @@ class ConditionalExpression extends Node$1 {
6511
6505
  return testValue ? this.consequent.getValue() : this.alternate.getValue();
6512
6506
  }
6513
6507
 
6514
- hasEffectsWhenMutated () {
6515
- return true;
6516
- }
6517
-
6518
6508
  render ( code, es ) {
6519
6509
  if ( !this.module.bundle.treeshake ) {
6520
6510
  super.render( code, es );
@@ -6932,6 +6922,10 @@ class Identifier extends Node$1 {
6932
6922
  }
6933
6923
  }
6934
6924
 
6925
+ hasEffectsAsExpressionStatement ( options ) {
6926
+ return this.hasEffects( options ) || this.declaration.isGlobal;
6927
+ }
6928
+
6935
6929
  hasEffectsWhenAssigned () {
6936
6930
  return this.declaration && this.declaration.included;
6937
6931
  }
@@ -7105,6 +7099,10 @@ class Literal extends Node$1 {
7105
7099
  values.add( this );
7106
7100
  }
7107
7101
 
7102
+ hasEffectsWhenMutated () {
7103
+ return false;
7104
+ }
7105
+
7108
7106
  render ( code ) {
7109
7107
  if ( typeof this.value === 'string' ) {
7110
7108
  code.indentExclusionRanges.push( [ this.start + 1, this.end - 1 ] );
@@ -7127,6 +7125,17 @@ class LogicalExpression extends Node$1 {
7127
7125
 
7128
7126
  return operators$1[ this.operator ]( leftValue, rightValue );
7129
7127
  }
7128
+
7129
+ hasEffectsWhenMutated ( options ) {
7130
+ const leftValue = this.left.getValue();
7131
+ if ( leftValue === UNKNOWN_VALUE ) {
7132
+ return this.left.hasEffectsWhenMutated( options ) || this.right.hasEffectsWhenMutated( options );
7133
+ }
7134
+ if ((leftValue && this.operator === '||') || (!leftValue && this.operator === '&&')) {
7135
+ return this.left.hasEffectsWhenMutated( options );
7136
+ }
7137
+ return this.right.hasEffectsWhenMutated( options );
7138
+ }
7130
7139
  }
7131
7140
 
7132
7141
  const validProp = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/;
@@ -7210,10 +7219,6 @@ class MemberExpression extends Node$1 {
7210
7219
  return this.object.hasEffectsWhenMutated( options );
7211
7220
  }
7212
7221
 
7213
- hasEffectsWhenMutated () {
7214
- return true;
7215
- }
7216
-
7217
7222
  includeInBundle () {
7218
7223
  let addedNewNodes = super.includeInBundle();
7219
7224
  if ( this.declaration && !this.declaration.included ) {
@@ -7243,6 +7248,12 @@ class NewExpression extends Node$1 {
7243
7248
  }
7244
7249
  }
7245
7250
 
7251
+ class ObjectExpression extends Node$1 {
7252
+ hasEffectsWhenMutated () {
7253
+ return false;
7254
+ }
7255
+ }
7256
+
7246
7257
  class ObjectPattern extends Node$1 {
7247
7258
  assignExpression () {
7248
7259
  this.eachChild( child => child.assignExpression( UNKNOWN_ASSIGNMENT ) );
@@ -7370,10 +7381,6 @@ class TemplateLiteral extends Node$1 {
7370
7381
  }
7371
7382
 
7372
7383
  class ThisExpression extends Node$1 {
7373
- hasEffectsWhenMutated () {
7374
- return true;
7375
- }
7376
-
7377
7384
  initialiseNode () {
7378
7385
  const lexicalBoundary = this.scope.findLexicalBoundary();
7379
7386
 
@@ -7702,7 +7709,7 @@ var nodes = {
7702
7709
  ArrayPattern,
7703
7710
  ArrowFunctionExpression,
7704
7711
  AssignmentExpression,
7705
- AssignmentPattern: Node$1,
7712
+ AssignmentPattern,
7706
7713
  AwaitExpression,
7707
7714
  BinaryExpression,
7708
7715
  BlockStatement,
@@ -7730,7 +7737,7 @@ var nodes = {
7730
7737
  LogicalExpression,
7731
7738
  MemberExpression,
7732
7739
  NewExpression,
7733
- ObjectExpression: Node$1,
7740
+ ObjectExpression,
7734
7741
  ObjectPattern,
7735
7742
  Property,
7736
7743
  RestElement,
@@ -7754,14 +7761,6 @@ class UnknownNode extends Node$1 {
7754
7761
  hasEffects () {
7755
7762
  return true;
7756
7763
  }
7757
-
7758
- hasEffectsWhenAssigned () {
7759
- return true;
7760
- }
7761
-
7762
- hasEffectsWhenMutated () {
7763
- return true;
7764
- }
7765
7764
  }
7766
7765
 
7767
7766
  var keys$1 = {
@@ -10358,7 +10357,7 @@ function rollup ( options ) {
10358
10357
  }
10359
10358
  }
10360
10359
 
10361
- var version$1 = "0.49.2";
10360
+ var version$1 = "0.49.3";
10362
10361
 
10363
10362
  exports.rollup = rollup;
10364
10363
  exports.VERSION = version$1;
package/dist/rollup.es.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*
2
- Rollup.js v0.49.2
3
- Tue Aug 29 2017 08:11:12 GMT-0400 (EDT) - commit 0c85e2c31fc8787550e9482a0746d626379a068d
2
+ Rollup.js v0.49.3
3
+ Thu Sep 07 2017 21:02:36 GMT-0400 (EDT) - commit 0d20ed12e069b4fc445faecf221ffe5b40fbf90a
4
4
 
5
5
 
6
6
  https://github.com/rollup/rollup
@@ -5697,11 +5697,11 @@ class Node$1 {
5697
5697
  }
5698
5698
 
5699
5699
  hasEffectsWhenAssigned () {
5700
- return false;
5700
+ return true;
5701
5701
  }
5702
5702
 
5703
5703
  hasEffectsWhenMutated () {
5704
- return false;
5704
+ return true;
5705
5705
  }
5706
5706
 
5707
5707
  includeDeclaration () {
@@ -5979,9 +5979,11 @@ class AssignmentExpression extends Node$1 {
5979
5979
  hasEffectsAsExpressionStatement ( options ) {
5980
5980
  return this.hasEffects( options );
5981
5981
  }
5982
+ }
5982
5983
 
5983
- hasEffectsWhenMutated () {
5984
- return true;
5984
+ class AssignmentPattern extends Node$1 {
5985
+ hasEffectsWhenAssigned ( options ) {
5986
+ return this.left.hasEffectsWhenAssigned( options );
5985
5987
  }
5986
5988
  }
5987
5989
 
@@ -6033,10 +6035,6 @@ class BinaryExpression extends Node$1 {
6033
6035
 
6034
6036
  return operators[ this.operator ]( leftValue, rightValue );
6035
6037
  }
6036
-
6037
- hasEffectsWhenMutated () {
6038
- return true;
6039
- }
6040
6038
  }
6041
6039
 
6042
6040
  class Statement extends Node$1 {
@@ -6193,7 +6191,7 @@ simdTypes.forEach( t => {
6193
6191
  'ArrayBuffer', 'ArrayBuffer.isView',
6194
6192
  'DataView',
6195
6193
  'JSON.parse', 'JSON.stringify',
6196
- 'Promise', 'Promise.all', 'Promise.race', 'Promise.reject', 'Promise.resolve',
6194
+ 'Promise.all', 'Promise.race', 'Promise.resolve',
6197
6195
  'Intl.Collator', 'Intl.Collator.supportedLocalesOf', 'Intl.DateTimeFormat', 'Intl.DateTimeFormat.supportedLocalesOf', 'Intl.NumberFormat', 'Intl.NumberFormat.supportedLocalesOf'
6198
6196
 
6199
6197
  // TODO properties of e.g. window...
@@ -6343,10 +6341,6 @@ class CallExpression extends Node$1 {
6343
6341
  hasEffectsAsExpressionStatement ( options ) {
6344
6342
  return this.hasEffects( options );
6345
6343
  }
6346
-
6347
- hasEffectsWhenMutated () {
6348
- return true;
6349
- }
6350
6344
  }
6351
6345
 
6352
6346
  class CatchClause extends Node$1 {
@@ -6463,10 +6457,6 @@ class ConditionalExpression extends Node$1 {
6463
6457
  return testValue ? this.consequent.getValue() : this.alternate.getValue();
6464
6458
  }
6465
6459
 
6466
- hasEffectsWhenMutated () {
6467
- return true;
6468
- }
6469
-
6470
6460
  render ( code, es ) {
6471
6461
  if ( !this.module.bundle.treeshake ) {
6472
6462
  super.render( code, es );
@@ -6884,6 +6874,10 @@ class Identifier extends Node$1 {
6884
6874
  }
6885
6875
  }
6886
6876
 
6877
+ hasEffectsAsExpressionStatement ( options ) {
6878
+ return this.hasEffects( options ) || this.declaration.isGlobal;
6879
+ }
6880
+
6887
6881
  hasEffectsWhenAssigned () {
6888
6882
  return this.declaration && this.declaration.included;
6889
6883
  }
@@ -7057,6 +7051,10 @@ class Literal extends Node$1 {
7057
7051
  values.add( this );
7058
7052
  }
7059
7053
 
7054
+ hasEffectsWhenMutated () {
7055
+ return false;
7056
+ }
7057
+
7060
7058
  render ( code ) {
7061
7059
  if ( typeof this.value === 'string' ) {
7062
7060
  code.indentExclusionRanges.push( [ this.start + 1, this.end - 1 ] );
@@ -7079,6 +7077,17 @@ class LogicalExpression extends Node$1 {
7079
7077
 
7080
7078
  return operators$1[ this.operator ]( leftValue, rightValue );
7081
7079
  }
7080
+
7081
+ hasEffectsWhenMutated ( options ) {
7082
+ const leftValue = this.left.getValue();
7083
+ if ( leftValue === UNKNOWN_VALUE ) {
7084
+ return this.left.hasEffectsWhenMutated( options ) || this.right.hasEffectsWhenMutated( options );
7085
+ }
7086
+ if ((leftValue && this.operator === '||') || (!leftValue && this.operator === '&&')) {
7087
+ return this.left.hasEffectsWhenMutated( options );
7088
+ }
7089
+ return this.right.hasEffectsWhenMutated( options );
7090
+ }
7082
7091
  }
7083
7092
 
7084
7093
  const validProp = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/;
@@ -7162,10 +7171,6 @@ class MemberExpression extends Node$1 {
7162
7171
  return this.object.hasEffectsWhenMutated( options );
7163
7172
  }
7164
7173
 
7165
- hasEffectsWhenMutated () {
7166
- return true;
7167
- }
7168
-
7169
7174
  includeInBundle () {
7170
7175
  let addedNewNodes = super.includeInBundle();
7171
7176
  if ( this.declaration && !this.declaration.included ) {
@@ -7195,6 +7200,12 @@ class NewExpression extends Node$1 {
7195
7200
  }
7196
7201
  }
7197
7202
 
7203
+ class ObjectExpression extends Node$1 {
7204
+ hasEffectsWhenMutated () {
7205
+ return false;
7206
+ }
7207
+ }
7208
+
7198
7209
  class ObjectPattern extends Node$1 {
7199
7210
  assignExpression () {
7200
7211
  this.eachChild( child => child.assignExpression( UNKNOWN_ASSIGNMENT ) );
@@ -7322,10 +7333,6 @@ class TemplateLiteral extends Node$1 {
7322
7333
  }
7323
7334
 
7324
7335
  class ThisExpression extends Node$1 {
7325
- hasEffectsWhenMutated () {
7326
- return true;
7327
- }
7328
-
7329
7336
  initialiseNode () {
7330
7337
  const lexicalBoundary = this.scope.findLexicalBoundary();
7331
7338
 
@@ -7654,7 +7661,7 @@ var nodes = {
7654
7661
  ArrayPattern,
7655
7662
  ArrowFunctionExpression,
7656
7663
  AssignmentExpression,
7657
- AssignmentPattern: Node$1,
7664
+ AssignmentPattern,
7658
7665
  AwaitExpression,
7659
7666
  BinaryExpression,
7660
7667
  BlockStatement,
@@ -7682,7 +7689,7 @@ var nodes = {
7682
7689
  LogicalExpression,
7683
7690
  MemberExpression,
7684
7691
  NewExpression,
7685
- ObjectExpression: Node$1,
7692
+ ObjectExpression,
7686
7693
  ObjectPattern,
7687
7694
  Property,
7688
7695
  RestElement,
@@ -7706,14 +7713,6 @@ class UnknownNode extends Node$1 {
7706
7713
  hasEffects () {
7707
7714
  return true;
7708
7715
  }
7709
-
7710
- hasEffectsWhenAssigned () {
7711
- return true;
7712
- }
7713
-
7714
- hasEffectsWhenMutated () {
7715
- return true;
7716
- }
7717
7716
  }
7718
7717
 
7719
7718
  var keys$1 = {
@@ -14166,7 +14165,7 @@ function watch$1(configs) {
14166
14165
  return new Watcher(configs);
14167
14166
  }
14168
14167
 
14169
- var version$1 = "0.49.2";
14168
+ var version$1 = "0.49.3";
14170
14169
 
14171
14170
  export { rollup, watch$1 as watch, version$1 as VERSION };
14172
14171
  //# sourceMappingURL=rollup.es.js.map
package/dist/rollup.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*
2
- Rollup.js v0.49.2
3
- Tue Aug 29 2017 08:11:12 GMT-0400 (EDT) - commit 0c85e2c31fc8787550e9482a0746d626379a068d
2
+ Rollup.js v0.49.3
3
+ Thu Sep 07 2017 21:02:36 GMT-0400 (EDT) - commit 0d20ed12e069b4fc445faecf221ffe5b40fbf90a
4
4
 
5
5
 
6
6
  https://github.com/rollup/rollup
@@ -5704,11 +5704,11 @@ class Node$1 {
5704
5704
  }
5705
5705
 
5706
5706
  hasEffectsWhenAssigned () {
5707
- return false;
5707
+ return true;
5708
5708
  }
5709
5709
 
5710
5710
  hasEffectsWhenMutated () {
5711
- return false;
5711
+ return true;
5712
5712
  }
5713
5713
 
5714
5714
  includeDeclaration () {
@@ -5986,9 +5986,11 @@ class AssignmentExpression extends Node$1 {
5986
5986
  hasEffectsAsExpressionStatement ( options ) {
5987
5987
  return this.hasEffects( options );
5988
5988
  }
5989
+ }
5989
5990
 
5990
- hasEffectsWhenMutated () {
5991
- return true;
5991
+ class AssignmentPattern extends Node$1 {
5992
+ hasEffectsWhenAssigned ( options ) {
5993
+ return this.left.hasEffectsWhenAssigned( options );
5992
5994
  }
5993
5995
  }
5994
5996
 
@@ -6040,10 +6042,6 @@ class BinaryExpression extends Node$1 {
6040
6042
 
6041
6043
  return operators[ this.operator ]( leftValue, rightValue );
6042
6044
  }
6043
-
6044
- hasEffectsWhenMutated () {
6045
- return true;
6046
- }
6047
6045
  }
6048
6046
 
6049
6047
  class Statement extends Node$1 {
@@ -6200,7 +6198,7 @@ simdTypes.forEach( t => {
6200
6198
  'ArrayBuffer', 'ArrayBuffer.isView',
6201
6199
  'DataView',
6202
6200
  'JSON.parse', 'JSON.stringify',
6203
- 'Promise', 'Promise.all', 'Promise.race', 'Promise.reject', 'Promise.resolve',
6201
+ 'Promise.all', 'Promise.race', 'Promise.resolve',
6204
6202
  'Intl.Collator', 'Intl.Collator.supportedLocalesOf', 'Intl.DateTimeFormat', 'Intl.DateTimeFormat.supportedLocalesOf', 'Intl.NumberFormat', 'Intl.NumberFormat.supportedLocalesOf'
6205
6203
 
6206
6204
  // TODO properties of e.g. window...
@@ -6350,10 +6348,6 @@ class CallExpression extends Node$1 {
6350
6348
  hasEffectsAsExpressionStatement ( options ) {
6351
6349
  return this.hasEffects( options );
6352
6350
  }
6353
-
6354
- hasEffectsWhenMutated () {
6355
- return true;
6356
- }
6357
6351
  }
6358
6352
 
6359
6353
  class CatchClause extends Node$1 {
@@ -6470,10 +6464,6 @@ class ConditionalExpression extends Node$1 {
6470
6464
  return testValue ? this.consequent.getValue() : this.alternate.getValue();
6471
6465
  }
6472
6466
 
6473
- hasEffectsWhenMutated () {
6474
- return true;
6475
- }
6476
-
6477
6467
  render ( code, es ) {
6478
6468
  if ( !this.module.bundle.treeshake ) {
6479
6469
  super.render( code, es );
@@ -6891,6 +6881,10 @@ class Identifier extends Node$1 {
6891
6881
  }
6892
6882
  }
6893
6883
 
6884
+ hasEffectsAsExpressionStatement ( options ) {
6885
+ return this.hasEffects( options ) || this.declaration.isGlobal;
6886
+ }
6887
+
6894
6888
  hasEffectsWhenAssigned () {
6895
6889
  return this.declaration && this.declaration.included;
6896
6890
  }
@@ -7064,6 +7058,10 @@ class Literal extends Node$1 {
7064
7058
  values.add( this );
7065
7059
  }
7066
7060
 
7061
+ hasEffectsWhenMutated () {
7062
+ return false;
7063
+ }
7064
+
7067
7065
  render ( code ) {
7068
7066
  if ( typeof this.value === 'string' ) {
7069
7067
  code.indentExclusionRanges.push( [ this.start + 1, this.end - 1 ] );
@@ -7086,6 +7084,17 @@ class LogicalExpression extends Node$1 {
7086
7084
 
7087
7085
  return operators$1[ this.operator ]( leftValue, rightValue );
7088
7086
  }
7087
+
7088
+ hasEffectsWhenMutated ( options ) {
7089
+ const leftValue = this.left.getValue();
7090
+ if ( leftValue === UNKNOWN_VALUE ) {
7091
+ return this.left.hasEffectsWhenMutated( options ) || this.right.hasEffectsWhenMutated( options );
7092
+ }
7093
+ if ((leftValue && this.operator === '||') || (!leftValue && this.operator === '&&')) {
7094
+ return this.left.hasEffectsWhenMutated( options );
7095
+ }
7096
+ return this.right.hasEffectsWhenMutated( options );
7097
+ }
7089
7098
  }
7090
7099
 
7091
7100
  const validProp = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/;
@@ -7169,10 +7178,6 @@ class MemberExpression extends Node$1 {
7169
7178
  return this.object.hasEffectsWhenMutated( options );
7170
7179
  }
7171
7180
 
7172
- hasEffectsWhenMutated () {
7173
- return true;
7174
- }
7175
-
7176
7181
  includeInBundle () {
7177
7182
  let addedNewNodes = super.includeInBundle();
7178
7183
  if ( this.declaration && !this.declaration.included ) {
@@ -7202,6 +7207,12 @@ class NewExpression extends Node$1 {
7202
7207
  }
7203
7208
  }
7204
7209
 
7210
+ class ObjectExpression extends Node$1 {
7211
+ hasEffectsWhenMutated () {
7212
+ return false;
7213
+ }
7214
+ }
7215
+
7205
7216
  class ObjectPattern extends Node$1 {
7206
7217
  assignExpression () {
7207
7218
  this.eachChild( child => child.assignExpression( UNKNOWN_ASSIGNMENT ) );
@@ -7329,10 +7340,6 @@ class TemplateLiteral extends Node$1 {
7329
7340
  }
7330
7341
 
7331
7342
  class ThisExpression extends Node$1 {
7332
- hasEffectsWhenMutated () {
7333
- return true;
7334
- }
7335
-
7336
7343
  initialiseNode () {
7337
7344
  const lexicalBoundary = this.scope.findLexicalBoundary();
7338
7345
 
@@ -7661,7 +7668,7 @@ var nodes = {
7661
7668
  ArrayPattern,
7662
7669
  ArrowFunctionExpression,
7663
7670
  AssignmentExpression,
7664
- AssignmentPattern: Node$1,
7671
+ AssignmentPattern,
7665
7672
  AwaitExpression,
7666
7673
  BinaryExpression,
7667
7674
  BlockStatement,
@@ -7689,7 +7696,7 @@ var nodes = {
7689
7696
  LogicalExpression,
7690
7697
  MemberExpression,
7691
7698
  NewExpression,
7692
- ObjectExpression: Node$1,
7699
+ ObjectExpression,
7693
7700
  ObjectPattern,
7694
7701
  Property,
7695
7702
  RestElement,
@@ -7713,14 +7720,6 @@ class UnknownNode extends Node$1 {
7713
7720
  hasEffects () {
7714
7721
  return true;
7715
7722
  }
7716
-
7717
- hasEffectsWhenAssigned () {
7718
- return true;
7719
- }
7720
-
7721
- hasEffectsWhenMutated () {
7722
- return true;
7723
- }
7724
7723
  }
7725
7724
 
7726
7725
  var keys$1 = {
@@ -14173,7 +14172,7 @@ function watch$1(configs) {
14173
14172
  return new Watcher(configs);
14174
14173
  }
14175
14174
 
14176
- var version$1 = "0.49.2";
14175
+ var version$1 = "0.49.3";
14177
14176
 
14178
14177
  exports.rollup = rollup;
14179
14178
  exports.watch = watch$1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rollup",
3
- "version": "0.49.2",
3
+ "version": "0.49.3",
4
4
  "description": "Next-generation ES6 module bundler",
5
5
  "main": "dist/rollup.js",
6
6
  "module": "dist/rollup.es.js",