From b45c2ca4bc6d8ace796896f684423d107fa64476 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 15 Oct 2012 19:11:51 +0200 Subject: [PATCH] Add optional argument to @exportSymbol --- bin/generate-exports | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/bin/generate-exports b/bin/generate-exports index 4239c8eed7..49360b47d7 100755 --- a/bin/generate-exports +++ b/bin/generate-exports @@ -114,9 +114,10 @@ class ObjectLiteral(Exportable): class Symbol(Exportable): - def __init__(self, name, export_symbol): + def __init__(self, name, export_symbol, export_as=None): Exportable.__init__(self, name) self.export_symbol = export_symbol + self.export_as = export_as or self.name self.props = set() __repr__ = simplerepr @@ -124,7 +125,7 @@ class Symbol(Exportable): def export(self): lines = [] if self.export_symbol: - lines.append('\n\ngoog.exportSymbol(\n \'%s\',\n %s);\n' % (self.name, self.name)) + lines.append('\n\ngoog.exportSymbol(\n \'%s\',\n %s);\n' % (self.name, self.export_as)) lines.extend('goog.exportProperty(\n %s,\n \'%s\',\n %s.%s);\n' % (self.name, prop, self.name, prop) for prop in sorted(self.props)) return ''.join(lines) @@ -193,14 +194,16 @@ def main(argv): objects[name] = symbol symbol.props.add(prop) continue - m = re.match(r'@exportSymbol\s+(?P\S+)\Z', line) + m = re.match(r'@exportSymbol\s+(?P\S+)(?:\s+(?P\S+))?\Z', line) if m: name = m.group('name') if name in objects: raise RuntimeError(line) # Name already defined - symbol = Symbol(name, True) + export_as = m.group('export_as') + symbol = Symbol(name, True, export_as) objects[name] = symbol - requires.add(name) + if not export_as: + requires.add(name) continue raise RuntimeError(line)