Fix MKWS-283 ("mkws-complete.js doesn't work (though its components do)")
authorMike Taylor <mike@indexdata.com>
Thu, 9 Oct 2014 12:39:20 +0000 (13:39 +0100)
committerMike Taylor <mike@indexdata.com>
Thu, 9 Oct 2014 12:39:20 +0000 (13:39 +0100)
And it's literally a one-character fix.

I added a semi-colon to the end of the
    mkws.makeWidget = function() { ... }
assignment. Before commit f9a645b74a9d07ca99973840ee0ceeb07b3c4a83
there was no need for a semi-colon because the widget constructor was
a global function defined using the
    function makeWidget() { ... }
syntax. But now that it's an assignment statement rather than a
function definition, the semi-colon is needed to end the statement.

When mkws-widget.js was included on its own (as it is with all my
testing scripts), that's not a problem. The statement is terminated by
the end of the file (and JavaScript, trying to be "helpful", doesn't
complain about this, but just accepts it silently). But when something
else -- in this case mkws-widget-main.js -- is appended to it, the
interpretation changes, and the concatenations gets parsed as
heaven-knows-what bizarre construct.

Anyway, all is now well: mkws.js, mkws-complete.js and the individual
source files all work.

I guess all this means we ought to be using some kind of lint-like
program on the MKWS source (though IIRC Jason doesn't like JSLint
itself).

src/mkws-widget.js

index 5476796..3712764 100644 (file)
@@ -187,4 +187,4 @@ mkws.makeWidget = function($, team, type, node) {
   }
 
   return that;
-}
+};