hermes-parser 0.15.0 → 0.16.0

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.
@@ -233,7 +233,7 @@ class HermesToESTreeAdapter extends _HermesASTAdapter.default {
233
233
  mapProperty(nodeUnprocessed) {
234
234
  const node = this.mapNodeDefault(nodeUnprocessed);
235
235
 
236
- if (node.value.type === 'FunctionExpression') {
236
+ if (node.value.type === 'FunctionExpression' && (node.method || node.kind !== 'init')) {
237
237
  node.value.loc.start = node.key.loc.end;
238
238
  node.value.range[0] = node.key.range[1];
239
239
  }
@@ -255,6 +255,8 @@ class HermesToESTreeAdapter extends _HermesASTAdapter.default {
255
255
  const node = this.mapNodeDefault(nodeUnprocessed);
256
256
 
257
257
  switch (node.type) {
258
+ // This prop should ideally only live on `ArrowFunctionExpression` but to
259
+ // match espree output we place it on all functions types.
258
260
  case 'FunctionDeclaration':
259
261
  case 'FunctionExpression':
260
262
  node.expression = false;
@@ -301,7 +303,7 @@ class HermesToESTreeAdapter extends _HermesASTAdapter.default {
301
303
  i) unwrap the child (`node.object = child.expression`)
302
304
  b) convert this node to a `MemberExpression[optional = true]`
303
305
  c) wrap this node (`node = ChainExpression[expression = node]`)
304
- 3) if the current node is a `MembedExpression`:
306
+ 3) if the current node is a `MemberExpression`:
305
307
  a) convert this node to a `MemberExpression[optional = true]`
306
308
  */
307
309
  const node = this.mapNodeDefault(nodeUnprocessed);
@@ -215,7 +215,10 @@ export default class HermesToESTreeAdapter extends HermesASTAdapter {
215
215
  mapProperty(nodeUnprocessed: HermesNode): HermesNode {
216
216
  const node = this.mapNodeDefault(nodeUnprocessed);
217
217
 
218
- if (node.value.type === 'FunctionExpression') {
218
+ if (
219
+ node.value.type === 'FunctionExpression' &&
220
+ (node.method || node.kind !== 'init')
221
+ ) {
219
222
  node.value.loc.start = node.key.loc.end;
220
223
  node.value.range[0] = node.key.range[1];
221
224
  }
@@ -237,6 +240,8 @@ export default class HermesToESTreeAdapter extends HermesASTAdapter {
237
240
  const node = this.mapNodeDefault(nodeUnprocessed);
238
241
 
239
242
  switch (node.type) {
243
+ // This prop should ideally only live on `ArrowFunctionExpression` but to
244
+ // match espree output we place it on all functions types.
240
245
  case 'FunctionDeclaration':
241
246
  case 'FunctionExpression':
242
247
  node.expression = false;
@@ -286,7 +291,7 @@ export default class HermesToESTreeAdapter extends HermesASTAdapter {
286
291
  i) unwrap the child (`node.object = child.expression`)
287
292
  b) convert this node to a `MemberExpression[optional = true]`
288
293
  c) wrap this node (`node = ChainExpression[expression = node]`)
289
- 3) if the current node is a `MembedExpression`:
294
+ 3) if the current node is a `MemberExpression`:
290
295
  a) convert this node to a `MemberExpression[optional = true]`
291
296
  */
292
297