hermes-parser 0.33.3 → 0.35.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.
@@ -1115,9 +1115,9 @@ function transformNode(node) {
1115
1115
 
1116
1116
  case 'ImportDeclaration':
1117
1117
  {
1118
- if (node.assertions == null || node.assertions.length === 0) {
1118
+ if (node.attributes == null || node.attributes.length === 0) {
1119
1119
  // $FlowExpectedError[cannot-write]
1120
- delete node.assertions;
1120
+ delete node.attributes;
1121
1121
  }
1122
1122
 
1123
1123
  return node;
@@ -1278,9 +1278,9 @@ function transformNode(node: ESNodeOrBabelNode): ESNodeOrBabelNode | null {
1278
1278
  return node;
1279
1279
  }
1280
1280
  case 'ImportDeclaration': {
1281
- if (node.assertions == null || node.assertions.length === 0) {
1281
+ if (node.attributes == null || node.attributes.length === 0) {
1282
1282
  // $FlowExpectedError[cannot-write]
1283
- delete node.assertions;
1283
+ delete node.attributes;
1284
1284
  }
1285
1285
  return node;
1286
1286
  }
@@ -440,6 +440,8 @@ function createForwardRefWrapper(originalComponent) {
440
440
  }
441
441
 
442
442
  function mapComponentDeclaration(node, options) {
443
+ var _node$async;
444
+
443
445
  // Create empty loc for return type annotation nodes
444
446
  const createRendersTypeLoc = () => ({
445
447
  loc: {
@@ -495,7 +497,7 @@ function mapComponentDeclaration(node, options) {
495
497
  params: props == null ? [] : ref == null ? [props] : [props, ref],
496
498
  returnType,
497
499
  body: node.body,
498
- async: false,
500
+ async: (_node$async = node.async) != null ? _node$async : false,
499
501
  generator: false,
500
502
  predicate: null,
501
503
  loc: node.loc,
@@ -544,6 +546,8 @@ function mapDeclareHook(node) {
544
546
  }
545
547
 
546
548
  function mapHookDeclaration(node) {
549
+ var _node$async2;
550
+
547
551
  const comp = {
548
552
  type: 'FunctionDeclaration',
549
553
  id: node.id && (0, _astNodeMutationHelpers.shallowCloneNode)(node.id),
@@ -552,7 +556,7 @@ function mapHookDeclaration(node) {
552
556
  params: node.params,
553
557
  returnType: node.returnType,
554
558
  body: node.body,
555
- async: false,
559
+ async: (_node$async2 = node.async) != null ? _node$async2 : false,
556
560
  generator: false,
557
561
  predicate: null,
558
562
  loc: node.loc,
@@ -590,7 +590,7 @@ function mapComponentDeclaration(
590
590
  params: props == null ? [] : ref == null ? [props] : [props, ref],
591
591
  returnType,
592
592
  body: node.body,
593
- async: false,
593
+ async: node.async ?? false,
594
594
  generator: false,
595
595
  predicate: null,
596
596
  loc: node.loc,
@@ -645,7 +645,7 @@ function mapHookDeclaration(node: HookDeclaration): FunctionDeclaration {
645
645
  params: node.params,
646
646
  returnType: node.returnType,
647
647
  body: node.body,
648
- async: false,
648
+ async: node.async ?? false,
649
649
  generator: false,
650
650
  predicate: null,
651
651
  loc: node.loc,
@@ -157,6 +157,7 @@ function mapRecordDeclaration(genID, node) {
157
157
  kind: 'constructor',
158
158
  computed: false,
159
159
  static: false,
160
+ decorators: [],
160
161
  value: {
161
162
  type: 'FunctionExpression',
162
163
  id: null,
@@ -219,6 +220,7 @@ function mapRecordDeclaration(genID, node) {
219
220
  key: (0, _astNodeMutationHelpers.shallowCloneNode)(prop.key),
220
221
  value: (0, _astNodeMutationHelpers.deepCloneNode)(prop.value),
221
222
  static: true,
223
+ decorators: [],
222
224
  typeAnnotation: null,
223
225
  variance: null,
224
226
  computed: false,
@@ -170,6 +170,7 @@ function mapRecordDeclaration(
170
170
  kind: 'constructor',
171
171
  computed: false,
172
172
  static: false,
173
+ decorators: [],
173
174
  value: {
174
175
  type: 'FunctionExpression',
175
176
  id: null,
@@ -230,6 +231,7 @@ function mapRecordDeclaration(
230
231
  key: shallowCloneNode(prop.key),
231
232
  value: deepCloneNode(prop.value),
232
233
  static: true,
234
+ decorators: [],
233
235
  typeAnnotation: null,
234
236
  variance: null,
235
237
  computed: false,
@@ -69,6 +69,7 @@ module.exports = {
69
69
  DeclareOpaqueType: ['id', 'typeParameters', 'impltype', 'lowerBound', 'upperBound', 'supertype'],
70
70
  DeclareTypeAlias: ['id', 'typeParameters', 'right'],
71
71
  DeclareVariable: ['id'],
72
+ Decorator: ['expression'],
72
73
  DoWhileStatement: ['body', 'test'],
73
74
  EmptyStatement: [],
74
75
  EmptyTypeAnnotation: [],
@@ -102,7 +103,7 @@ module.exports = {
102
103
  Identifier: ['typeAnnotation'],
103
104
  IfStatement: ['test', 'consequent', 'alternate'],
104
105
  ImportAttribute: ['key', 'value'],
105
- ImportDeclaration: ['specifiers', 'source', 'assertions'],
106
+ ImportDeclaration: ['specifiers', 'source', 'attributes'],
106
107
  ImportDefaultSpecifier: ['local'],
107
108
  ImportExpression: ['source', 'options'],
108
109
  ImportNamespaceSpecifier: ['local'],
@@ -152,7 +153,7 @@ module.exports = {
152
153
  MatchWildcardPattern: [],
153
154
  MemberExpression: ['object', 'property'],
154
155
  MetaProperty: ['meta', 'property'],
155
- MethodDefinition: ['key', 'value'],
156
+ MethodDefinition: ['key', 'value', 'decorators'],
156
157
  MixedTypeAnnotation: [],
157
158
  NeverTypeAnnotation: [],
158
159
  NewExpression: ['callee', 'typeArguments', 'arguments'],
@@ -174,7 +175,7 @@ module.exports = {
174
175
  PrivateIdentifier: [],
175
176
  Program: ['body'],
176
177
  Property: ['key', 'value'],
177
- PropertyDefinition: ['key', 'value', 'variance', 'typeAnnotation'],
178
+ PropertyDefinition: ['key', 'value', 'decorators', 'variance', 'typeAnnotation'],
178
179
  QualifiedTypeIdentifier: ['qualification', 'id'],
179
180
  QualifiedTypeofIdentifier: ['qualification', 'id'],
180
181
  RecordDeclaration: ['id', 'typeParameters', 'implements', 'body'],
@@ -225,6 +225,9 @@ const HERMES_AST_VISITOR_KEYS = {
225
225
  DeclareVariable: {
226
226
  id: 'Node'
227
227
  },
228
+ Decorator: {
229
+ expression: 'Node'
230
+ },
228
231
  DoWhileStatement: {
229
232
  body: 'Node',
230
233
  test: 'Node'
@@ -364,7 +367,7 @@ const HERMES_AST_VISITOR_KEYS = {
364
367
  ImportDeclaration: {
365
368
  specifiers: 'NodeList',
366
369
  source: 'Node',
367
- assertions: 'NodeList'
370
+ attributes: 'NodeList'
368
371
  },
369
372
  ImportDefaultSpecifier: {
370
373
  local: 'Node'
@@ -535,7 +538,8 @@ const HERMES_AST_VISITOR_KEYS = {
535
538
  },
536
539
  MethodDefinition: {
537
540
  key: 'Node',
538
- value: 'Node'
541
+ value: 'Node',
542
+ decorators: 'NodeList'
539
543
  },
540
544
  MixedTypeAnnotation: {},
541
545
  NeverTypeAnnotation: {},
@@ -615,6 +619,7 @@ const HERMES_AST_VISITOR_KEYS = {
615
619
  PropertyDefinition: {
616
620
  key: 'Node',
617
621
  value: 'Node',
622
+ decorators: 'NodeList',
618
623
  variance: 'Node',
619
624
  typeAnnotation: 'Node'
620
625
  },
@@ -807,12 +812,14 @@ const HERMES_AST_VISITOR_KEYS = {
807
812
  ClassProperty: {
808
813
  key: 'Node',
809
814
  value: 'Node',
815
+ decorators: 'NodeList',
810
816
  variance: 'Node',
811
817
  typeAnnotation: 'Node'
812
818
  },
813
819
  ClassPrivateProperty: {
814
820
  key: 'Node',
815
821
  value: 'Node',
822
+ decorators: 'NodeList',
816
823
  variance: 'Node',
817
824
  typeAnnotation: 'Node'
818
825
  },
@@ -99,7 +99,8 @@ function deserializeComponentDeclaration() {
99
99
  params: this.deserializeNodeList(),
100
100
  body: this.deserializeNode(),
101
101
  typeParameters: this.deserializeNode(),
102
- rendersType: this.deserializeNode()
102
+ rendersType: this.deserializeNode(),
103
+ async: this.deserializeBoolean()
103
104
  };
104
105
  }
105
106
 
@@ -111,7 +112,8 @@ function deserializeHookDeclaration() {
111
112
  params: this.deserializeNodeList(),
112
113
  body: this.deserializeNode(),
113
114
  typeParameters: this.deserializeNode(),
114
- returnType: this.deserializeNode()
115
+ returnType: this.deserializeNode(),
116
+ async: this.deserializeBoolean()
115
117
  };
116
118
  }
117
119
 
@@ -682,6 +684,14 @@ function deserializeProperty() {
682
684
  };
683
685
  }
684
686
 
687
+ function deserializeDecorator() {
688
+ return {
689
+ type: 'Decorator',
690
+ loc: this.addEmptyLoc(),
691
+ expression: this.deserializeNode()
692
+ };
693
+ }
694
+
685
695
  function deserializeClassLikeFirst() {
686
696
  throw new Error('ClassLike' + ' should not appear in program buffer');
687
697
  }
@@ -734,6 +744,7 @@ function deserializeClassProperty() {
734
744
  value: this.deserializeNode(),
735
745
  computed: this.deserializeBoolean(),
736
746
  static: this.deserializeBoolean(),
747
+ decorators: this.deserializeNodeList(),
737
748
  declare: this.deserializeBoolean(),
738
749
  optional: this.deserializeBoolean(),
739
750
  variance: this.deserializeNode(),
@@ -749,6 +760,7 @@ function deserializeClassPrivateProperty() {
749
760
  key: this.deserializeNode(),
750
761
  value: this.deserializeNode(),
751
762
  static: this.deserializeBoolean(),
763
+ decorators: this.deserializeNodeList(),
752
764
  declare: this.deserializeBoolean(),
753
765
  optional: this.deserializeBoolean(),
754
766
  variance: this.deserializeNode(),
@@ -765,7 +777,8 @@ function deserializeMethodDefinition() {
765
777
  value: this.deserializeNode(),
766
778
  kind: this.deserializeString(),
767
779
  computed: this.deserializeBoolean(),
768
- static: this.deserializeBoolean()
780
+ static: this.deserializeBoolean(),
781
+ decorators: this.deserializeNodeList()
769
782
  };
770
783
  }
771
784
 
@@ -775,7 +788,7 @@ function deserializeImportDeclaration() {
775
788
  loc: this.addEmptyLoc(),
776
789
  specifiers: this.deserializeNodeList(),
777
790
  source: this.deserializeNode(),
778
- assertions: this.deserializeNodeList(),
791
+ attributes: this.deserializeNodeList(),
779
792
  importKind: this.deserializeString()
780
793
  };
781
794
  }
@@ -2578,4 +2591,4 @@ function deserializeImplicitCheckedCast() {
2578
2591
  };
2579
2592
  }
2580
2593
 
2581
- module.exports = [deserializeEmpty, deserializeMetadata, deserializeFunctionLikeFirst, deserializeProgram, deserializeFunctionExpression, deserializeArrowFunctionExpression, deserializeFunctionDeclaration, deserializeComponentDeclaration, deserializeHookDeclaration, deserializeFunctionLikeLast, deserializeStatementFirst, deserializeMatchStatement, deserializeLoopStatementFirst, deserializeWhileStatement, deserializeDoWhileStatement, deserializeForInStatement, deserializeForOfStatement, deserializeForStatement, deserializeLoopStatementLast, deserializeDebuggerStatement, deserializeEmptyStatement, deserializeBlockStatement, deserializeStaticBlock, deserializeBreakStatement, deserializeContinueStatement, deserializeThrowStatement, deserializeReturnStatement, deserializeWithStatement, deserializeSwitchStatement, deserializeLabeledStatement, deserializeExpressionStatement, deserializeTryStatement, deserializeIfStatement, deserializeStatementLast, deserializeNullLiteral, deserializeBooleanLiteral, deserializeStringLiteral, deserializeNumericLiteral, deserializeRegExpLiteral, deserializeBigIntLiteral, deserializeThisExpression, deserializeSuper, deserializeSequenceExpression, deserializeObjectExpression, deserializeArrayExpression, deserializeSpreadElement, deserializeNewExpression, deserializeYieldExpression, deserializeAwaitExpression, deserializeImportExpression, deserializeCallExpressionLikeFirst, deserializeCallExpression, deserializeOptionalCallExpression, deserializeCallExpressionLikeLast, deserializeAssignmentExpression, deserializeUnaryExpression, deserializeUpdateExpression, deserializeMemberExpressionLikeFirst, deserializeMemberExpression, deserializeOptionalMemberExpression, deserializeMemberExpressionLikeLast, deserializeLogicalExpression, deserializeConditionalExpression, deserializeBinaryExpression, deserializeDirective, deserializeDirectiveLiteral, deserializeIdentifier, deserializePrivateName, deserializeMetaProperty, deserializeSwitchCase, deserializeCatchClause, deserializeVariableDeclarator, deserializeVariableDeclaration, deserializeTemplateLiteral, deserializeTaggedTemplateExpression, deserializeTemplateElement, deserializeProperty, deserializeClassLikeFirst, deserializeClassDeclaration, deserializeClassExpression, deserializeClassLikeLast, deserializeClassBody, deserializeClassProperty, deserializeClassPrivateProperty, deserializeMethodDefinition, deserializeImportDeclaration, deserializeImportSpecifier, deserializeImportDefaultSpecifier, deserializeImportNamespaceSpecifier, deserializeImportAttribute, deserializeExportNamedDeclaration, deserializeExportSpecifier, deserializeExportNamespaceSpecifier, deserializeExportDefaultDeclaration, deserializeExportAllDeclaration, deserializePatternFirst, deserializeObjectPattern, deserializeArrayPattern, deserializeRestElement, deserializeAssignmentPattern, deserializePatternLast, deserializeMatchStatementCase, deserializeMatchExpression, deserializeMatchExpressionCase, deserializeMatchPatternFirst, deserializeMatchWildcardPattern, deserializeMatchLiteralPattern, deserializeMatchUnaryPattern, deserializeMatchIdentifierPattern, deserializeMatchBindingPattern, deserializeMatchObjectPattern, deserializeMatchArrayPattern, deserializeMatchOrPattern, deserializeMatchAsPattern, deserializeMatchMemberPattern, deserializeMatchInstancePattern, deserializeMatchPatternLast, deserializeMatchObjectPatternProperty, deserializeMatchInstanceObjectPattern, deserializeMatchRestPattern, deserializeJSXFirst, deserializeJSXIdentifier, deserializeJSXMemberExpression, deserializeJSXNamespacedName, deserializeJSXEmptyExpression, deserializeJSXExpressionContainer, deserializeJSXSpreadChild, deserializeJSXOpeningElement, deserializeJSXClosingElement, deserializeJSXAttribute, deserializeJSXSpreadAttribute, deserializeJSXStringLiteral, deserializeJSXText, deserializeJSXElement, deserializeJSXFragment, deserializeJSXOpeningFragment, deserializeJSXClosingFragment, deserializeJSXLast, deserializeFlowFirst, deserializeExistsTypeAnnotation, deserializeEmptyTypeAnnotation, deserializeStringTypeAnnotation, deserializeNumberTypeAnnotation, deserializeStringLiteralTypeAnnotation, deserializeNumberLiteralTypeAnnotation, deserializeBigIntLiteralTypeAnnotation, deserializeBooleanTypeAnnotation, deserializeBooleanLiteralTypeAnnotation, deserializeNullLiteralTypeAnnotation, deserializeSymbolTypeAnnotation, deserializeAnyTypeAnnotation, deserializeMixedTypeAnnotation, deserializeBigIntTypeAnnotation, deserializeVoidTypeAnnotation, deserializeNeverTypeAnnotation, deserializeUnknownTypeAnnotation, deserializeUndefinedTypeAnnotation, deserializeFunctionTypeAnnotation, deserializeHookTypeAnnotation, deserializeFunctionTypeParam, deserializeComponentTypeAnnotation, deserializeComponentTypeParameter, deserializeNullableTypeAnnotation, deserializeQualifiedTypeIdentifier, deserializeTypeofTypeAnnotation, deserializeKeyofTypeAnnotation, deserializeTypeOperator, deserializeQualifiedTypeofIdentifier, deserializeTupleTypeAnnotation, deserializeTupleTypeSpreadElement, deserializeTupleTypeLabeledElement, deserializeArrayTypeAnnotation, deserializeInferTypeAnnotation, deserializeUnionTypeAnnotation, deserializeIntersectionTypeAnnotation, deserializeGenericTypeAnnotation, deserializeIndexedAccessType, deserializeOptionalIndexedAccessType, deserializeConditionalTypeAnnotation, deserializeTypePredicate, deserializeInterfaceTypeAnnotation, deserializeTypeAlias, deserializeOpaqueType, deserializeInterfaceDeclaration, deserializeDeclareTypeAlias, deserializeDeclareOpaqueType, deserializeDeclareInterface, deserializeDeclareClass, deserializeDeclareFunction, deserializeDeclareHook, deserializeDeclareComponent, deserializeDeclareVariable, deserializeDeclareEnum, deserializeDeclareExportDeclaration, deserializeDeclareExportAllDeclaration, deserializeDeclareModule, deserializeDeclareNamespace, deserializeDeclareModuleExports, deserializeInterfaceExtends, deserializeClassImplements, deserializeTypeAnnotation, deserializeObjectTypeAnnotation, deserializeObjectTypeProperty, deserializeObjectTypeSpreadProperty, deserializeObjectTypeInternalSlot, deserializeObjectTypeCallProperty, deserializeObjectTypeIndexer, deserializeObjectTypeMappedTypeProperty, deserializeVariance, deserializeTypeParameterDeclaration, deserializeTypeParameter, deserializeTypeParameterInstantiation, deserializeTypeCastExpression, deserializeAsExpression, deserializeAsConstExpression, deserializeInferredPredicate, deserializeDeclaredPredicate, deserializeEnumDeclaration, deserializeEnumStringBody, deserializeEnumNumberBody, deserializeEnumBigIntBody, deserializeEnumBooleanBody, deserializeEnumSymbolBody, deserializeEnumDefaultedMember, deserializeEnumStringMember, deserializeEnumNumberMember, deserializeEnumBigIntMember, deserializeEnumBooleanMember, deserializeComponentParameter, deserializeRecordDeclaration, deserializeRecordDeclarationImplements, deserializeRecordDeclarationBody, deserializeRecordDeclarationProperty, deserializeRecordDeclarationStaticProperty, deserializeRecordExpression, deserializeRecordExpressionProperties, deserializeFlowLast, deserializeTSFirst, deserializeTSTypeAnnotation, deserializeTSAnyKeyword, deserializeTSNumberKeyword, deserializeTSBooleanKeyword, deserializeTSStringKeyword, deserializeTSSymbolKeyword, deserializeTSVoidKeyword, deserializeTSUndefinedKeyword, deserializeTSUnknownKeyword, deserializeTSNeverKeyword, deserializeTSBigIntKeyword, deserializeTSThisType, deserializeTSLiteralType, deserializeTSIndexedAccessType, deserializeTSArrayType, deserializeTSTypeReference, deserializeTSQualifiedName, deserializeTSFunctionType, deserializeTSConstructorType, deserializeTSTypePredicate, deserializeTSTupleType, deserializeTSTypeAssertion, deserializeTSAsExpression, deserializeTSParameterProperty, deserializeTSTypeAliasDeclaration, deserializeTSInterfaceDeclaration, deserializeTSInterfaceHeritage, deserializeTSInterfaceBody, deserializeTSEnumDeclaration, deserializeTSEnumMember, deserializeTSModuleDeclaration, deserializeTSModuleBlock, deserializeTSModuleMember, deserializeTSTypeParameterDeclaration, deserializeTSTypeParameter, deserializeTSTypeParameterInstantiation, deserializeTSUnionType, deserializeTSIntersectionType, deserializeTSTypeQuery, deserializeTSConditionalType, deserializeTSTypeLiteral, deserializeTSPropertySignature, deserializeTSMethodSignature, deserializeTSIndexSignature, deserializeTSCallSignatureDeclaration, deserializeTSModifiers, deserializeTSLast, deserializeCoverFirst, deserializeCoverEmptyArgs, deserializeCoverTrailingComma, deserializeCoverInitializer, deserializeCoverRestElement, deserializeCoverTypedIdentifier, deserializeCoverLast, deserializeSHBuiltin, deserializeImplicitCheckedCast];
2594
+ module.exports = [deserializeEmpty, deserializeMetadata, deserializeFunctionLikeFirst, deserializeProgram, deserializeFunctionExpression, deserializeArrowFunctionExpression, deserializeFunctionDeclaration, deserializeComponentDeclaration, deserializeHookDeclaration, deserializeFunctionLikeLast, deserializeStatementFirst, deserializeMatchStatement, deserializeLoopStatementFirst, deserializeWhileStatement, deserializeDoWhileStatement, deserializeForInStatement, deserializeForOfStatement, deserializeForStatement, deserializeLoopStatementLast, deserializeDebuggerStatement, deserializeEmptyStatement, deserializeBlockStatement, deserializeStaticBlock, deserializeBreakStatement, deserializeContinueStatement, deserializeThrowStatement, deserializeReturnStatement, deserializeWithStatement, deserializeSwitchStatement, deserializeLabeledStatement, deserializeExpressionStatement, deserializeTryStatement, deserializeIfStatement, deserializeStatementLast, deserializeNullLiteral, deserializeBooleanLiteral, deserializeStringLiteral, deserializeNumericLiteral, deserializeRegExpLiteral, deserializeBigIntLiteral, deserializeThisExpression, deserializeSuper, deserializeSequenceExpression, deserializeObjectExpression, deserializeArrayExpression, deserializeSpreadElement, deserializeNewExpression, deserializeYieldExpression, deserializeAwaitExpression, deserializeImportExpression, deserializeCallExpressionLikeFirst, deserializeCallExpression, deserializeOptionalCallExpression, deserializeCallExpressionLikeLast, deserializeAssignmentExpression, deserializeUnaryExpression, deserializeUpdateExpression, deserializeMemberExpressionLikeFirst, deserializeMemberExpression, deserializeOptionalMemberExpression, deserializeMemberExpressionLikeLast, deserializeLogicalExpression, deserializeConditionalExpression, deserializeBinaryExpression, deserializeDirective, deserializeDirectiveLiteral, deserializeIdentifier, deserializePrivateName, deserializeMetaProperty, deserializeSwitchCase, deserializeCatchClause, deserializeVariableDeclarator, deserializeVariableDeclaration, deserializeTemplateLiteral, deserializeTaggedTemplateExpression, deserializeTemplateElement, deserializeProperty, deserializeDecorator, deserializeClassLikeFirst, deserializeClassDeclaration, deserializeClassExpression, deserializeClassLikeLast, deserializeClassBody, deserializeClassProperty, deserializeClassPrivateProperty, deserializeMethodDefinition, deserializeImportDeclaration, deserializeImportSpecifier, deserializeImportDefaultSpecifier, deserializeImportNamespaceSpecifier, deserializeImportAttribute, deserializeExportNamedDeclaration, deserializeExportSpecifier, deserializeExportNamespaceSpecifier, deserializeExportDefaultDeclaration, deserializeExportAllDeclaration, deserializePatternFirst, deserializeObjectPattern, deserializeArrayPattern, deserializeRestElement, deserializeAssignmentPattern, deserializePatternLast, deserializeMatchStatementCase, deserializeMatchExpression, deserializeMatchExpressionCase, deserializeMatchPatternFirst, deserializeMatchWildcardPattern, deserializeMatchLiteralPattern, deserializeMatchUnaryPattern, deserializeMatchIdentifierPattern, deserializeMatchBindingPattern, deserializeMatchObjectPattern, deserializeMatchArrayPattern, deserializeMatchOrPattern, deserializeMatchAsPattern, deserializeMatchMemberPattern, deserializeMatchInstancePattern, deserializeMatchPatternLast, deserializeMatchObjectPatternProperty, deserializeMatchInstanceObjectPattern, deserializeMatchRestPattern, deserializeJSXFirst, deserializeJSXIdentifier, deserializeJSXMemberExpression, deserializeJSXNamespacedName, deserializeJSXEmptyExpression, deserializeJSXExpressionContainer, deserializeJSXSpreadChild, deserializeJSXOpeningElement, deserializeJSXClosingElement, deserializeJSXAttribute, deserializeJSXSpreadAttribute, deserializeJSXStringLiteral, deserializeJSXText, deserializeJSXElement, deserializeJSXFragment, deserializeJSXOpeningFragment, deserializeJSXClosingFragment, deserializeJSXLast, deserializeFlowFirst, deserializeExistsTypeAnnotation, deserializeEmptyTypeAnnotation, deserializeStringTypeAnnotation, deserializeNumberTypeAnnotation, deserializeStringLiteralTypeAnnotation, deserializeNumberLiteralTypeAnnotation, deserializeBigIntLiteralTypeAnnotation, deserializeBooleanTypeAnnotation, deserializeBooleanLiteralTypeAnnotation, deserializeNullLiteralTypeAnnotation, deserializeSymbolTypeAnnotation, deserializeAnyTypeAnnotation, deserializeMixedTypeAnnotation, deserializeBigIntTypeAnnotation, deserializeVoidTypeAnnotation, deserializeNeverTypeAnnotation, deserializeUnknownTypeAnnotation, deserializeUndefinedTypeAnnotation, deserializeFunctionTypeAnnotation, deserializeHookTypeAnnotation, deserializeFunctionTypeParam, deserializeComponentTypeAnnotation, deserializeComponentTypeParameter, deserializeNullableTypeAnnotation, deserializeQualifiedTypeIdentifier, deserializeTypeofTypeAnnotation, deserializeKeyofTypeAnnotation, deserializeTypeOperator, deserializeQualifiedTypeofIdentifier, deserializeTupleTypeAnnotation, deserializeTupleTypeSpreadElement, deserializeTupleTypeLabeledElement, deserializeArrayTypeAnnotation, deserializeInferTypeAnnotation, deserializeUnionTypeAnnotation, deserializeIntersectionTypeAnnotation, deserializeGenericTypeAnnotation, deserializeIndexedAccessType, deserializeOptionalIndexedAccessType, deserializeConditionalTypeAnnotation, deserializeTypePredicate, deserializeInterfaceTypeAnnotation, deserializeTypeAlias, deserializeOpaqueType, deserializeInterfaceDeclaration, deserializeDeclareTypeAlias, deserializeDeclareOpaqueType, deserializeDeclareInterface, deserializeDeclareClass, deserializeDeclareFunction, deserializeDeclareHook, deserializeDeclareComponent, deserializeDeclareVariable, deserializeDeclareEnum, deserializeDeclareExportDeclaration, deserializeDeclareExportAllDeclaration, deserializeDeclareModule, deserializeDeclareNamespace, deserializeDeclareModuleExports, deserializeInterfaceExtends, deserializeClassImplements, deserializeTypeAnnotation, deserializeObjectTypeAnnotation, deserializeObjectTypeProperty, deserializeObjectTypeSpreadProperty, deserializeObjectTypeInternalSlot, deserializeObjectTypeCallProperty, deserializeObjectTypeIndexer, deserializeObjectTypeMappedTypeProperty, deserializeVariance, deserializeTypeParameterDeclaration, deserializeTypeParameter, deserializeTypeParameterInstantiation, deserializeTypeCastExpression, deserializeAsExpression, deserializeAsConstExpression, deserializeInferredPredicate, deserializeDeclaredPredicate, deserializeEnumDeclaration, deserializeEnumStringBody, deserializeEnumNumberBody, deserializeEnumBigIntBody, deserializeEnumBooleanBody, deserializeEnumSymbolBody, deserializeEnumDefaultedMember, deserializeEnumStringMember, deserializeEnumNumberMember, deserializeEnumBigIntMember, deserializeEnumBooleanMember, deserializeComponentParameter, deserializeRecordDeclaration, deserializeRecordDeclarationImplements, deserializeRecordDeclarationBody, deserializeRecordDeclarationProperty, deserializeRecordDeclarationStaticProperty, deserializeRecordExpression, deserializeRecordExpressionProperties, deserializeFlowLast, deserializeTSFirst, deserializeTSTypeAnnotation, deserializeTSAnyKeyword, deserializeTSNumberKeyword, deserializeTSBooleanKeyword, deserializeTSStringKeyword, deserializeTSSymbolKeyword, deserializeTSVoidKeyword, deserializeTSUndefinedKeyword, deserializeTSUnknownKeyword, deserializeTSNeverKeyword, deserializeTSBigIntKeyword, deserializeTSThisType, deserializeTSLiteralType, deserializeTSIndexedAccessType, deserializeTSArrayType, deserializeTSTypeReference, deserializeTSQualifiedName, deserializeTSFunctionType, deserializeTSConstructorType, deserializeTSTypePredicate, deserializeTSTupleType, deserializeTSTypeAssertion, deserializeTSAsExpression, deserializeTSParameterProperty, deserializeTSTypeAliasDeclaration, deserializeTSInterfaceDeclaration, deserializeTSInterfaceHeritage, deserializeTSInterfaceBody, deserializeTSEnumDeclaration, deserializeTSEnumMember, deserializeTSModuleDeclaration, deserializeTSModuleBlock, deserializeTSModuleMember, deserializeTSTypeParameterDeclaration, deserializeTSTypeParameter, deserializeTSTypeParameterInstantiation, deserializeTSUnionType, deserializeTSIntersectionType, deserializeTSTypeQuery, deserializeTSConditionalType, deserializeTSTypeLiteral, deserializeTSPropertySignature, deserializeTSMethodSignature, deserializeTSIndexSignature, deserializeTSCallSignatureDeclaration, deserializeTSModifiers, deserializeTSLast, deserializeCoverFirst, deserializeCoverEmptyArgs, deserializeCoverTrailingComma, deserializeCoverInitializer, deserializeCoverRestElement, deserializeCoverTypedIdentifier, deserializeCoverLast, deserializeSHBuiltin, deserializeImplicitCheckedCast];
@@ -1115,9 +1115,9 @@ function transformNode(node) {
1115
1115
 
1116
1116
  case 'ImportDeclaration':
1117
1117
  {
1118
- if (node.assertions == null || node.assertions.length === 0) {
1118
+ if (node.attributes == null || node.attributes.length === 0) {
1119
1119
  // $FlowExpectedError[cannot-write]
1120
- delete node.assertions;
1120
+ delete node.attributes;
1121
1121
  }
1122
1122
 
1123
1123
  return node;
@@ -440,6 +440,8 @@ function createForwardRefWrapper(originalComponent) {
440
440
  }
441
441
 
442
442
  function mapComponentDeclaration(node, options) {
443
+ var _node$async;
444
+
443
445
  // Create empty loc for return type annotation nodes
444
446
  const createRendersTypeLoc = () => ({
445
447
  loc: {
@@ -495,7 +497,7 @@ function mapComponentDeclaration(node, options) {
495
497
  params: props == null ? [] : ref == null ? [props] : [props, ref],
496
498
  returnType,
497
499
  body: node.body,
498
- async: false,
500
+ async: (_node$async = node.async) != null ? _node$async : false,
499
501
  generator: false,
500
502
  predicate: null,
501
503
  loc: node.loc,
@@ -544,6 +546,8 @@ function mapDeclareHook(node) {
544
546
  }
545
547
 
546
548
  function mapHookDeclaration(node) {
549
+ var _node$async2;
550
+
547
551
  const comp = {
548
552
  type: 'FunctionDeclaration',
549
553
  id: node.id && (0, _astNodeMutationHelpers.shallowCloneNode)(node.id),
@@ -552,7 +556,7 @@ function mapHookDeclaration(node) {
552
556
  params: node.params,
553
557
  returnType: node.returnType,
554
558
  body: node.body,
555
- async: false,
559
+ async: (_node$async2 = node.async) != null ? _node$async2 : false,
556
560
  generator: false,
557
561
  predicate: null,
558
562
  loc: node.loc,
@@ -157,6 +157,7 @@ function mapRecordDeclaration(genID, node) {
157
157
  kind: 'constructor',
158
158
  computed: false,
159
159
  static: false,
160
+ decorators: [],
160
161
  value: {
161
162
  type: 'FunctionExpression',
162
163
  id: null,
@@ -219,6 +220,7 @@ function mapRecordDeclaration(genID, node) {
219
220
  key: (0, _astNodeMutationHelpers.shallowCloneNode)(prop.key),
220
221
  value: (0, _astNodeMutationHelpers.deepCloneNode)(prop.value),
221
222
  static: true,
223
+ decorators: [],
222
224
  typeAnnotation: null,
223
225
  variance: null,
224
226
  computed: false,
@@ -69,6 +69,7 @@ module.exports = {
69
69
  DeclareOpaqueType: ['id', 'typeParameters', 'impltype', 'lowerBound', 'upperBound', 'supertype'],
70
70
  DeclareTypeAlias: ['id', 'typeParameters', 'right'],
71
71
  DeclareVariable: ['id'],
72
+ Decorator: ['expression'],
72
73
  DoWhileStatement: ['body', 'test'],
73
74
  EmptyStatement: [],
74
75
  EmptyTypeAnnotation: [],
@@ -102,7 +103,7 @@ module.exports = {
102
103
  Identifier: ['typeAnnotation'],
103
104
  IfStatement: ['test', 'consequent', 'alternate'],
104
105
  ImportAttribute: ['key', 'value'],
105
- ImportDeclaration: ['specifiers', 'source', 'assertions'],
106
+ ImportDeclaration: ['specifiers', 'source', 'attributes'],
106
107
  ImportDefaultSpecifier: ['local'],
107
108
  ImportExpression: ['source', 'options'],
108
109
  ImportNamespaceSpecifier: ['local'],
@@ -152,7 +153,7 @@ module.exports = {
152
153
  MatchWildcardPattern: [],
153
154
  MemberExpression: ['object', 'property'],
154
155
  MetaProperty: ['meta', 'property'],
155
- MethodDefinition: ['key', 'value'],
156
+ MethodDefinition: ['key', 'value', 'decorators'],
156
157
  MixedTypeAnnotation: [],
157
158
  NeverTypeAnnotation: [],
158
159
  NewExpression: ['callee', 'typeArguments', 'arguments'],
@@ -174,7 +175,7 @@ module.exports = {
174
175
  PrivateIdentifier: [],
175
176
  Program: ['body'],
176
177
  Property: ['key', 'value'],
177
- PropertyDefinition: ['key', 'value', 'variance', 'typeAnnotation'],
178
+ PropertyDefinition: ['key', 'value', 'decorators', 'variance', 'typeAnnotation'],
178
179
  QualifiedTypeIdentifier: ['qualification', 'id'],
179
180
  QualifiedTypeofIdentifier: ['qualification', 'id'],
180
181
  RecordDeclaration: ['id', 'typeParameters', 'implements', 'body'],
@@ -225,6 +225,9 @@ const HERMES_AST_VISITOR_KEYS = {
225
225
  DeclareVariable: {
226
226
  id: 'Node'
227
227
  },
228
+ Decorator: {
229
+ expression: 'Node'
230
+ },
228
231
  DoWhileStatement: {
229
232
  body: 'Node',
230
233
  test: 'Node'
@@ -364,7 +367,7 @@ const HERMES_AST_VISITOR_KEYS = {
364
367
  ImportDeclaration: {
365
368
  specifiers: 'NodeList',
366
369
  source: 'Node',
367
- assertions: 'NodeList'
370
+ attributes: 'NodeList'
368
371
  },
369
372
  ImportDefaultSpecifier: {
370
373
  local: 'Node'
@@ -535,7 +538,8 @@ const HERMES_AST_VISITOR_KEYS = {
535
538
  },
536
539
  MethodDefinition: {
537
540
  key: 'Node',
538
- value: 'Node'
541
+ value: 'Node',
542
+ decorators: 'NodeList'
539
543
  },
540
544
  MixedTypeAnnotation: {},
541
545
  NeverTypeAnnotation: {},
@@ -615,6 +619,7 @@ const HERMES_AST_VISITOR_KEYS = {
615
619
  PropertyDefinition: {
616
620
  key: 'Node',
617
621
  value: 'Node',
622
+ decorators: 'NodeList',
618
623
  variance: 'Node',
619
624
  typeAnnotation: 'Node'
620
625
  },
@@ -807,12 +812,14 @@ const HERMES_AST_VISITOR_KEYS = {
807
812
  ClassProperty: {
808
813
  key: 'Node',
809
814
  value: 'Node',
815
+ decorators: 'NodeList',
810
816
  variance: 'Node',
811
817
  typeAnnotation: 'Node'
812
818
  },
813
819
  ClassPrivateProperty: {
814
820
  key: 'Node',
815
821
  value: 'Node',
822
+ decorators: 'NodeList',
816
823
  variance: 'Node',
817
824
  typeAnnotation: 'Node'
818
825
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hermes-parser",
3
- "version": "0.33.3",
3
+ "version": "0.35.0",
4
4
  "description": "A JavaScript parser built from the Hermes engine",
5
5
  "main": "dist/index.js",
6
6
  "license": "MIT",
@@ -9,7 +9,7 @@
9
9
  "url": "git@github.com:facebook/hermes.git"
10
10
  },
11
11
  "dependencies": {
12
- "hermes-estree": "0.33.3"
12
+ "hermes-estree": "0.35.0"
13
13
  },
14
14
  "devDependencies": {
15
15
  "@babel/parser": "7.7.4",