aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/compiler/js/js_generator.cc
diff options
context:
space:
mode:
authorGravatar Josh Haberman <jhaberman@gmail.com>2016-02-04 17:01:33 -0800
committerGravatar Josh Haberman <jhaberman@gmail.com>2016-02-18 10:30:21 -0800
commit35298f97793d2b875a349db852b17ba979cf5e13 (patch)
tree732a5527cd194eb25838e23faef056c9a21be4a6 /src/google/protobuf/compiler/js/js_generator.cc
parent77af5d04b1897baeda2ebd753d138c99afe72c50 (diff)
Fixed definition of extensions, and added CommonJS tests to Travis.
Diffstat (limited to 'src/google/protobuf/compiler/js/js_generator.cc')
-rwxr-xr-xsrc/google/protobuf/compiler/js/js_generator.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/google/protobuf/compiler/js/js_generator.cc b/src/google/protobuf/compiler/js/js_generator.cc
index 7ebb9b12..351c3966 100755
--- a/src/google/protobuf/compiler/js/js_generator.cc
+++ b/src/google/protobuf/compiler/js/js_generator.cc
@@ -2530,8 +2530,15 @@ void Generator::GenerateFile(const GeneratorOptions& options,
// // Later generated code expects foo.bar = {} to exist:
// foo.bar.Baz = function() { /* ... */ }
std::set<std::string> provided;
+
+ // Cover the case where this file declares extensions but no messages.
+ // This will ensure that the file-level object will be declared to hold
+ // the extensions.
+ for (int i = 0; i < file->extension_count(); i++) {
+ provided.insert(file->extension(i)->full_name());
+ }
+
FindProvidesForFile(options, printer, file, &provided);
- //FindProvidesForFields(options, printer, extensions, &provided);
for (std::set<string>::iterator it = provided.begin();
it != provided.end(); ++it) {
printer->Print("goog.exportSymbol('$name$', null, global);\n",