Exemple #1
0
 public void Visit(JsDebuggerNode node)
 {
     if (node != null)
     {
         node.Index = NextOrderIndex;
     }
 }
 public void Visit(JsDebuggerNode node)
 {
     // starts with a 'debugger', so we don't care
 }
 public void Visit(JsDebuggerNode node)
 {
     // starts with a 'debugger', so we don't care
 }
 public void Visit(JsDebuggerNode node)
 {
     // invalid! ignore
     IsValid = false;
 }
 public void Visit(JsDebuggerNode node)
 {
     // invalid! ignore
     IsValid = false;
 }
Exemple #6
0
 public void Visit(JsDebuggerNode node)
 {
     // not applicable; terminate
 }
 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)
     {
         node.Index = NextOrderIndex;
     }
 }
Exemple #11
0
 public void Visit(JsDebuggerNode node)
 {
     Debug.Fail("shouldn't get here");
 }
 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);
     }
 }