babel-schmooze-sprockets 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/bin/console +14 -0
  3. data/bin/export-external-helpers +3 -0
  4. data/bin/setup +6 -0
  5. data/bin/update-npm-deps +8 -0
  6. data/examples/myapp/Gemfile +4 -5
  7. data/examples/myapp/Gemfile.lock +69 -93
  8. data/examples/myapp/app/assets/javascripts/code/hello.es6 +5 -1
  9. data/examples/myapp/app/views/layouts/application.html.erb +1 -0
  10. data/examples/myapp/app/views/site/home.html.erb +0 -1
  11. data/lib/babel-schmooze-sprockets/babel_processor.rb +6 -4
  12. data/lib/babel-schmooze-sprockets/engine.rb +1 -4
  13. data/lib/babel-schmooze-sprockets/version.rb +1 -1
  14. data/node_modules/amdefine/package.json +8 -1
  15. data/node_modules/babel-core/node_modules/babel-runtime/package.json +9 -5
  16. data/node_modules/babel-core/node_modules/babel-traverse/.npmignore +3 -0
  17. data/node_modules/babel-core/node_modules/babel-traverse/README.md +1 -0
  18. data/node_modules/babel-core/node_modules/babel-traverse/lib/cache.js +20 -0
  19. data/node_modules/babel-core/node_modules/babel-traverse/lib/context.js +219 -0
  20. data/node_modules/babel-core/node_modules/babel-traverse/lib/hub.js +19 -0
  21. data/node_modules/babel-core/node_modules/babel-traverse/lib/index.js +250 -0
  22. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/ancestry.js +317 -0
  23. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/comments.js +55 -0
  24. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/context.js +297 -0
  25. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/conversion.js +48 -0
  26. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/evaluation.js +406 -0
  27. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/family.js +168 -0
  28. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/index.js +245 -0
  29. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/inference/index.js +151 -0
  30. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/inference/inferer-reference.js +225 -0
  31. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/inference/inferers.js +198 -0
  32. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/introspection.js +518 -0
  33. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/lib/hoister.js +166 -0
  34. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/lib/removal-hooks.js +64 -0
  35. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/lib/virtual-types.js +141 -0
  36. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/modification.js +293 -0
  37. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/removal.js +72 -0
  38. data/node_modules/babel-core/node_modules/babel-traverse/lib/path/replacement.js +302 -0
  39. data/node_modules/babel-core/node_modules/babel-traverse/lib/scope/binding.js +105 -0
  40. data/node_modules/babel-core/node_modules/babel-traverse/lib/scope/index.js +1222 -0
  41. data/node_modules/babel-core/node_modules/babel-traverse/lib/scope/lib/renamer.js +154 -0
  42. data/node_modules/babel-core/node_modules/babel-traverse/lib/visitors.js +360 -0
  43. data/node_modules/babel-core/node_modules/babel-traverse/package.json +107 -0
  44. data/node_modules/babel-core/node_modules/core-js/package.json +20 -2
  45. data/node_modules/babel-core/package.json +31 -24
  46. data/node_modules/babel-generator/lib/buffer.js +69 -70
  47. data/node_modules/babel-generator/lib/generators/base.js +16 -12
  48. data/node_modules/babel-generator/lib/generators/classes.js +28 -19
  49. data/node_modules/babel-generator/lib/generators/expressions.js +76 -99
  50. data/node_modules/babel-generator/lib/generators/flow.js +178 -119
  51. data/node_modules/babel-generator/lib/generators/jsx.js +38 -29
  52. data/node_modules/babel-generator/lib/generators/methods.js +34 -25
  53. data/node_modules/babel-generator/lib/generators/modules.js +67 -40
  54. data/node_modules/babel-generator/lib/generators/statements.js +93 -76
  55. data/node_modules/babel-generator/lib/generators/template-literals.js +12 -11
  56. data/node_modules/babel-generator/lib/generators/types.js +56 -49
  57. data/node_modules/babel-generator/lib/index.js +52 -39
  58. data/node_modules/babel-generator/lib/node/index.js +12 -18
  59. data/node_modules/babel-generator/lib/node/parentheses.js +23 -27
  60. data/node_modules/babel-generator/lib/node/whitespace.js +20 -26
  61. data/node_modules/babel-generator/lib/position.js +5 -5
  62. data/node_modules/babel-generator/lib/printer.js +52 -81
  63. data/node_modules/babel-generator/lib/source-map.js +9 -11
  64. data/node_modules/babel-generator/lib/whitespace.js +13 -13
  65. data/node_modules/babel-generator/node_modules/babel-runtime/package.json +19 -6
  66. data/node_modules/babel-generator/node_modules/babel-types/.npmignore +3 -0
  67. data/node_modules/babel-generator/node_modules/babel-types/README.md +1141 -0
  68. data/node_modules/babel-generator/node_modules/babel-types/lib/constants.js +40 -0
  69. data/node_modules/babel-generator/node_modules/babel-types/lib/converters.js +378 -0
  70. data/node_modules/babel-generator/node_modules/babel-types/lib/definitions/core.js +704 -0
  71. data/node_modules/babel-generator/node_modules/babel-types/lib/definitions/es2015.js +354 -0
  72. data/node_modules/babel-generator/node_modules/babel-types/lib/definitions/experimental.js +85 -0
  73. data/node_modules/babel-generator/node_modules/babel-types/lib/definitions/flow.js +319 -0
  74. data/node_modules/babel-generator/node_modules/babel-types/lib/definitions/index.js +247 -0
  75. data/node_modules/babel-generator/node_modules/babel-types/lib/definitions/init.js +15 -0
  76. data/node_modules/babel-generator/node_modules/babel-types/lib/definitions/jsx.js +137 -0
  77. data/node_modules/babel-generator/node_modules/babel-types/lib/definitions/misc.js +21 -0
  78. data/node_modules/babel-generator/node_modules/babel-types/lib/flow.js +129 -0
  79. data/node_modules/babel-generator/node_modules/babel-types/lib/index.js +848 -0
  80. data/node_modules/babel-generator/node_modules/babel-types/lib/react.js +83 -0
  81. data/node_modules/babel-generator/node_modules/babel-types/lib/retrievers.js +123 -0
  82. data/node_modules/babel-generator/node_modules/babel-types/lib/validators.js +276 -0
  83. data/node_modules/babel-generator/node_modules/babel-types/package.json +103 -0
  84. data/node_modules/babel-generator/node_modules/core-js/package.json +10 -5
  85. data/node_modules/babel-generator/package.json +19 -16
  86. data/node_modules/babel-helpers/node_modules/babel-runtime/package.json +19 -3
  87. data/node_modules/babel-helpers/node_modules/core-js/package.json +20 -4
  88. data/node_modules/babel-helpers/package.json +8 -1
  89. data/node_modules/babel-register/node_modules/babel-runtime/package.json +19 -3
  90. data/node_modules/babel-register/node_modules/core-js/package.json +20 -4
  91. data/node_modules/babel-register/package.json +8 -1
  92. data/node_modules/balanced-match/package.json +8 -1
  93. data/node_modules/brace-expansion/package.json +19 -12
  94. data/node_modules/concat-map/package.json +9 -2
  95. data/node_modules/convert-source-map/package.json +8 -1
  96. data/node_modules/detect-indent/package.json +8 -1
  97. data/node_modules/get-stdin/package.json +8 -1
  98. data/node_modules/home-or-tmp/package.json +9 -2
  99. data/node_modules/is-finite/package.json +8 -2
  100. data/node_modules/json5/package.json +8 -1
  101. data/node_modules/minimatch/README.md +2 -9
  102. data/node_modules/minimatch/minimatch.js +15 -3
  103. data/node_modules/minimatch/package.json +29 -21
  104. data/node_modules/minimist/package.json +8 -1
  105. data/node_modules/mkdirp/node_modules/minimist/package.json +8 -1
  106. data/node_modules/mkdirp/package.json +8 -1
  107. data/node_modules/number-is-nan/package.json +8 -1
  108. data/node_modules/os-tmpdir/package.json +8 -1
  109. data/node_modules/path-exists/package.json +8 -1
  110. data/node_modules/path-is-absolute/package.json +8 -1
  111. data/node_modules/repeating/package.json +15 -11
  112. data/node_modules/shebang-regex/package.json +8 -1
  113. data/node_modules/slash/package.json +8 -1
  114. data/node_modules/source-map-support/node_modules/source-map/package.json +8 -1
  115. data/node_modules/source-map-support/package.json +8 -1
  116. data/node_modules/source-map/package.json +8 -1
  117. data/node_modules/user-home/package.json +8 -1
  118. data/package.json +1 -1
  119. metadata +54 -6
  120. data/node_modules/brace-expansion/.npmignore +0 -3
  121. data/node_modules/brace-expansion/example.js +0 -8
  122. data/node_modules/minimatch/browser.js +0 -1159
@@ -1,12 +1,20 @@
1
- /*istanbul ignore next*/"use strict";
1
+ "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.File = File;
5
- /*istanbul ignore next*/exports.Program = Program;
6
- /*istanbul ignore next*/exports.BlockStatement = BlockStatement;
7
- /*istanbul ignore next*/exports.Noop = Noop;
8
- /*istanbul ignore next*/exports.Directive = Directive;
9
- /*istanbul ignore next*/exports.DirectiveLiteral = DirectiveLiteral;
5
+ exports.Program = Program;
6
+ exports.BlockStatement = BlockStatement;
7
+ exports.Noop = Noop;
8
+ exports.Directive = Directive;
9
+
10
+ var _types = require("./types");
11
+
12
+ Object.defineProperty(exports, "DirectiveLiteral", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _types.StringLiteral;
16
+ }
17
+ });
10
18
  function File(node) {
11
19
  this.print(node.program, node);
12
20
  }
@@ -21,7 +29,7 @@ function Program(node) {
21
29
  }
22
30
 
23
31
  function BlockStatement(node) {
24
- this.push("{");
32
+ this.token("{");
25
33
  this.printInnerComments(node);
26
34
  if (node.body.length) {
27
35
  this.newline();
@@ -36,7 +44,7 @@ function BlockStatement(node) {
36
44
  this.rightBrace();
37
45
  } else {
38
46
  this.source("end", node.loc);
39
- this.push("}");
47
+ this.token("}");
40
48
  }
41
49
  }
42
50
 
@@ -45,8 +53,4 @@ function Noop() {}
45
53
  function Directive(node) {
46
54
  this.print(node.value, node);
47
55
  this.semicolon();
48
- }
49
-
50
- function DirectiveLiteral(node) {
51
- this.push(this._stringLiteral(node.value));
52
56
  }
@@ -1,42 +1,46 @@
1
- /*istanbul ignore next*/"use strict";
1
+ "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.ClassDeclaration = ClassDeclaration;
5
- /*istanbul ignore next*/exports.ClassBody = ClassBody;
6
- /*istanbul ignore next*/exports.ClassProperty = ClassProperty;
7
- /*istanbul ignore next*/exports.ClassMethod = ClassMethod;
5
+ exports.ClassBody = ClassBody;
6
+ exports.ClassProperty = ClassProperty;
7
+ exports.ClassMethod = ClassMethod;
8
8
  function ClassDeclaration(node) {
9
- this.printJoin(node.decorators, node, { separator: "" });
10
- this.push("class");
9
+ this.printJoin(node.decorators, node);
10
+ this.word("class");
11
11
 
12
12
  if (node.id) {
13
- this.push(" ");
13
+ this.space();
14
14
  this.print(node.id, node);
15
15
  }
16
16
 
17
17
  this.print(node.typeParameters, node);
18
18
 
19
19
  if (node.superClass) {
20
- this.push(" extends ");
20
+ this.space();
21
+ this.word("extends");
22
+ this.space();
21
23
  this.print(node.superClass, node);
22
24
  this.print(node.superTypeParameters, node);
23
25
  }
24
26
 
25
27
  if (node.implements) {
26
- this.push(" implements ");
27
- this.printJoin(node.implements, node, { separator: ", " });
28
+ this.space();
29
+ this.word("implements");
30
+ this.space();
31
+ this.printList(node.implements, node);
28
32
  }
29
33
 
30
34
  this.space();
31
35
  this.print(node.body, node);
32
36
  }
33
37
 
34
- /*istanbul ignore next*/exports.ClassExpression = ClassDeclaration;
38
+ exports.ClassExpression = ClassDeclaration;
35
39
  function ClassBody(node) {
36
- this.push("{");
40
+ this.token("{");
37
41
  this.printInnerComments(node);
38
42
  if (node.body.length === 0) {
39
- this.push("}");
43
+ this.token("}");
40
44
  } else {
41
45
  this.newline();
42
46
 
@@ -49,14 +53,17 @@ function ClassBody(node) {
49
53
  }
50
54
 
51
55
  function ClassProperty(node) {
52
- this.printJoin(node.decorators, node, { separator: "" });
56
+ this.printJoin(node.decorators, node);
53
57
 
54
- if (node.static) this.push("static ");
58
+ if (node.static) {
59
+ this.word("static");
60
+ this.space();
61
+ }
55
62
  this.print(node.key, node);
56
63
  this.print(node.typeAnnotation, node);
57
64
  if (node.value) {
58
65
  this.space();
59
- this.push("=");
66
+ this.token("=");
60
67
  this.space();
61
68
  this.print(node.value, node);
62
69
  }
@@ -64,14 +71,16 @@ function ClassProperty(node) {
64
71
  }
65
72
 
66
73
  function ClassMethod(node) {
67
- this.printJoin(node.decorators, node, { separator: "" });
74
+ this.printJoin(node.decorators, node);
68
75
 
69
76
  if (node.static) {
70
- this.push("static ");
77
+ this.word("static");
78
+ this.space();
71
79
  }
72
80
 
73
81
  if (node.kind === "constructorCall") {
74
- this.push("call ");
82
+ this.word("call");
83
+ this.space();
75
84
  }
76
85
 
77
86
  this._method(node);
@@ -1,47 +1,42 @@
1
- /*istanbul ignore next*/"use strict";
1
+ "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.LogicalExpression = exports.BinaryExpression = exports.AwaitExpression = exports.YieldExpression = undefined;
5
5
  exports.UnaryExpression = UnaryExpression;
6
- /*istanbul ignore next*/exports.DoExpression = DoExpression;
7
- /*istanbul ignore next*/exports.ParenthesizedExpression = ParenthesizedExpression;
8
- /*istanbul ignore next*/exports.UpdateExpression = UpdateExpression;
9
- /*istanbul ignore next*/exports.ConditionalExpression = ConditionalExpression;
10
- /*istanbul ignore next*/exports.NewExpression = NewExpression;
11
- /*istanbul ignore next*/exports.SequenceExpression = SequenceExpression;
12
- /*istanbul ignore next*/exports.ThisExpression = ThisExpression;
13
- /*istanbul ignore next*/exports.Super = Super;
14
- /*istanbul ignore next*/exports.Decorator = Decorator;
15
- /*istanbul ignore next*/exports.CallExpression = CallExpression;
16
- /*istanbul ignore next*/exports.EmptyStatement = EmptyStatement;
17
- /*istanbul ignore next*/exports.ExpressionStatement = ExpressionStatement;
18
- /*istanbul ignore next*/exports.AssignmentPattern = AssignmentPattern;
19
- /*istanbul ignore next*/exports.AssignmentExpression = AssignmentExpression;
20
- /*istanbul ignore next*/exports.BindExpression = BindExpression;
21
- /*istanbul ignore next*/exports.MemberExpression = MemberExpression;
22
- /*istanbul ignore next*/exports.MetaProperty = MetaProperty;
23
-
24
- var /*istanbul ignore next*/_isInteger = require("lodash/isInteger");
25
-
26
- /*istanbul ignore next*/
6
+ exports.DoExpression = DoExpression;
7
+ exports.ParenthesizedExpression = ParenthesizedExpression;
8
+ exports.UpdateExpression = UpdateExpression;
9
+ exports.ConditionalExpression = ConditionalExpression;
10
+ exports.NewExpression = NewExpression;
11
+ exports.SequenceExpression = SequenceExpression;
12
+ exports.ThisExpression = ThisExpression;
13
+ exports.Super = Super;
14
+ exports.Decorator = Decorator;
15
+ exports.CallExpression = CallExpression;
16
+ exports.EmptyStatement = EmptyStatement;
17
+ exports.ExpressionStatement = ExpressionStatement;
18
+ exports.AssignmentPattern = AssignmentPattern;
19
+ exports.AssignmentExpression = AssignmentExpression;
20
+ exports.BindExpression = BindExpression;
21
+ exports.MemberExpression = MemberExpression;
22
+ exports.MetaProperty = MetaProperty;
23
+
24
+ var _isInteger = require("lodash/isInteger");
25
+
27
26
  var _isInteger2 = _interopRequireDefault(_isInteger);
28
27
 
29
- var /*istanbul ignore next*/_isNumber = require("lodash/isNumber");
28
+ var _isNumber = require("lodash/isNumber");
30
29
 
31
- /*istanbul ignore next*/
32
30
  var _isNumber2 = _interopRequireDefault(_isNumber);
33
31
 
34
- var /*istanbul ignore next*/_babelTypes = require("babel-types");
32
+ var _babelTypes = require("babel-types");
35
33
 
36
- /*istanbul ignore next*/
37
34
  var t = _interopRequireWildcard(_babelTypes);
38
35
 
39
- var /*istanbul ignore next*/_node = require("../node");
36
+ var _node = require("../node");
40
37
 
41
- /*istanbul ignore next*/
42
38
  var n = _interopRequireWildcard(_node);
43
39
 
44
- /*istanbul ignore next*/
45
40
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
46
41
 
47
42
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -53,64 +48,59 @@ var ZERO_DECIMAL_INTEGER = /\.0+$/;
53
48
  var NON_DECIMAL_LITERAL = /^0[box]/;
54
49
 
55
50
  function UnaryExpression(node) {
56
- var needsSpace = /[a-z]$/.test(node.operator);
57
- var arg = node.argument;
58
-
59
- if (t.isUpdateExpression(arg) || t.isUnaryExpression(arg)) {
60
- needsSpace = true;
61
- }
62
-
63
- if (t.isUnaryExpression(arg) && arg.operator === "!") {
64
- needsSpace = false;
51
+ if (node.operator === "void" || node.operator === "delete" || node.operator === "typeof") {
52
+ this.word(node.operator);
53
+ this.space();
54
+ } else {
55
+ this.token(node.operator);
65
56
  }
66
57
 
67
- this.push(node.operator);
68
- if (needsSpace) this.push(" ");
69
58
  this.print(node.argument, node);
70
59
  }
71
60
 
72
61
  function DoExpression(node) {
73
- this.push("do");
62
+ this.word("do");
74
63
  this.space();
75
64
  this.print(node.body, node);
76
65
  }
77
66
 
78
67
  function ParenthesizedExpression(node) {
79
- this.push("(");
68
+ this.token("(");
80
69
  this.print(node.expression, node);
81
- this.push(")");
70
+ this.token(")");
82
71
  }
83
72
 
84
73
  function UpdateExpression(node) {
85
74
  if (node.prefix) {
86
- this.push(node.operator);
75
+ this.token(node.operator);
87
76
  this.print(node.argument, node);
88
77
  } else {
89
78
  this.print(node.argument, node);
90
- this.push(node.operator);
79
+ this.token(node.operator);
91
80
  }
92
81
  }
93
82
 
94
83
  function ConditionalExpression(node) {
95
84
  this.print(node.test, node);
96
85
  this.space();
97
- this.push("?");
86
+ this.token("?");
98
87
  this.space();
99
88
  this.print(node.consequent, node);
100
89
  this.space();
101
- this.push(":");
90
+ this.token(":");
102
91
  this.space();
103
92
  this.print(node.alternate, node);
104
93
  }
105
94
 
106
95
  function NewExpression(node, parent) {
107
- this.push("new ");
96
+ this.word("new");
97
+ this.space();
108
98
  this.print(node.callee, node);
109
99
  if (node.arguments.length === 0 && this.format.minified && !t.isCallExpression(parent, { callee: node }) && !t.isMemberExpression(parent) && !t.isNewExpression(parent)) return;
110
100
 
111
- this.push("(");
101
+ this.token("(");
112
102
  this.printList(node.arguments, node);
113
- this.push(")");
103
+ this.token(")");
114
104
  }
115
105
 
116
106
  function SequenceExpression(node) {
@@ -118,30 +108,35 @@ function SequenceExpression(node) {
118
108
  }
119
109
 
120
110
  function ThisExpression() {
121
- this.push("this");
111
+ this.word("this");
122
112
  }
123
113
 
124
114
  function Super() {
125
- this.push("super");
115
+ this.word("super");
126
116
  }
127
117
 
128
118
  function Decorator(node) {
129
- this.push("@");
119
+ this.token("@");
130
120
  this.print(node.expression, node);
131
121
  this.newline();
132
122
  }
133
123
 
124
+ function commaSeparatorNewline() {
125
+ this.token(",");
126
+ this.push("\n");
127
+ }
128
+
134
129
  function CallExpression(node) {
135
130
  this.print(node.callee, node);
136
131
  if (node.loc) this.printAuxAfterComment();
137
132
 
138
- this.push("(");
133
+ this.token("(");
139
134
 
140
135
  var isPrettyCall = node._prettyCall && !this.format.retainLines && !this.format.compact;
141
136
 
142
- var separator = /*istanbul ignore next*/void 0;
137
+ var separator = void 0;
143
138
  if (isPrettyCall) {
144
- separator = ",\n";
139
+ separator = commaSeparatorNewline;
145
140
  this.newline();
146
141
  this.indent();
147
142
  }
@@ -153,19 +148,19 @@ function CallExpression(node) {
153
148
  this.dedent();
154
149
  }
155
150
 
156
- this.push(")");
151
+ this.token(")");
157
152
  }
158
153
 
159
154
  function buildYieldAwait(keyword) {
160
155
  return function (node) {
161
- this.push(keyword);
156
+ this.word(keyword);
162
157
 
163
158
  if (node.delegate) {
164
- this.push("*");
159
+ this.token("*");
165
160
  }
166
161
 
167
162
  if (node.argument) {
168
- this.push(" ");
163
+ this.space();
169
164
  var terminatorState = this.startTerminatorless();
170
165
  this.print(node.argument, node);
171
166
  this.endTerminatorless(terminatorState);
@@ -173,8 +168,8 @@ function buildYieldAwait(keyword) {
173
168
  };
174
169
  }
175
170
 
176
- var YieldExpression = /*istanbul ignore next*/exports.YieldExpression = buildYieldAwait("yield");
177
- var AwaitExpression = /*istanbul ignore next*/exports.AwaitExpression = buildYieldAwait("await");
171
+ var YieldExpression = exports.YieldExpression = buildYieldAwait("yield");
172
+ var AwaitExpression = exports.AwaitExpression = buildYieldAwait("await");
178
173
 
179
174
  function EmptyStatement() {
180
175
  this._lastPrintedIsEmptyStatement = true;
@@ -189,7 +184,7 @@ function ExpressionStatement(node) {
189
184
  function AssignmentPattern(node) {
190
185
  this.print(node.left, node);
191
186
  this.space();
192
- this.push("=");
187
+ this.token("=");
193
188
  this.space();
194
189
  this.print(node.right, node);
195
190
  }
@@ -200,45 +195,34 @@ function AssignmentExpression(node, parent) {
200
195
  var parens = this._inForStatementInitCounter && node.operator === "in" && !n.needsParens(node, parent);
201
196
 
202
197
  if (parens) {
203
- this.push("(");
198
+ this.token("(");
204
199
  }
205
200
 
206
201
  this.print(node.left, node);
207
202
 
208
- var spaces = !this.format.compact || node.operator === "in" || node.operator === "instanceof";
209
- if (spaces) this.push(" ");
210
-
211
- this.push(node.operator);
212
-
213
- if (!spaces) {
214
- // space is mandatory to avoid outputting <!--
215
- // http://javascript.spec.whatwg.org/#comment-syntax
216
- spaces = node.operator === "<" && t.isUnaryExpression(node.right, { prefix: true, operator: "!" }) && t.isUnaryExpression(node.right.argument, { prefix: true, operator: "--" });
217
-
218
- // Need spaces for operators of the same kind to avoid: `a+++b`
219
- if (!spaces) {
220
- var right = getLeftMost(node.right);
221
- spaces = t.isUnaryExpression(right, { prefix: true, operator: node.operator }) || t.isUpdateExpression(right, { prefix: true, operator: node.operator + node.operator });
222
- }
203
+ this.space();
204
+ if (node.operator === "in" || node.operator === "instanceof") {
205
+ this.word(node.operator);
206
+ } else {
207
+ this.token(node.operator);
223
208
  }
224
-
225
- if (spaces) this.push(" ");
209
+ this.space();
226
210
 
227
211
  this.print(node.right, node);
228
212
 
229
213
  if (parens) {
230
- this.push(")");
214
+ this.token(")");
231
215
  }
232
216
  }
233
217
 
234
218
  function BindExpression(node) {
235
219
  this.print(node.object, node);
236
- this.push("::");
220
+ this.token("::");
237
221
  this.print(node.callee, node);
238
222
  }
239
223
 
240
- /*istanbul ignore next*/exports.BinaryExpression = AssignmentExpression;
241
- /*istanbul ignore next*/exports.LogicalExpression = AssignmentExpression;
224
+ exports.BinaryExpression = AssignmentExpression;
225
+ exports.LogicalExpression = AssignmentExpression;
242
226
  function MemberExpression(node) {
243
227
  this.print(node.object, node);
244
228
 
@@ -247,36 +231,29 @@ function MemberExpression(node) {
247
231
  }
248
232
 
249
233
  var computed = node.computed;
250
- if (t.isLiteral(node.property) && /*istanbul ignore next*/(0, _isNumber2.default)(node.property.value)) {
234
+ if (t.isLiteral(node.property) && (0, _isNumber2.default)(node.property.value)) {
251
235
  computed = true;
252
236
  }
253
237
 
254
238
  if (computed) {
255
- this.push("[");
239
+ this.token("[");
256
240
  this.print(node.property, node);
257
- this.push("]");
241
+ this.token("]");
258
242
  } else {
259
243
  if (t.isNumericLiteral(node.object)) {
260
244
  var val = this.getPossibleRaw(node.object) || node.object.value;
261
- if ( /*istanbul ignore next*/(0, _isInteger2.default)(+val) && !NON_DECIMAL_LITERAL.test(val) && !SCIENTIFIC_NOTATION.test(val) && !ZERO_DECIMAL_INTEGER.test(val) && !this.endsWith(".")) {
262
- this.push(".");
245
+ if ((0, _isInteger2.default)(+val) && !NON_DECIMAL_LITERAL.test(val) && !SCIENTIFIC_NOTATION.test(val) && !ZERO_DECIMAL_INTEGER.test(val) && !this.endsWith(".")) {
246
+ this.token(".");
263
247
  }
264
248
  }
265
249
 
266
- this.push(".");
250
+ this.token(".");
267
251
  this.print(node.property, node);
268
252
  }
269
253
  }
270
254
 
271
255
  function MetaProperty(node) {
272
256
  this.print(node.meta, node);
273
- this.push(".");
257
+ this.token(".");
274
258
  this.print(node.property, node);
275
- }
276
-
277
- function getLeftMost(binaryExpr) {
278
- if (!t.isBinaryExpression(binaryExpr)) {
279
- return binaryExpr;
280
- }
281
- return getLeftMost(binaryExpr.left);
282
259
  }