package js_parser

import (
	
	
)

func ( logger.Log,  logger.Source) ( []string,  bool) {
	 = true
	defer func() {
		 := recover()
		if ,  := .(js_lexer.LexerPanic);  {
			 = false
		} else if  != nil {
			panic()
		}
	}()

	 := js_lexer.NewLexerGlobalName(, )
Start off with an identifier
	 = append(, .Identifier)
	.Expect(js_lexer.TIdentifier)
Follow with dot or index expressions
	for .Token != js_lexer.TEndOfFile {
		switch .Token {
		case js_lexer.TDot:
			.Next()
			if !.IsIdentifierOrKeyword() {
				.Expect(js_lexer.TIdentifier)
			}
			 = append(, .Identifier)
			.Next()

		case js_lexer.TOpenBracket:
			.Next()
			 = append(, js_lexer.UTF16ToString(.StringLiteral))
			.Expect(js_lexer.TStringLiteral)
			.Expect(js_lexer.TCloseBracket)

		default:
			.Expect(js_lexer.TDot)
		}
	}

	return