def perform(self, specifications):
self.enum_list = []<EOL>self.model_list = []<EOL>self.job_commands = filter(lambda attr: attr.name == '<STR_LIT>', specifications.get("<STR_LIT>").attributes)[<NUM_LIT:0>].allowed_choices<EOL>self._write_abstract_named_entity()<EOL>self.entity_names = [specification.entity_name for rest_name, specification in specifications.iteritems()]<EOL>for rest_name, specification in specifications.iteritems():<EOL><INDENT>self._write_model(specification=specification)<EOL><DEDENT>self.write(destination = self.model_directory,<EOL>filename="<STR_LIT>",<EOL>template_name="<STR_LIT>",<EOL>class_prefix = self._class_prefix,<EOL>model_list = sorted(self.model_list))<EOL>self.write(destination = self.enum_directory,<EOL>filename="<STR_LIT>",<EOL>template_name="<STR_LIT>",<EOL>class_prefix = self._class_prefix,<EOL>enum_list = sorted(self.enum_list))<EOL>self._write_locales(specifications)<EOL>
This method is the entry point of javascript code writer. Monolithe will call it when
        the javascript plugin is to generate code.