# Path: jasy/js/tokenize/Lang.py

# 
# Path: jasy/js/parse/Lang.py
# def __createOrder():


import re, sys, json
from jasy.js.tokenize.Lang import keywords
from jasy.js.parse.Lang import expressions, futureReserved
    #
    # Script Scope
    #

    def type_script(self, node):
        return self.__statements(node)



    #
    # Expressions
    #
    
    def type_comma(self, node):
        return self.__commaSymbol.join(map(self.compress, node))

    def type_object_init(self, node):
        return "{%s}" % self.__commaSymbol.join(map(self.compress, node))

    def type_property_init(self, node):
        key = self.compress(node[0])
        value = self.compress(node[1])

        if type(key) in (int, float):
            pass

        elif self.__number_property.match(key):
            pass

        # Protect keywords and special characters

# Path: jasy/js/tokenize/Lang.py

# 
# Path: jasy/js/parse/Lang.py
# def __createOrder():


# Path: jasy/js/output/Compressor.py
import re, sys, json
from jasy.js.tokenize.Lang import keywords
from jasy.js.parse.Lang import expressions, futureReserved

    #
    # Script Scope
    #

    def type_script(self, node):
        return self.__statements(node)



    #
    # Expressions
    #
    
    def type_comma(self, node):
        return self.__commaSymbol.join(map(self.compress, node))

    def type_object_init(self, node):
        return "{%s}" % self.__commaSymbol.join(map(self.compress, node))

    def type_property_init(self, node):
        key = self.compress(node[0])
        value = self.compress(node[1])

        if type(key) in (int, float):
            pass

        elif self.__number_property.match(key):
            pass

        # Protect keywords and special characters

        elif key in keywords or key in futureReserved or not self.__simple_property.match(key):