[pypy-svn] r23592 - pypy/dist/pypy/translator/js
ericvrp at codespeak.net
ericvrp at codespeak.net
Wed Feb 22 14:10:39 CET 2006
Author: ericvrp
Date: Wed Feb 22 14:10:38 2006
New Revision: 23592
Modified:
pypy/dist/pypy/translator/js/support.py
Log:
Updated list with Javascript's reserved words.
Modified: pypy/dist/pypy/translator/js/support.py
==============================================================================
--- pypy/dist/pypy/translator/js/support.py (original)
+++ pypy/dist/pypy/translator/js/support.py Wed Feb 22 14:10:38 2006
@@ -5,20 +5,50 @@
def __init__(self, js):
NameManager.__init__(self)
self.js = js
- # keywords cannot be reused. This is the C99 draft's list.
- #XXX this reserved_names list is incomplete!
- reserved_names_string = '''
- if then else function
- for while witch continue
- break super var do
- bool char int float
- Array String Struct Number
- length
- '''
- self.reserved_names = {}
- for name in reserved_names_string.split():
- self.reserved_names[name] = True
- self.make_reserved_names(reserved_names_string)
+ self.reserved = {}
+
+ #http://javascript.about.com/library/blreserved.htm
+ reserved_words = '''
+ abstract as boolean break byte case catch
+ char class continue const debugger default delete
+ do double else enum export extends false
+ final finally float for function goto if implements
+ import in instanceof int interface is long
+ namespace native new null package private protected
+ public return short static super switch synchronized
+ this throw throws transient true try typeof
+ use var void volatile while with
+ '''
+ for name in reserved_words.split():
+ self.reserved[name] = True
+
+ #http://javascript.about.com/library/blclassobj.htm
+ predefined_classes_and_objects = '''
+ Anchor anchors Applet applets Area Array Body
+ Button Checkbox Date document Error EvalError FileUpload
+ Form forms frame frames Function Hidden History
+ history Image images Link links location Math
+ MimeType mimetypes navigator Number Object Option options
+ Password Plugin plugins Radio RangeError ReferenceError RegExp
+ Reset screen Script Select String Style StyleSheet
+ Submit SyntaxError Text Textarea TypeError URIError window
+ '''
+ for name in predefined_classes_and_objects.split():
+ self.reserved[name] = True
+
+ #http://javascript.about.com/library/blglobal.htm
+ global_properties_and_methods = '''
+ _content closed Components controllers crypto defaultstatus directories
+ document frames history innerHeight innerWidth length location
+ locationbar menubar name navigator opener outerHeight outerWidth
+ pageXOffset pageYOffset parent personalbar pkcs11 prompter screen
+ screenX screenY scrollbars scrollX scrollY self statusbar
+ toolbar top window
+ '''
+ for name in global_properties_and_methods.split():
+ self.reserved[name] = True
+
+ self.make_reserved_names(' '.join(self.reserved))
def uniquename(self, name):
if self.js.compress and name != self.js.functions[0].func_name and is_optimized_function(name) and name.startswith("ll_issubclass__object_vtablePtr_object_vtablePtr"):
@@ -26,6 +56,6 @@
return NameManager.uniquename(self, name)
def ensure_non_reserved(self, name):
- while name in self.reserved_names:
+ while name in self.reserved:
name += '_'
return name
More information about the Pypy-commit
mailing list