pakmanaged.js
function parseReturnStatement() {
            var argument = null, marker = markerCreate();
    
            expectKeyword('return');
    
            if (!state.inFunctionBody) {
                throwErrorTolerant({}, Messages.IllegalReturn);
            }
    
            // 'return' followed by a space and an identifier is very common.
            if (source.charCodeAt(index) === 32) {
                if (isIdentifierStart(source.charCodeAt(index + 1))) {
                    argument = parseExpression();
                    consumeSemicolon();
                    return markerApply(marker, delegate.createReturnStatement(argument));
                }
            }
    
            if (peekLineTerminator()) {
                return markerApply(marker, delegate.createReturnStatement(null));
            }
    
            if (!match(';')) {
                if (!match('}') && lookahead.type !== Token.EOF) {
                    argument = parseExpression();
                }
            }
    
            consumeSemicolon();
    
            return markerApply(marker, delegate.createReturnStatement(argument));
        }
function parseReturnStatement() {
            var argument = null, marker = markerCreate();
    
            expectKeyword('return');
    
            if (!state.inFunctionBody) {
                throwErrorTolerant({}, Messages.IllegalReturn);
            }
    
            // 'return' followed by a space and an identifier is very common.
            if (source.charCodeAt(index) === 32) {
                if (isIdentifierStart(source.charCodeAt(index + 1))) {
                    argument = parseExpression();
                    consumeSemicolon();
                    return markerApply(marker, delegate.createReturnStatement(argument));
                }
            }
    
            if (peekLineTerminator()) {
                return markerApply(marker, delegate.createReturnStatement(null));
            }
    
            if (!match(';')) {
                if (!match('}') && lookahead.type !== Token.EOF) {
                    argument = parseExpression();
                }
            }
    
            consumeSemicolon();
    
            return markerApply(marker, delegate.createReturnStatement(argument));
        }
12.9 The return statement