Comparing version 0.3.1 to 0.3.2
@@ -11,3 +11,3 @@ import { Token } from './token'; | ||
OptionsGlobalReturn = 32, | ||
OptionsGlobalAwait = 64, | ||
OptionsLexical = 64, | ||
OptionsParenthesized = 128, | ||
@@ -56,7 +56,6 @@ OptionsWebCompat = 256, | ||
None = 0, | ||
ArgumentList = 1, | ||
ArgList = 1, | ||
Variable = 4, | ||
Let = 8, | ||
Const = 16, | ||
Class = 32 | ||
Const = 16 | ||
} | ||
@@ -95,2 +94,10 @@ export declare const enum BindingOrigin { | ||
} | ||
export declare const enum ScopeType { | ||
None = 0, | ||
For = 1, | ||
Block = 2, | ||
Catch = 4, | ||
Switch = 8, | ||
ArgList = 16 | ||
} | ||
export declare const enum FunctionStatement { | ||
@@ -119,2 +126,4 @@ Disallow = 0, | ||
nextCP: number; | ||
exportedNames: any; | ||
exportedBindings: any; | ||
} | ||
@@ -121,0 +130,0 @@ export declare function consumeSemicolon(parser: ParserState, context: Context): void; |
@@ -97,3 +97,3 @@ interface _Node<T extends string> { | ||
export declare type Statement = ExpressionStatement | BlockStatement | EmptyStatement | DebuggerStatement | WithStatement | ReturnStatement | LabeledStatement | BreakStatement | ContinueStatement | Decorator | IfStatement | SwitchStatement | ThrowStatement | TryStatement | WhileStatement | DoWhileStatement | ForStatement | ForInStatement | ForOfStatement | Declaration; | ||
export declare type Expression = Identifier | Literal | RegExpLiteral | ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | PrivateName | ConditionalExpression | CallExpression | NewExpression | SequenceExpression | ArrowFunctionExpression | YieldExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | AwaitExpression; | ||
export declare type Expression = Identifier | Literal | RegExpLiteral | ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | PrivateName | ConditionalExpression | CallExpression | ImportExpression | NewExpression | SequenceExpression | ArrowFunctionExpression | YieldExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | AwaitExpression; | ||
export interface EmptyStatement extends _Node<'EmptyStatement'> { | ||
@@ -227,3 +227,3 @@ } | ||
} | ||
declare type Expression = ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | Literal | BigIntLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | CallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression; | ||
declare type Expression = ThisExpression | ArrayExpression | ObjectExpression | FunctionExpression | ArrowFunctionExpression | YieldExpression | Literal | BigIntLiteral | UnaryExpression | UpdateExpression | BinaryExpression | AssignmentExpression | LogicalExpression | MemberExpression | ConditionalExpression | ImportExpression | CallExpression | NewExpression | SequenceExpression | TemplateLiteral | TaggedTemplateExpression | ClassExpression | MetaProperty | Identifier | AwaitExpression; | ||
export interface ThisExpression extends _Expression<'ThisExpression'> { | ||
@@ -286,9 +286,8 @@ } | ||
export interface CallExpression extends _Expression<'CallExpression'> { | ||
callee: Expression | Import | Super; | ||
callee: Expression | Super; | ||
arguments: (Expression | SpreadElement)[]; | ||
} | ||
export interface Import extends _Node<'Import'> { | ||
export interface ImportExpression extends _Expression<'ImportExpression'> { | ||
source: Expression; | ||
} | ||
export interface ImportExpression extends _Expression<'Import'> { | ||
} | ||
export interface NewExpression extends _Expression<'NewExpression'> { | ||
@@ -295,0 +294,0 @@ callee: Expression; |
@@ -16,33 +16,41 @@ import { Token } from './token'; | ||
parenthesizedExpr?: boolean; | ||
lexical?: boolean; | ||
} | ||
export interface ScopeState { | ||
var: any; | ||
lexvar: any; | ||
lex: any; | ||
funcs?: any; | ||
} | ||
export declare function parseSource(source: string, options: Options | void, context: Context): ESTree.Program; | ||
export declare function parseStatementList(parser: ParserState, context: Context): ESTree.Statement[]; | ||
export declare function parseparseModuleItemList(parser: ParserState, context: Context): (ReturnType<typeof parseDirective | typeof parseModuleItem>)[]; | ||
export declare function parseModuleItem(parser: ParserState, context: Context, start: number): any; | ||
export declare function parseStatementListItem(parser: ParserState, context: Context, labels: any, start: number): ESTree.Statement | ESTree.Decorator[]; | ||
export declare function parseStatement(parser: ParserState, context: Context, labels: any, allowFuncDecl: FunctionStatement, start: number): ESTree.Statement; | ||
export declare function parseExpressionOrLabelledStatement(parser: ParserState, context: Context, labels: any, allowFuncDecl: FunctionStatement, start: number): ESTree.ExpressionStatement | ESTree.LabeledStatement; | ||
export declare function parseBlock(parser: ParserState, context: Context, labels: any, start: number): ESTree.BlockStatement; | ||
export declare function parseStatementList(parser: ParserState, context: Context, scope: ScopeState): ESTree.Statement[]; | ||
export declare function parseModuleItemList(parser: ParserState, context: Context, scope: ScopeState): (ReturnType<typeof parseDirective | typeof parseModuleItem>)[]; | ||
export declare function parseModuleItem(parser: ParserState, context: Context, scope: ScopeState, start: number): any; | ||
export declare function parseStatementListItem(parser: ParserState, context: Context, scope: ScopeState, labels: any, start: number): ESTree.Statement | ESTree.Decorator[]; | ||
export declare function parseStatement(parser: ParserState, context: Context, scope: ScopeState, labels: any, allowFuncDecl: FunctionStatement, start: number): ESTree.Statement; | ||
export declare function parseExpressionOrLabelledStatement(parser: ParserState, context: Context, scope: ScopeState, labels: any, allowFuncDecl: FunctionStatement, start: number): ESTree.ExpressionStatement | ESTree.LabeledStatement; | ||
export declare function parseBlock(parser: ParserState, context: Context, scope: any, labels: any, start: number): ESTree.BlockStatement; | ||
export declare function parseReturnStatement(parser: ParserState, context: Context, start: number): ESTree.ReturnStatement; | ||
export declare function parseExpressionStatement(parser: ParserState, context: Context, expression: ESTree.Expression, start: number): ESTree.ExpressionStatement; | ||
export declare function parseLabelledStatement(parser: ParserState, context: Context, labels: any, label: string, expr: ESTree.Identifier, token: Token, allowFuncDecl: 0 | 1, start: number): ESTree.LabeledStatement; | ||
export declare function parseAsyncArrowOrAsyncFunctionDeclaration(parser: ParserState, context: Context, labels: any, allowFuncDecl: FunctionStatement, start: number): ESTree.ExpressionStatement | ESTree.LabeledStatement | ESTree.FunctionDeclaration; | ||
export declare function parseLabelledStatement(parser: ParserState, context: Context, scope: ScopeState, labels: any, label: string, expr: ESTree.Identifier, token: Token, allowFuncDecl: 0 | 1, start: number): ESTree.LabeledStatement; | ||
export declare function parseAsyncArrowOrAsyncFunctionDeclaration(parser: ParserState, context: Context, scope: ScopeState, labels: any, allowFuncDecl: FunctionStatement, start: number): ESTree.ExpressionStatement | ESTree.LabeledStatement | ESTree.FunctionDeclaration; | ||
export declare function parseDirective(parser: ParserState, context: Context, expression: any, token: Token, start: number): ESTree.ExpressionStatement; | ||
export declare function parseEmptyStatement(parser: ParserState, context: Context, start: number): ESTree.EmptyStatement; | ||
export declare function parseThrowStatement(parser: ParserState, context: Context, start: number): ESTree.ThrowStatement; | ||
export declare function parseIfStatement(parser: ParserState, context: Context, labels: any, start: number): ESTree.IfStatement; | ||
export declare function parseConsequentOrAlternate(parser: ParserState, context: Context, labels: any, start: number): ESTree.Statement | ESTree.FunctionDeclaration; | ||
export declare function parseSwitchStatement(parser: ParserState, context: Context, labels: any, start: number): ESTree.SwitchStatement; | ||
export declare function parseWhileStatement(parser: ParserState, context: Context, labels: any, start: number): ESTree.WhileStatement; | ||
export declare function parseIfStatement(parser: ParserState, context: Context, scope: ScopeState, labels: any, start: number): ESTree.IfStatement; | ||
export declare function parseConsequentOrAlternate(parser: ParserState, context: Context, scope: ScopeState, labels: any, start: number): ESTree.Statement | ESTree.FunctionDeclaration; | ||
export declare function parseSwitchStatement(parser: ParserState, context: Context, scope: ScopeState, labels: any, start: number): ESTree.SwitchStatement; | ||
export declare function parseWhileStatement(parser: ParserState, context: Context, scope: ScopeState, labels: any, start: number): ESTree.WhileStatement; | ||
export declare function parseIterationStatementBody(parser: ParserState, context: Context, scope: ScopeState, labels: any): ESTree.Statement; | ||
export declare function parseContinueStatement(parser: ParserState, context: Context, labels: any, start: number): ESTree.ContinueStatement; | ||
export declare function parseBreakStatement(parser: ParserState, context: Context, labels: any, start: number): ESTree.BreakStatement; | ||
export declare function parseWithStatement(parser: ParserState, context: Context, labels: any, start: number): ESTree.WithStatement; | ||
export declare function parseWithStatement(parser: ParserState, context: Context, scope: ScopeState, labels: any, start: number): ESTree.WithStatement; | ||
export declare function parseDebuggerStatement(parser: ParserState, context: Context, start: number): ESTree.DebuggerStatement; | ||
export declare function parseTryStatement(parser: ParserState, context: Context, labels: any, start: number): ESTree.TryStatement; | ||
export declare function parseCatchBlock(parser: ParserState, context: Context, labels: any, start: number): ESTree.CatchClause; | ||
export declare function parseDoWhileStatement(parser: ParserState, context: Context, labels: any, start: number): ESTree.DoWhileStatement; | ||
export declare function parseLetIdentOrVarDeclarationStatement(parser: ParserState, context: Context, start: number): ESTree.VariableDeclaration | ESTree.LabeledStatement | ESTree.ExpressionStatement; | ||
export declare function parseVariableStatement(parser: ParserState, context: Context, type: BindingType, origin: BindingOrigin, start: number): ESTree.VariableDeclaration; | ||
export declare function parseVariableDeclarationList(parser: ParserState, context: Context, type: BindingType, origin: BindingOrigin): ESTree.VariableDeclarator[]; | ||
export declare function parseForStatement(parser: ParserState, context: Context, labels: any, start: number): ESTree.ForStatement | ESTree.ForInStatement | ESTree.ForOfStatement; | ||
export declare function parseTryStatement(parser: ParserState, context: Context, scope: ScopeState, labels: any, start: number): ESTree.TryStatement; | ||
export declare function parseCatchBlock(parser: ParserState, context: Context, scope: ScopeState, labels: any, isLexical: number, start: number): ESTree.CatchClause; | ||
export declare function parseDoWhileStatement(parser: ParserState, context: Context, scope: ScopeState, labels: any, start: number): ESTree.DoWhileStatement; | ||
export declare function parseLetIdentOrVarDeclarationStatement(parser: ParserState, context: Context, scope: ScopeState, start: number): ESTree.VariableDeclaration | ESTree.LabeledStatement | ESTree.ExpressionStatement; | ||
export declare function parseVariableStatement(parser: ParserState, context: Context, scope: ScopeState, origin: BindingOrigin, start: number): ESTree.VariableDeclaration; | ||
export declare function parseVariableDeclarationList(parser: ParserState, context: Context, scope: ScopeState, verifyDuplicates: 0 | 1, type: BindingType, origin: BindingOrigin): ESTree.VariableDeclarator[]; | ||
export declare function parseForStatement(parser: ParserState, context: Context, scope: ScopeState, labels: any, start: number): ESTree.ForStatement | ESTree.ForInStatement | ESTree.ForOfStatement; | ||
export declare function parseExpression(parser: ParserState, context: Context, assignable: 0 | 1, inGroup: 0 | 1, start: number): ESTree.Expression; | ||
@@ -57,7 +65,8 @@ export declare function parseSequenceExpression(parser: ParserState, context: Context, start: number, expr: ESTree.AssignmentExpression | ESTree.Expression): ESTree.SequenceExpression; | ||
export declare function parseAwaitExpressionOrIdentifier(parser: ParserState, context: Context, inNewExpression: 0 | 1, start: number): ESTree.Identifier | ESTree.Expression | ESTree.ArrowFunctionExpression | ESTree.AwaitExpression; | ||
export declare function parseFunctionBody(parser: ParserState, context: Context, origin: BindingOrigin, firstRestricted: Token | undefined): ESTree.BlockStatement; | ||
export declare function parseFunctionBody(parser: ParserState, context: Context, scope: any, origin: BindingOrigin, firstRestricted: Token | undefined): ESTree.BlockStatement; | ||
export declare function parseSuperExpression(parser: ParserState, context: Context, start: number): ESTree.Super; | ||
export declare function parseLeftHandSideExpression(parser: ParserState, context: Context, assignable: 0 | 1, inGroup: 0 | 1, start: number): any; | ||
export declare function parseMemberOrUpdateExpression(parser: ParserState, context: Context, expr: ESTree.Expression, inNewExpression: 0 | 1, isImportCall: 0 | 1, inGroup: 0 | 1, start: number): any; | ||
export declare function parseMemberOrUpdateExpression(parser: ParserState, context: Context, expr: ESTree.Expression, inNewExpression: 0 | 1, inGroup: 0 | 1, start: number): any; | ||
export declare function parsePrimaryExpressionExtended(parser: ParserState, context: Context, type: BindingType, inNewExpression: 0 | 1, assignable: 0 | 1, inGroup: 0 | 1, start: number): any; | ||
export declare function parseImportExpression(parser: ParserState, context: Context, inGroup: 0 | 1, start: number): ESTree.ImportExpression; | ||
export declare function parseBigIntLiteral(parser: ParserState, context: Context, start: number): ESTree.BigIntLiteral; | ||
@@ -68,3 +77,3 @@ export declare function parseTemplateLiteral(parser: ParserState, context: Context, start: number): ESTree.TemplateLiteral; | ||
export declare function parseTemplateSpans(parser: ParserState, context: Context, tail: boolean, start: number): ESTree.TemplateElement; | ||
export declare function parseArguments(parser: ParserState, context: Context, isImportCall: 0 | 1, inGroup: 0 | 1): (ESTree.SpreadElement | ESTree.Expression)[]; | ||
export declare function parseArguments(parser: ParserState, context: Context, inGroup: 0 | 1): (ESTree.SpreadElement | ESTree.Expression)[]; | ||
export declare function parseIdentifier(parser: ParserState, context: Context, start: number): ESTree.Identifier; | ||
@@ -74,13 +83,13 @@ export declare function parseLiteral(parser: ParserState, context: Context, start: number): ESTree.Literal; | ||
export declare function parseThisExpression(parser: ParserState, context: Context, start: number): ESTree.ThisExpression; | ||
export declare function parseFunctionDeclaration(parser: ParserState, context: Context, allowGen: 0 | 1, isExportDefault: 0 | 1, isAsync: 0 | 1, start: number): ESTree.FunctionDeclaration; | ||
export declare function parseFunctionDeclaration(parser: ParserState, context: Context, scope: ScopeState, allowGen: 0 | 1, isExportDefault: 0 | 1, isAsync: 0 | 1, start: number): ESTree.FunctionDeclaration; | ||
export declare function parseFunctionExpression(parser: ParserState, context: Context, isAsync: 0 | 1, inGroup: 0 | 1, start: number): ESTree.FunctionExpression; | ||
export declare function parseArrayExpressionOrPattern(parser: ParserState, context: Context, skipInitializer: 0 | 1, inGroup: 0 | 1, type: BindingType, start: number): ESTree.ArrayExpression | ESTree.ArrayPattern; | ||
export declare function parseArrayExpressionOrPattern(parser: ParserState, context: Context, scope: any, skipInitializer: 0 | 1, inGroup: 0 | 1, type: BindingType, start: number): ESTree.ArrayExpression | ESTree.ArrayPattern; | ||
export declare function parseMethodDefinition(parser: ParserState, context: Context, kind: PropertyKind, inGroup: 0 | 1, start: number): ESTree.FunctionExpression; | ||
export declare function parseObjectLiteralOrPattern(parser: ParserState, context: Context, skipInitializer: 0 | 1, inGroup: 0 | 1, type: BindingType, start: number): ESTree.ObjectExpression | ESTree.ObjectPattern | ESTree.AssignmentExpression; | ||
export declare function parseMethodFormals(parser: ParserState, context: Context, kind: PropertyKind, type: BindingType, inGroup: 0 | 1): any[]; | ||
export declare function parseObjectLiteralOrPattern(parser: ParserState, context: Context, scope: any, skipInitializer: 0 | 1, inGroup: 0 | 1, type: BindingType, start: number): ESTree.ObjectExpression | ESTree.ObjectPattern | ESTree.AssignmentExpression; | ||
export declare function parseMethodFormals(parser: ParserState, context: Context, scope: any, kind: PropertyKind, type: BindingType, inGroup: 0 | 1): any[]; | ||
export declare function parseComputedPropertyName(parser: ParserState, context: Context, inGroup: 0 | 1): ESTree.Expression; | ||
export declare function parseParenthesizedExpression(parser: ParserState, context: Context, assignable: 0 | 1, start: number): any; | ||
export declare function parseIdentifierOrArrow(parser: ParserState, context: Context, expr: ESTree.Identifier, start: number): ESTree.Identifier | ESTree.ArrowFunctionExpression; | ||
export declare function parseArrowFunctionExpression(parser: ParserState, context: Context, params: ESTree.Pattern[], isAsync: 0 | 1, start: number): ESTree.ArrowFunctionExpression; | ||
export declare function parseFormalParametersOrFormalList(parser: ParserState, context: Context, inGroup: 0 | 1, type: BindingType): any[]; | ||
export declare function parseIdentifierOrArrow(parser: ParserState, context: Context, start: number): ESTree.Identifier | ESTree.ArrowFunctionExpression; | ||
export declare function parseArrowFunctionExpression(parser: ParserState, context: Context, scope: any, params: ESTree.Pattern[], isAsync: 0 | 1, start: number): ESTree.ArrowFunctionExpression; | ||
export declare function parseFormalParametersOrFormalList(parser: ParserState, context: Context, scope: any, inGroup: 0 | 1, type: BindingType): any[]; | ||
export declare function parseNewExpression(parser: ParserState, context: Context, inGroup: 0 | 1, start: number): ESTree.NewExpression | ESTree.Expression | ESTree.MetaProperty; | ||
@@ -91,9 +100,19 @@ export declare function parseMetaProperty(parser: ParserState, context: Context, meta: ESTree.Identifier, start: number): ESTree.MetaProperty; | ||
export declare function parseRegExpLiteral(parser: ParserState, context: Context, start: number): ESTree.RegExpLiteral; | ||
export declare function parseClassDeclaration(parser: ParserState, context: Context, isExportDefault: 0 | 1, start: number): ESTree.ClassDeclaration; | ||
export declare function parseClassDeclaration(parser: ParserState, context: Context, scope: any, isExportDefault: 0 | 1, start: number): ESTree.ClassDeclaration; | ||
export declare function parseClassExpression(parser: ParserState, context: Context, inGroup: 0 | 1, start: number): ESTree.ClassExpression; | ||
export declare function parseDecorators(parser: ParserState, context: Context): ESTree.Decorator[]; | ||
export declare function parseDecoratorList(parser: ParserState, context: Context, start: number): ESTree.Decorator; | ||
export declare function parseClassBody(parser: ParserState, context: Context, inheritedContext: Context, type: BindingType, origin: BindingOrigin, inGroup: 0 | 1): ESTree.ClassBody; | ||
export declare function parseClassBody(parser: ParserState, context: Context, inheritedContext: Context, scope: any, type: BindingType, origin: BindingOrigin, inGroup: 0 | 1): ESTree.ClassBody; | ||
export declare function parseFieldDefinition(parser: ParserState, context: Context, key: ESTree.PrivateName | ESTree.Expression | null, state: PropertyKind, decorators: ESTree.Decorator[] | null, start: number): ESTree.FieldDefinition; | ||
export declare function parseBindingPattern(parser: ParserState, context: Context, type: BindingType, start: number): ESTree.Pattern | ESTree.Identifier; | ||
export declare function parseBindingPattern(parser: ParserState, context: Context, scope: any, dupeChecks: 0 | 1, type: BindingType, origin: BindingOrigin, start: number): ESTree.Pattern | ESTree.Identifier; | ||
export declare function createBlockScope(): ScopeState; | ||
export declare function childScope(scope: any, type: any): ScopeState; | ||
export declare function recordValueAndDedupe(parser: ParserState, context: Context, scope: any, name: string, type: BindingType, isVarDecl: 0 | 1): void; | ||
export declare function declareFunctionName(parser: ParserState, context: Context, scope: any, name: string, type: BindingType, isVarDecl: 0 | 1): void; | ||
export declare function recordValue(parser: ParserState, context: Context, scope: any, name: string, bindingType: BindingType, dupeChecks: 0 | 1, isVarDecl: 0 | 1): void; | ||
export declare function checkConflictingLexicalsDeclarations(parser: ParserState, context: Context, scope: any, checkParent: 0 | 1): boolean; | ||
export declare function checkLexicalConflictInParentScope(parser: ParserState, context: Context, scope: any, hashed: string): void; | ||
export declare function verifyArguments(parser: ParserState, lex: any): void; | ||
export declare function addNameToExports(parser: ParserState, key: string): void; | ||
export declare function addBindingToExports(parser: ParserState, key: any): void; | ||
//# sourceMappingURL=parser.d.ts.map |
{ | ||
"name": "meriyah", | ||
"version": "0.3.1", | ||
"version": "0.3.2", | ||
"description": "A 100% compliant, self-hosted javascript parser with high focus on both performance and stability", | ||
@@ -67,3 +67,3 @@ "main": "dist/meriyah.umd.js", | ||
"cross-env": "^5.2.0", | ||
"husky": "^2.4.0", | ||
"husky": "^2.4.1", | ||
"mocha": "^6.1.4", | ||
@@ -74,3 +74,3 @@ "nyc": "^14.1.1", | ||
"rimraf": "^2.6.3", | ||
"rollup": "^1.14.4", | ||
"rollup": "^1.15.4", | ||
"rollup-plugin-replace": "^2.2.0", | ||
@@ -85,4 +85,4 @@ "rollup-plugin-terser": "^5.0.0", | ||
"tslint-microsoft-contrib": "^6.2.0", | ||
"typescript": "^3.5.1", | ||
"unexpected": "^11.6.0", | ||
"typescript": "^3.5.2", | ||
"unexpected": "^11.6.1", | ||
"unicode-12.0.0": "^0.8.0" | ||
@@ -89,0 +89,0 @@ }, |
@@ -1,9 +0,3 @@ | ||
<p align="center"> | ||
<img width="260" height="200" src="https://github.com/meriyah/meriyah/blob/master/scripts/logo.png"> | ||
</p> | ||
# Meriyah | ||
<h4 align="center">A 100% compliant, self-hosted javascript parser with high focus on both performance and stability</h4> | ||
<p align="center"> | ||
[![NPM version](https://img.shields.io/npm/v/meriyah.svg?style=flat-square)](https://www.npmjs.com/package/meriyah) | ||
@@ -13,4 +7,5 @@ [![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/meriyah/meriyah.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/meriyah/meriyah/context:javascript) | ||
[![CircleCI](https://circleci.com/gh/meriyah/meriyah.svg?style=svg)](https://circleci.com/gh/meriyah/meriyah) | ||
</p> | ||
A 100% compliant, self-hosted javascript parser with high focus on both performance and stability | ||
## Features | ||
@@ -119,2 +114,3 @@ | ||
| `impliedStrict` | Enable strict mode (*initial enforcement*) | | ||
| `lexical` | Enable lexical binding and scope tracking | | ||
| `module` | Allow parsing with module goal | | ||
@@ -121,0 +117,0 @@ | `next` | Allow parsing with `ESNext` features | |
@@ -17,3 +17,3 @@ import { Token, KeywordDescTable } from './token'; | ||
OptionsGlobalReturn = 1 << 5, | ||
OptionsGlobalAwait = 1 << 6, | ||
OptionsLexical = 1 << 6, | ||
OptionsParenthesized = 1 << 7, | ||
@@ -64,7 +64,6 @@ OptionsWebCompat = 1 << 8, | ||
None = 0, | ||
ArgumentList = 1 << 0, | ||
ArgList = 1 << 0, | ||
Variable = 1 << 2, | ||
Let = 1 << 3, | ||
Const = 1 << 4, | ||
Class = 1 << 5 | ||
Const = 1 << 4 | ||
} | ||
@@ -110,5 +109,14 @@ | ||
SimpleParameterList = 1 << 7, | ||
Yield = 1 << 8, | ||
Yield = 1 << 8, | ||
} | ||
export const enum ScopeType { | ||
None = 0, | ||
For = 1 << 0, | ||
Block = 1 << 1, | ||
Catch = 1 << 2, | ||
Switch = 1 << 3, | ||
ArgList = 1 << 4, | ||
} | ||
export const enum FunctionStatement { | ||
@@ -141,2 +149,4 @@ Disallow, | ||
nextCP: number; | ||
exportedNames: any; | ||
exportedBindings: any; | ||
} | ||
@@ -339,3 +349,3 @@ | ||
do { | ||
while (labels) { | ||
if (labels['€' + name]) { | ||
@@ -347,3 +357,3 @@ if (isIterationStatement) report(parser, Errors.InvalidNestedStatement); | ||
labels = labels['€']; | ||
} while (labels); | ||
} | ||
@@ -363,8 +373,6 @@ return 0; | ||
let set = labels; | ||
do { | ||
if (set['€' + name]) report(parser, Errors.LabelRedeclaration, name); | ||
while (set) { | ||
if (set && set['€' + name]) report(parser, Errors.LabelRedeclaration, name); | ||
set = set['€']; | ||
} while (set); | ||
} | ||
labels['€' + name] = 1; | ||
@@ -371,0 +379,0 @@ } |
@@ -160,3 +160,8 @@ import { ParserState } from './common'; | ||
InvalidSpreadInImport, | ||
UncompleteArrow | ||
UncompleteArrow, | ||
DuplicateBinding, | ||
DuplicateExportBinding, | ||
UndeclaredExportedBinding, | ||
UnexpectedPrivateField, | ||
DuplicateLetConstBinding | ||
} | ||
@@ -332,3 +337,8 @@ | ||
[Errors.InvalidSpreadInImport]: '... is not allowed in import()', | ||
[Errors.UncompleteArrow]: "Expected '=>'" | ||
[Errors.UncompleteArrow]: "Expected '=>'", | ||
[Errors.DuplicateBinding]: "Duplicate binding '%0'", | ||
[Errors.DuplicateExportBinding]: "Cannot export a duplicate name '%0'", | ||
[Errors.DuplicateLetConstBinding]: 'Duplicate %0 for-binding', | ||
[Errors.UndeclaredExportedBinding]: "Exported binding '%0' needs to refer to a top-level declared variable", | ||
[Errors.UnexpectedPrivateField]: 'Unexpected private field' | ||
}; | ||
@@ -335,0 +345,0 @@ |
@@ -434,8 +434,6 @@ interface _Node<T extends string> { | ||
export interface CallExpression extends _Expression<'CallExpression'> { | ||
callee: Expression | Import | Super; | ||
callee: Expression | Super; | ||
arguments: (Expression | SpreadElement)[]; | ||
} | ||
export interface Import extends _Node<'Import'> {} | ||
export interface ImportExpression extends _Expression<'ImportExpression'> { | ||
@@ -442,0 +440,0 @@ source: Expression; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2442940
45545
120