public void Visit(JsDebuggerNode node) { if (node != null) { node.Index = NextOrderIndex; } }
public void Visit(JsDebuggerNode node) { // invalid! ignore IsValid = false; }
public void Visit(JsDebuggerNode node) { // starts with a 'debugger', so we don't care }
public void Visit(JsDebuggerNode node) { // not applicable; terminate }
public void Visit(JsDebuggerNode node) { Debug.Fail("shouldn't get here"); }
//--------------------------------------------------------------------------------------- // ParseDebuggerStatement // // DebuggerStatement : // 'debugger' // // This function may return a null AST under error condition. The caller should handle // that case. // Regardless of error conditions, on exit the parser points to the first token after // the debugger statement //--------------------------------------------------------------------------------------- private JsAstNode ParseDebuggerStatement() { // clone the current context and skip it var node = new JsDebuggerNode(m_currentToken.Clone(), this); GetNextToken(); // this token can only be a stand-alone statement if (JsToken.Semicolon == m_currentToken.Token) { // add the semicolon to the cloned context and skip it node.TerminatingContext = m_currentToken.Clone(); GetNextToken(); } else if (m_foundEndOfLine || JsToken.RightCurly == m_currentToken.Token || JsToken.EndOfFile == m_currentToken.Token) { // semicolon insertion rules applied // a right-curly or an end of line is something we don't WANT to throw a warning for. // Just too common and doesn't really warrant a warning (in my opinion) if (JsToken.RightCurly != m_currentToken.Token && JsToken.EndOfFile != m_currentToken.Token) { ReportError(JsError.SemicolonInsertion, node.Context.IfNotNull(c => c.FlattenToEnd()), true); } } else { // if it is anything else, it's an error ReportError(JsError.NoSemicolon, true); } // return the new AST object return node; }
public void Visit(JsDebuggerNode node) { if (node != null) { var symbol = StartSymbol(node); Output("debugger"); MarkSegment(node, null, node.Context); SetContextOutputPosition(node.Context); m_startOfStatement = false; EndSymbol(symbol); } }