MCPcopy Index your code
hub / github.com/BloombergGraphics/whatiscode / parseUnaryExpression

Function parseUnaryExpression

scripts/libs/esprima.js:2824–2861  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

2822 // 11.4 Unary Operators
2823
2824 function parseUnaryExpression() {
2825 var token, expr, startToken;
2826
2827 if (lookahead.type !== Token.Punctuator && lookahead.type !== Token.Keyword) {
2828 expr = parsePostfixExpression();
2829 } else if (match('++') || match('--')) {
2830 startToken = lookahead;
2831 token = lex();
2832 expr = parseUnaryExpression();
2833 // 11.4.4, 11.4.5
2834 if (strict && expr.type === Syntax.Identifier && isRestrictedWord(expr.name)) {
2835 tolerateError(Messages.StrictLHSPrefix);
2836 }
2837
2838 if (!isLeftHandSide(expr)) {
2839 tolerateError(Messages.InvalidLHSInAssignment);
2840 }
2841
2842 expr = new WrappingNode(startToken).finishUnaryExpression(token.value, expr);
2843 } else if (match('+') || match('-') || match('~') || match('!')) {
2844 startToken = lookahead;
2845 token = lex();
2846 expr = parseUnaryExpression();
2847 expr = new WrappingNode(startToken).finishUnaryExpression(token.value, expr);
2848 } else if (matchKeyword('delete') || matchKeyword('void') || matchKeyword('typeof')) {
2849 startToken = lookahead;
2850 token = lex();
2851 expr = parseUnaryExpression();
2852 expr = new WrappingNode(startToken).finishUnaryExpression(token.value, expr);
2853 if (strict && expr.operator === 'delete' && expr.argument.type === Syntax.Identifier) {
2854 tolerateError(Messages.StrictDelete);
2855 }
2856 } else {
2857 expr = parsePostfixExpression();
2858 }
2859
2860 return expr;
2861 }
2862
2863 function binaryPrecedence(token, allowIn) {
2864 var prec = 0;

Callers 1

parseBinaryExpressionFunction · 0.85

Calls 7

parsePostfixExpressionFunction · 0.85
matchFunction · 0.85
lexFunction · 0.85
isRestrictedWordFunction · 0.85
tolerateErrorFunction · 0.85
isLeftHandSideFunction · 0.85
matchKeywordFunction · 0.85

Tested by

no test coverage detected