jass 0.9.1 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/jass.rb +5 -0
  4. data/lib/jass/compiler.rb +5 -0
  5. data/lib/jass/plugin.rb +2 -1
  6. data/lib/jass/version.rb +1 -1
  7. data/vendor/node_modules/@types/estree/index.d.ts +4 -2
  8. data/vendor/node_modules/@types/estree/package.json +2 -2
  9. data/vendor/node_modules/acorn/bin/_acorn.js +12 -12
  10. data/vendor/node_modules/acorn/bin/run_test262.js +2 -3
  11. data/vendor/node_modules/acorn/bin/test262.whitelist +0 -5
  12. data/vendor/node_modules/acorn/dist/acorn.es.js +76 -68
  13. data/vendor/node_modules/acorn/dist/acorn.js +76 -68
  14. data/vendor/node_modules/acorn/dist/acorn_loose.es.js +42 -30
  15. data/vendor/node_modules/acorn/dist/acorn_loose.js +42 -30
  16. data/vendor/node_modules/acorn/dist/walk.es.js +47 -43
  17. data/vendor/node_modules/acorn/dist/walk.js +47 -43
  18. data/vendor/node_modules/acorn/package.json +9 -5
  19. data/vendor/node_modules/chalk/index.js.flow +93 -0
  20. data/vendor/node_modules/chalk/package.json +8 -3
  21. data/vendor/node_modules/color-convert/conversions.js +36 -29
  22. data/vendor/node_modules/color-convert/package.json +4 -4
  23. data/vendor/node_modules/estree-walker/index.d.ts +17 -0
  24. data/vendor/node_modules/estree-walker/package.json +2 -1
  25. data/vendor/node_modules/fill-range/index.js +2 -2
  26. data/vendor/node_modules/fill-range/package.json +24 -7
  27. data/vendor/node_modules/is-reference/node_modules/@types/estree/index.d.ts +546 -0
  28. data/vendor/node_modules/is-reference/node_modules/@types/estree/package.json +22 -0
  29. data/vendor/node_modules/math-random/browser.js +17 -0
  30. data/vendor/node_modules/math-random/node.js +13 -0
  31. data/vendor/node_modules/math-random/package.json +31 -0
  32. data/vendor/node_modules/math-random/test.js +26 -0
  33. data/vendor/node_modules/nodent-compiler/compiler.js +115 -11
  34. data/vendor/node_modules/nodent-compiler/{lib/output.js → output.js} +0 -0
  35. data/vendor/node_modules/nodent-compiler/package.json +8 -4
  36. data/vendor/node_modules/{nodent-compiler/lib → nodent-transform}/arboriculture.js +1340 -1107
  37. data/vendor/node_modules/nodent-transform/package.json +19 -0
  38. data/vendor/node_modules/path-parse/package.json +1 -1
  39. data/vendor/node_modules/pretty-ms/index.js +2 -1
  40. data/vendor/node_modules/pretty-ms/package.json +2 -3
  41. data/vendor/node_modules/randomatic/index.js +12 -2
  42. data/vendor/node_modules/randomatic/node_modules/is-number/index.js +6 -7
  43. data/vendor/node_modules/randomatic/node_modules/is-number/package.json +9 -16
  44. data/vendor/node_modules/randomatic/node_modules/kind-of/index.js +112 -102
  45. data/vendor/node_modules/randomatic/node_modules/kind-of/package.json +18 -20
  46. data/vendor/node_modules/randomatic/package.json +15 -13
  47. data/vendor/node_modules/repeat-element/index.js +1 -1
  48. data/vendor/node_modules/repeat-element/package.json +27 -22
  49. data/vendor/node_modules/resolve/lib/async.js +20 -17
  50. data/vendor/node_modules/resolve/lib/core.js +2 -2
  51. data/vendor/node_modules/resolve/lib/core.json +4 -1
  52. data/vendor/node_modules/resolve/lib/sync.js +52 -13
  53. data/vendor/node_modules/resolve/package.json +3 -3
  54. data/vendor/node_modules/rollup-plugin-commonjs/dist/rollup-plugin-commonjs.cjs.js +50 -12
  55. data/vendor/node_modules/rollup-plugin-commonjs/dist/rollup-plugin-commonjs.es.js +50 -12
  56. data/vendor/node_modules/rollup-plugin-commonjs/package.json +2 -2
  57. data/vendor/node_modules/rollup-plugin-commonjs/src/index.js +49 -11
  58. data/vendor/node_modules/rollup-plugin-commonjs/src/transform.js +1 -1
  59. data/vendor/node_modules/rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.cjs.js +82 -85
  60. data/vendor/node_modules/rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.es.js +82 -85
  61. data/vendor/node_modules/rollup-plugin-node-resolve/package.json +1 -1
  62. data/vendor/node_modules/rollup-plugin-node-resolve/src/index.js +81 -84
  63. data/vendor/node_modules/rollup-pluginutils/dist/pluginutils.cjs.js +81 -2
  64. data/vendor/node_modules/rollup-pluginutils/dist/pluginutils.es.js +81 -3
  65. data/vendor/node_modules/rollup-pluginutils/package.json +12 -6
  66. data/vendor/node_modules/rollup-pluginutils/src/attachScopes.js +10 -2
  67. data/vendor/node_modules/rollup-pluginutils/src/dataToEsm.js +69 -0
  68. data/vendor/node_modules/rollup-pluginutils/src/index.js +1 -0
  69. data/vendor/node_modules/supports-color/index.js +1 -5
  70. data/vendor/node_modules/supports-color/package.json +51 -51
  71. data/vendor/yarn.lock +65 -70
  72. metadata +16 -21
  73. data/vendor/node_modules/irregular-plurals/irregular-plurals.json +0 -146
  74. data/vendor/node_modules/irregular-plurals/package.json +0 -39
  75. data/vendor/node_modules/nodent-compiler/lib/parser.js +0 -291
  76. data/vendor/node_modules/path-parse/index.min.js +0 -1
  77. data/vendor/node_modules/path-parse/test.min.js +0 -1
  78. data/vendor/node_modules/plur/index.js +0 -20
  79. data/vendor/node_modules/plur/package.json +0 -42
  80. data/vendor/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/index.js +0 -116
  81. data/vendor/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/package.json +0 -90
  82. data/vendor/node_modules/rollup-pluginutils/dist/pluginutils.es6.js +0 -217
  83. data/vendor/node_modules/rollup-pluginutils/node_modules/estree-walker/dist/estree-walker.es.js +0 -55
  84. data/vendor/node_modules/rollup-pluginutils/node_modules/estree-walker/dist/estree-walker.es6.js +0 -59
  85. data/vendor/node_modules/rollup-pluginutils/node_modules/estree-walker/dist/estree-walker.umd.js +0 -65
  86. data/vendor/node_modules/rollup-pluginutils/node_modules/estree-walker/package.json +0 -33
  87. data/vendor/node_modules/rollup-pluginutils/node_modules/estree-walker/src/estree-walker.js +0 -49
@@ -16,11 +16,11 @@
16
16
  // walker, and state can be used to give this walked an initial
17
17
  // state.
18
18
 
19
- function simple(node, visitors, base, state, override) {
20
- if (!base) { base = exports.base
19
+ function simple(node, visitors, baseVisitor, state, override) {
20
+ if (!baseVisitor) { baseVisitor = base
21
21
  ; }(function c(node, st, override) {
22
22
  var type = override || node.type, found = visitors[type];
23
- base[type](node, st, c);
23
+ baseVisitor[type](node, st, c);
24
24
  if (found) { found(node, st); }
25
25
  })(node, state, override);
26
26
  }
@@ -28,13 +28,14 @@ function simple(node, visitors, base, state, override) {
28
28
  // An ancestor walk keeps an array of ancestor nodes (including the
29
29
  // current node) and passes them to the callback as third parameter
30
30
  // (and also as state parameter when no other state is present).
31
- function ancestor(node, visitors, base, state) {
32
- if (!base) { base = exports.base; }
33
- var ancestors = [];(function c(node, st, override) {
31
+ function ancestor(node, visitors, baseVisitor, state) {
32
+ var ancestors = [];
33
+ if (!baseVisitor) { baseVisitor = base
34
+ ; }(function c(node, st, override) {
34
35
  var type = override || node.type, found = visitors[type];
35
- var isNew = node != ancestors[ancestors.length - 1];
36
+ var isNew = node !== ancestors[ancestors.length - 1];
36
37
  if (isNew) { ancestors.push(node); }
37
- base[type](node, st, c);
38
+ baseVisitor[type](node, st, c);
38
39
  if (found) { found(node, st || ancestors, ancestors); }
39
40
  if (isNew) { ancestors.pop(); }
40
41
  })(node, state);
@@ -45,15 +46,15 @@ function ancestor(node, visitors, base, state) {
45
46
  // threaded through the walk, and can opt how and whether to walk
46
47
  // their child nodes (by calling their third argument on these
47
48
  // nodes).
48
- function recursive(node, state, funcs, base, override) {
49
- var visitor = funcs ? exports.make(funcs, base) : base;(function c(node, st, override) {
49
+ function recursive(node, state, funcs, baseVisitor, override) {
50
+ var visitor = funcs ? make(funcs, baseVisitor || undefined) : baseVisitor;(function c(node, st, override) {
50
51
  visitor[override || node.type](node, st, c);
51
52
  })(node, state, override);
52
53
  }
53
54
 
54
55
  function makeTest(test) {
55
- if (typeof test == "string")
56
- { return function (type) { return type == test; } }
56
+ if (typeof test === "string")
57
+ { return function (type) { return type === test; } }
57
58
  else if (!test)
58
59
  { return function () { return true; } }
59
60
  else
@@ -63,24 +64,24 @@ function makeTest(test) {
63
64
  var Found = function Found(node, state) { this.node = node; this.state = state; };
64
65
 
65
66
  // A full walk triggers the callback on each node
66
- function full(node, callback, base, state, override) {
67
- if (!base) { base = exports.base
67
+ function full(node, callback, baseVisitor, state, override) {
68
+ if (!baseVisitor) { baseVisitor = base
68
69
  ; }(function c(node, st, override) {
69
70
  var type = override || node.type;
70
- base[type](node, st, c);
71
+ baseVisitor[type](node, st, c);
71
72
  if (!override) { callback(node, st, type); }
72
73
  })(node, state, override);
73
74
  }
74
75
 
75
76
  // An fullAncestor walk is like an ancestor walk, but triggers
76
77
  // the callback on each node
77
- function fullAncestor(node, callback, base, state) {
78
- if (!base) { base = exports.base; }
78
+ function fullAncestor(node, callback, baseVisitor, state) {
79
+ if (!baseVisitor) { baseVisitor = base; }
79
80
  var ancestors = [];(function c(node, st, override) {
80
81
  var type = override || node.type;
81
- var isNew = node != ancestors[ancestors.length - 1];
82
+ var isNew = node !== ancestors[ancestors.length - 1];
82
83
  if (isNew) { ancestors.push(node); }
83
- base[type](node, st, c);
84
+ baseVisitor[type](node, st, c);
84
85
  if (!override) { callback(node, st || ancestors, ancestors, type); }
85
86
  if (isNew) { ancestors.pop(); }
86
87
  })(node, state);
@@ -89,17 +90,17 @@ function fullAncestor(node, callback, base, state) {
89
90
  // Find a node with a given start, end, and type (all are optional,
90
91
  // null can be used as wildcard). Returns a {node, state} object, or
91
92
  // undefined when it doesn't find a matching node.
92
- function findNodeAt(node, start, end, test, base, state) {
93
+ function findNodeAt(node, start, end, test, baseVisitor, state) {
94
+ if (!baseVisitor) { baseVisitor = base; }
93
95
  test = makeTest(test);
94
- if (!base) { base = exports.base; }
95
96
  try {
96
97
  (function c(node, st, override) {
97
98
  var type = override || node.type;
98
99
  if ((start == null || node.start <= start) &&
99
100
  (end == null || node.end >= end))
100
- { base[type](node, st, c); }
101
- if ((start == null || node.start == start) &&
102
- (end == null || node.end == end) &&
101
+ { baseVisitor[type](node, st, c); }
102
+ if ((start == null || node.start === start) &&
103
+ (end == null || node.end === end) &&
103
104
  test(type, node))
104
105
  { throw new Found(node, st) }
105
106
  })(node, state);
@@ -111,14 +112,14 @@ function findNodeAt(node, start, end, test, base, state) {
111
112
 
112
113
  // Find the innermost node of a given type that contains the given
113
114
  // position. Interface similar to findNodeAt.
114
- function findNodeAround(node, pos, test, base, state) {
115
+ function findNodeAround(node, pos, test, baseVisitor, state) {
115
116
  test = makeTest(test);
116
- if (!base) { base = exports.base; }
117
+ if (!baseVisitor) { baseVisitor = base; }
117
118
  try {
118
119
  (function c(node, st, override) {
119
120
  var type = override || node.type;
120
121
  if (node.start > pos || node.end < pos) { return }
121
- base[type](node, st, c);
122
+ baseVisitor[type](node, st, c);
122
123
  if (test(type, node)) { throw new Found(node, st) }
123
124
  })(node, state);
124
125
  } catch (e) {
@@ -128,15 +129,15 @@ function findNodeAround(node, pos, test, base, state) {
128
129
  }
129
130
 
130
131
  // Find the outermost matching node after a given position.
131
- function findNodeAfter(node, pos, test, base, state) {
132
+ function findNodeAfter(node, pos, test, baseVisitor, state) {
132
133
  test = makeTest(test);
133
- if (!base) { base = exports.base; }
134
+ if (!baseVisitor) { baseVisitor = base; }
134
135
  try {
135
136
  (function c(node, st, override) {
136
137
  if (node.end < pos) { return }
137
138
  var type = override || node.type;
138
139
  if (node.start >= pos && test(type, node)) { throw new Found(node, st) }
139
- base[type](node, st, c);
140
+ baseVisitor[type](node, st, c);
140
141
  })(node, state);
141
142
  } catch (e) {
142
143
  if (e instanceof Found) { return e }
@@ -145,15 +146,15 @@ function findNodeAfter(node, pos, test, base, state) {
145
146
  }
146
147
 
147
148
  // Find the outermost matching node before a given position.
148
- function findNodeBefore(node, pos, test, base, state) {
149
+ function findNodeBefore(node, pos, test, baseVisitor, state) {
149
150
  test = makeTest(test);
150
- if (!base) { base = exports.base; }
151
+ if (!baseVisitor) { baseVisitor = base; }
151
152
  var max;(function c(node, st, override) {
152
153
  if (node.start > pos) { return }
153
154
  var type = override || node.type;
154
155
  if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node))
155
156
  { max = new Found(node, st); }
156
- base[type](node, st, c);
157
+ baseVisitor[type](node, st, c);
157
158
  })(node, state);
158
159
  return max
159
160
  }
@@ -167,9 +168,8 @@ var create = Object.create || function(proto) {
167
168
 
168
169
  // Used to create a custom walker. Will fill in all missing node
169
170
  // type properties with the defaults.
170
- function make(funcs, base) {
171
- if (!base) { base = exports.base; }
172
- var visitor = create(base);
171
+ function make(funcs, baseVisitor) {
172
+ var visitor = create(baseVisitor || base);
173
173
  for (var type in funcs) { visitor[type] = funcs[type]; }
174
174
  return visitor
175
175
  }
@@ -238,7 +238,7 @@ base.TryStatement = function (node, st, c) {
238
238
  if (node.finalizer) { c(node.finalizer, st, "Statement"); }
239
239
  };
240
240
  base.CatchClause = function (node, st, c) {
241
- c(node.param, st, "Pattern");
241
+ if (node.param) { c(node.param, st, "Pattern"); }
242
242
  c(node.body, st, "ScopeBody");
243
243
  };
244
244
  base.WhileStatement = base.DoWhileStatement = function (node, st, c) {
@@ -257,7 +257,7 @@ base.ForInStatement = base.ForOfStatement = function (node, st, c) {
257
257
  c(node.body, st, "Statement");
258
258
  };
259
259
  base.ForInit = function (node, st, c) {
260
- if (node.type == "VariableDeclaration") { c(node, st); }
260
+ if (node.type === "VariableDeclaration") { c(node, st); }
261
261
  else { c(node, st, "Expression"); }
262
262
  };
263
263
  base.DebuggerStatement = ignore;
@@ -292,9 +292,9 @@ base.ScopeBody = function (node, st, c) { return c(node, st, "Statement"); };
292
292
  base.ScopeExpression = function (node, st, c) { return c(node, st, "Expression"); };
293
293
 
294
294
  base.Pattern = function (node, st, c) {
295
- if (node.type == "Identifier")
295
+ if (node.type === "Identifier")
296
296
  { c(node, st, "VariablePattern"); }
297
- else if (node.type == "MemberExpression")
297
+ else if (node.type === "MemberExpression")
298
298
  { c(node, st, "MemberPattern"); }
299
299
  else
300
300
  { c(node, st); }
@@ -313,8 +313,12 @@ base.ObjectPattern = function (node, st, c) {
313
313
  for (var i = 0, list = node.properties; i < list.length; i += 1) {
314
314
  var prop = list[i];
315
315
 
316
- if (prop.computed) { c(prop.key, st, "Expression"); }
317
- c(prop.value, st, "Pattern");
316
+ if (prop.type === "Property") {
317
+ if (prop.computed) { c(prop.key, st, "Expression"); }
318
+ c(prop.value, st, "Pattern");
319
+ } else if (prop.type === "RestElement") {
320
+ c(prop.argument, st, "Pattern");
321
+ }
318
322
  }
319
323
  };
320
324
 
@@ -376,7 +380,7 @@ base.MemberExpression = function (node, st, c) {
376
380
  };
377
381
  base.ExportNamedDeclaration = base.ExportDefaultDeclaration = function (node, st, c) {
378
382
  if (node.declaration)
379
- { c(node.declaration, st, node.type == "ExportNamedDeclaration" || node.declaration.id ? "Statement" : "Expression"); }
383
+ { c(node.declaration, st, node.type === "ExportNamedDeclaration" || node.declaration.id ? "Statement" : "Expression"); }
380
384
  if (node.source) { c(node.source, st, "Expression"); }
381
385
  };
382
386
  base.ExportAllDeclaration = function (node, st, c) {
@@ -22,11 +22,11 @@
22
22
  // walker, and state can be used to give this walked an initial
23
23
  // state.
24
24
 
25
- function simple(node, visitors, base, state, override) {
26
- if (!base) { base = exports.base
25
+ function simple(node, visitors, baseVisitor, state, override) {
26
+ if (!baseVisitor) { baseVisitor = base
27
27
  ; }(function c(node, st, override) {
28
28
  var type = override || node.type, found = visitors[type];
29
- base[type](node, st, c);
29
+ baseVisitor[type](node, st, c);
30
30
  if (found) { found(node, st); }
31
31
  })(node, state, override);
32
32
  }
@@ -34,13 +34,14 @@ function simple(node, visitors, base, state, override) {
34
34
  // An ancestor walk keeps an array of ancestor nodes (including the
35
35
  // current node) and passes them to the callback as third parameter
36
36
  // (and also as state parameter when no other state is present).
37
- function ancestor(node, visitors, base, state) {
38
- if (!base) { base = exports.base; }
39
- var ancestors = [];(function c(node, st, override) {
37
+ function ancestor(node, visitors, baseVisitor, state) {
38
+ var ancestors = [];
39
+ if (!baseVisitor) { baseVisitor = base
40
+ ; }(function c(node, st, override) {
40
41
  var type = override || node.type, found = visitors[type];
41
- var isNew = node != ancestors[ancestors.length - 1];
42
+ var isNew = node !== ancestors[ancestors.length - 1];
42
43
  if (isNew) { ancestors.push(node); }
43
- base[type](node, st, c);
44
+ baseVisitor[type](node, st, c);
44
45
  if (found) { found(node, st || ancestors, ancestors); }
45
46
  if (isNew) { ancestors.pop(); }
46
47
  })(node, state);
@@ -51,15 +52,15 @@ function ancestor(node, visitors, base, state) {
51
52
  // threaded through the walk, and can opt how and whether to walk
52
53
  // their child nodes (by calling their third argument on these
53
54
  // nodes).
54
- function recursive(node, state, funcs, base, override) {
55
- var visitor = funcs ? exports.make(funcs, base) : base;(function c(node, st, override) {
55
+ function recursive(node, state, funcs, baseVisitor, override) {
56
+ var visitor = funcs ? make(funcs, baseVisitor || undefined) : baseVisitor;(function c(node, st, override) {
56
57
  visitor[override || node.type](node, st, c);
57
58
  })(node, state, override);
58
59
  }
59
60
 
60
61
  function makeTest(test) {
61
- if (typeof test == "string")
62
- { return function (type) { return type == test; } }
62
+ if (typeof test === "string")
63
+ { return function (type) { return type === test; } }
63
64
  else if (!test)
64
65
  { return function () { return true; } }
65
66
  else
@@ -69,24 +70,24 @@ function makeTest(test) {
69
70
  var Found = function Found(node, state) { this.node = node; this.state = state; };
70
71
 
71
72
  // A full walk triggers the callback on each node
72
- function full(node, callback, base, state, override) {
73
- if (!base) { base = exports.base
73
+ function full(node, callback, baseVisitor, state, override) {
74
+ if (!baseVisitor) { baseVisitor = base
74
75
  ; }(function c(node, st, override) {
75
76
  var type = override || node.type;
76
- base[type](node, st, c);
77
+ baseVisitor[type](node, st, c);
77
78
  if (!override) { callback(node, st, type); }
78
79
  })(node, state, override);
79
80
  }
80
81
 
81
82
  // An fullAncestor walk is like an ancestor walk, but triggers
82
83
  // the callback on each node
83
- function fullAncestor(node, callback, base, state) {
84
- if (!base) { base = exports.base; }
84
+ function fullAncestor(node, callback, baseVisitor, state) {
85
+ if (!baseVisitor) { baseVisitor = base; }
85
86
  var ancestors = [];(function c(node, st, override) {
86
87
  var type = override || node.type;
87
- var isNew = node != ancestors[ancestors.length - 1];
88
+ var isNew = node !== ancestors[ancestors.length - 1];
88
89
  if (isNew) { ancestors.push(node); }
89
- base[type](node, st, c);
90
+ baseVisitor[type](node, st, c);
90
91
  if (!override) { callback(node, st || ancestors, ancestors, type); }
91
92
  if (isNew) { ancestors.pop(); }
92
93
  })(node, state);
@@ -95,17 +96,17 @@ function fullAncestor(node, callback, base, state) {
95
96
  // Find a node with a given start, end, and type (all are optional,
96
97
  // null can be used as wildcard). Returns a {node, state} object, or
97
98
  // undefined when it doesn't find a matching node.
98
- function findNodeAt(node, start, end, test, base, state) {
99
+ function findNodeAt(node, start, end, test, baseVisitor, state) {
100
+ if (!baseVisitor) { baseVisitor = base; }
99
101
  test = makeTest(test);
100
- if (!base) { base = exports.base; }
101
102
  try {
102
103
  (function c(node, st, override) {
103
104
  var type = override || node.type;
104
105
  if ((start == null || node.start <= start) &&
105
106
  (end == null || node.end >= end))
106
- { base[type](node, st, c); }
107
- if ((start == null || node.start == start) &&
108
- (end == null || node.end == end) &&
107
+ { baseVisitor[type](node, st, c); }
108
+ if ((start == null || node.start === start) &&
109
+ (end == null || node.end === end) &&
109
110
  test(type, node))
110
111
  { throw new Found(node, st) }
111
112
  })(node, state);
@@ -117,14 +118,14 @@ function findNodeAt(node, start, end, test, base, state) {
117
118
 
118
119
  // Find the innermost node of a given type that contains the given
119
120
  // position. Interface similar to findNodeAt.
120
- function findNodeAround(node, pos, test, base, state) {
121
+ function findNodeAround(node, pos, test, baseVisitor, state) {
121
122
  test = makeTest(test);
122
- if (!base) { base = exports.base; }
123
+ if (!baseVisitor) { baseVisitor = base; }
123
124
  try {
124
125
  (function c(node, st, override) {
125
126
  var type = override || node.type;
126
127
  if (node.start > pos || node.end < pos) { return }
127
- base[type](node, st, c);
128
+ baseVisitor[type](node, st, c);
128
129
  if (test(type, node)) { throw new Found(node, st) }
129
130
  })(node, state);
130
131
  } catch (e) {
@@ -134,15 +135,15 @@ function findNodeAround(node, pos, test, base, state) {
134
135
  }
135
136
 
136
137
  // Find the outermost matching node after a given position.
137
- function findNodeAfter(node, pos, test, base, state) {
138
+ function findNodeAfter(node, pos, test, baseVisitor, state) {
138
139
  test = makeTest(test);
139
- if (!base) { base = exports.base; }
140
+ if (!baseVisitor) { baseVisitor = base; }
140
141
  try {
141
142
  (function c(node, st, override) {
142
143
  if (node.end < pos) { return }
143
144
  var type = override || node.type;
144
145
  if (node.start >= pos && test(type, node)) { throw new Found(node, st) }
145
- base[type](node, st, c);
146
+ baseVisitor[type](node, st, c);
146
147
  })(node, state);
147
148
  } catch (e) {
148
149
  if (e instanceof Found) { return e }
@@ -151,15 +152,15 @@ function findNodeAfter(node, pos, test, base, state) {
151
152
  }
152
153
 
153
154
  // Find the outermost matching node before a given position.
154
- function findNodeBefore(node, pos, test, base, state) {
155
+ function findNodeBefore(node, pos, test, baseVisitor, state) {
155
156
  test = makeTest(test);
156
- if (!base) { base = exports.base; }
157
+ if (!baseVisitor) { baseVisitor = base; }
157
158
  var max;(function c(node, st, override) {
158
159
  if (node.start > pos) { return }
159
160
  var type = override || node.type;
160
161
  if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node))
161
162
  { max = new Found(node, st); }
162
- base[type](node, st, c);
163
+ baseVisitor[type](node, st, c);
163
164
  })(node, state);
164
165
  return max
165
166
  }
@@ -173,9 +174,8 @@ var create = Object.create || function(proto) {
173
174
 
174
175
  // Used to create a custom walker. Will fill in all missing node
175
176
  // type properties with the defaults.
176
- function make(funcs, base) {
177
- if (!base) { base = exports.base; }
178
- var visitor = create(base);
177
+ function make(funcs, baseVisitor) {
178
+ var visitor = create(baseVisitor || base);
179
179
  for (var type in funcs) { visitor[type] = funcs[type]; }
180
180
  return visitor
181
181
  }
@@ -244,7 +244,7 @@ base.TryStatement = function (node, st, c) {
244
244
  if (node.finalizer) { c(node.finalizer, st, "Statement"); }
245
245
  };
246
246
  base.CatchClause = function (node, st, c) {
247
- c(node.param, st, "Pattern");
247
+ if (node.param) { c(node.param, st, "Pattern"); }
248
248
  c(node.body, st, "ScopeBody");
249
249
  };
250
250
  base.WhileStatement = base.DoWhileStatement = function (node, st, c) {
@@ -263,7 +263,7 @@ base.ForInStatement = base.ForOfStatement = function (node, st, c) {
263
263
  c(node.body, st, "Statement");
264
264
  };
265
265
  base.ForInit = function (node, st, c) {
266
- if (node.type == "VariableDeclaration") { c(node, st); }
266
+ if (node.type === "VariableDeclaration") { c(node, st); }
267
267
  else { c(node, st, "Expression"); }
268
268
  };
269
269
  base.DebuggerStatement = ignore;
@@ -298,9 +298,9 @@ base.ScopeBody = function (node, st, c) { return c(node, st, "Statement"); };
298
298
  base.ScopeExpression = function (node, st, c) { return c(node, st, "Expression"); };
299
299
 
300
300
  base.Pattern = function (node, st, c) {
301
- if (node.type == "Identifier")
301
+ if (node.type === "Identifier")
302
302
  { c(node, st, "VariablePattern"); }
303
- else if (node.type == "MemberExpression")
303
+ else if (node.type === "MemberExpression")
304
304
  { c(node, st, "MemberPattern"); }
305
305
  else
306
306
  { c(node, st); }
@@ -319,8 +319,12 @@ base.ObjectPattern = function (node, st, c) {
319
319
  for (var i = 0, list = node.properties; i < list.length; i += 1) {
320
320
  var prop = list[i];
321
321
 
322
- if (prop.computed) { c(prop.key, st, "Expression"); }
323
- c(prop.value, st, "Pattern");
322
+ if (prop.type === "Property") {
323
+ if (prop.computed) { c(prop.key, st, "Expression"); }
324
+ c(prop.value, st, "Pattern");
325
+ } else if (prop.type === "RestElement") {
326
+ c(prop.argument, st, "Pattern");
327
+ }
324
328
  }
325
329
  };
326
330
 
@@ -382,7 +386,7 @@ base.MemberExpression = function (node, st, c) {
382
386
  };
383
387
  base.ExportNamedDeclaration = base.ExportDefaultDeclaration = function (node, st, c) {
384
388
  if (node.declaration)
385
- { c(node.declaration, st, node.type == "ExportNamedDeclaration" || node.declaration.id ? "Statement" : "Expression"); }
389
+ { c(node.declaration, st, node.type === "ExportNamedDeclaration" || node.declaration.id ? "Statement" : "Expression"); }
386
390
  if (node.source) { c(node.source, st, "Expression"); }
387
391
  };
388
392
  base.ExportAllDeclaration = function (node, st, c) {
@@ -4,7 +4,7 @@
4
4
  "homepage": "https://github.com/acornjs/acorn",
5
5
  "main": "dist/acorn.js",
6
6
  "module": "dist/acorn.es.js",
7
- "version": "5.5.3",
7
+ "version": "5.7.2",
8
8
  "engines": {
9
9
  "node": ">=0.4.0"
10
10
  },
@@ -18,6 +18,10 @@
18
18
  "name": "Ingvar Stepanyan",
19
19
  "email": "me@rreverser.com",
20
20
  "web": "http://rreverser.com/"
21
+ },
22
+ {
23
+ "name": "Adrian Heine",
24
+ "email": "http://adrianheine.de"
21
25
  }
22
26
  ],
23
27
  "repository": {
@@ -26,7 +30,7 @@
26
30
  },
27
31
  "license": "MIT",
28
32
  "scripts": {
29
- "prepare": "npm test",
33
+ "prepare": "npm run build && node test/run.js && node test/lint.js",
30
34
  "test": "node test/run.js && node test/lint.js",
31
35
  "pretest": "npm run build:main && npm run build:loose",
32
36
  "test:test262": "node bin/run_test262.js",
@@ -49,8 +53,8 @@
49
53
  "eslint-plugin-standard": "^3.0.1",
50
54
  "rollup": "^0.45.0",
51
55
  "rollup-plugin-buble": "^0.16.0",
52
- "test262": "git+https://github.com/tc39/test262.git#18c1e799a01cc976695983b61e225ce7959bdd91",
53
- "test262-parser-runner": "^0.3.1",
54
- "unicode-10.0.0": "^0.7.5"
56
+ "test262": "git+https://github.com/tc39/test262.git#3bfad28cc302fd4455badcfcbca7c5bb7ce41a72",
57
+ "test262-parser-runner": "^0.4.0",
58
+ "unicode-11.0.0": "^0.7.7"
55
59
  }
56
60
  }