From e17d6aef70952b1af84c767b1845d1e1d21f7105 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Fri, 12 Jul 2013 17:46:25 +0200 Subject: [PATCH] Preserve unexpected items in options object passed to the constructor --- bin/generate-exports.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/bin/generate-exports.py b/bin/generate-exports.py index 2ae2cd8475..d098e0c7c4 100755 --- a/bin/generate-exports.py +++ b/bin/generate-exports.py @@ -92,7 +92,7 @@ class Class(Exportable): lines.append(' */\n') lines.append('%s = function(options) {\n' % (self.export_name(),)) lines.append(' /** @type {%s} */\n' % (self.object_literal.name,)) - lines.append(' var arg;\n'); + lines.append(' var arg = /** @type {%s} */ (options);\n' % (self.object_literal.name,)); lines.append(' if (goog.isDefAndNotNull(options)) {\n') # FIXME: we modify the user's options object lines.append(''.join( @@ -103,12 +103,8 @@ class Class(Exportable): {'o': o, 'base': b.name, 'ctor': k.export_name(), 'extern': ol.extern_name()} \ for o, ol, k, b in self.nested_options())) - lines.append(' arg = {') - lines.extend(','.join('\n %s: options.%s' % (key, key) for key in sorted(self.object_literal.prop_types.keys()))) - lines.append('\n };\n') - lines.append(' } else {\n') - lines.append(' arg = /** @type {%s} */ (options);\n' % (self.object_literal.name,)) - lines.append(' }\n') + lines.extend('\n'.join(' arg.%s = options.%s;' % (key, key) for key in sorted(self.object_literal.prop_types.keys()))) + lines.append('\n }\n') lines.append(' goog.base(this, arg);\n') lines.append('};\n') lines.append('goog.inherits(\n')