remove in_module mechanism
commit37da0aed0b33973893ac909fc707d84ce7c3f170
authorJohn Foerch <jjfoerch@earthlink.net>
Mon, 30 Jan 2012 02:27:19 +0000 (29 21:27 -0500)
committerJohn Foerch <jjfoerch@earthlink.net>
Tue, 31 Jan 2012 04:28:40 +0000 (30 23:28 -0500)
tree3af41f3980f4ed0e979e9fc1c3d37b04005e75a1
parent8012a0f31ea59c9505868ad7e77a2a72a370c211
remove in_module mechanism

The procedure in_module was a central concept to the "new module system"
of 2010-03-19 that was to have made modules possible within the framework
of Conkeror's 'load' and 'require' mechanism.  However, there was a fatal
flaw in the design, and it really doesn't work after all.  The flaw was
that it didn't take account of hoisting, the property of javascript
whereby evaluation happens in two stages: first variables and functions
are defined, "hoisted" to the top of the scope, and then the code is
executed.  The in_module mechanism depended upon exceptions to stop the
load of a javascript file if it was being loaded into the wrong scope, but
because of hoisting, the crucial exception can only take place after all
of the variables and functions have been defined, thus the in_module idea
is not really a workable idea in javascript.

This patch removes the in_module mechanism.  A patch to follow will
introduce a new module system.  This patch leaves the module
casual-spelling broken, to be resolved by the next patch with the
replacement module system.

A related, but little-used feature, skip_module_load, was broken for the
same reason, and also removed.
111 files changed:
components/application.js
contrib/modules/mode-line-buttons.js
modules/array.js
modules/bindings/default/bindings.js
modules/block-content-focus-change.js
modules/buffer.js
modules/builtin-commands.js
modules/cache.js
modules/caret.js
modules/clicks-in-new-buffer.js
modules/command-line.js
modules/commands.js
modules/conkeror.js
modules/content-buffer-input.js
modules/content-buffer.js
modules/content-handler.js
modules/content-policy.js
modules/cookie.js
modules/coroutine.js
modules/daemon.js
modules/debug.js
modules/download-manager.js
modules/element.js
modules/env.js
modules/extensions/adblockplus.js
modules/extensions/dom-inspector.js
modules/extensions/noscript.js
modules/extensions/venkman.js
modules/external-editor.js
modules/eye-guide.js
modules/favicon.js
modules/follow-relationship.js
modules/formfill.js
modules/global-overlay-keymap.js
modules/help.js
modules/hints.js
modules/history.js
modules/hook.js
modules/index-webjump.js
modules/input.js
modules/interactive.js
modules/io.js
modules/isearch.js
modules/keymap.js
modules/keywords.js
modules/labels.js
modules/load-spec.js
modules/login.js
modules/media.js
modules/mime-type-override.js
modules/mime.js
modules/minibuffer-completion.js
modules/minibuffer-read-file.js
modules/minibuffer-read-mime-type.js
modules/minibuffer-read-option.js
modules/minibuffer-read.js
modules/minibuffer.js
modules/mode-line.js
modules/mode.js
modules/new-tabs.js
modules/opensearch.js
modules/page-modes/dailymotion.js
modules/page-modes/duckduckgo.js
modules/page-modes/github.js
modules/page-modes/gmail.js
modules/page-modes/gmane.js
modules/page-modes/google-calendar.js
modules/page-modes/google-gqueues.js
modules/page-modes/google-images.js
modules/page-modes/google-maps.js
modules/page-modes/google-reader.js
modules/page-modes/google-search-results.js
modules/page-modes/google-video.js
modules/page-modes/google-voice.js
modules/page-modes/grooveshark.js
modules/page-modes/reddit.js
modules/page-modes/stackexchange.js
modules/page-modes/twitter.js
modules/page-modes/wikipedia.js
modules/page-modes/xkcd.js
modules/page-modes/youtube-player.js
modules/page-modes/youtube.js
modules/permission-manager.js
modules/pref.js
modules/pretty-print.js
modules/quote.js
modules/rc.js
modules/save.js
modules/scroll.js
modules/selectively-unstyle.js
modules/services.js
modules/session.js
modules/source-code.js
modules/spawn-process.js
modules/special-buffer.js
modules/ssl.js
modules/string.js
modules/stylesheet.js
modules/suggest-file-name.js
modules/tab-bar.js
modules/text.js
modules/theme.js
modules/timer.js
modules/universal-argument.js
modules/user-variable.js
modules/utils.js
modules/walnut.js
modules/webjump.js
modules/window.js
modules/zoom.js
tests/simple/modules.js