[
https://issues.apache.org/jira/browse/COUCHDB-1397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13200471#comment-13200471
]
Marcello Nuccio commented on COUCHDB-1397:
------------------------------------------
@Jason,
CommonJS is fine, but it doesn't help for unit testing. CommonJS is a linker
(runs on load time), dependency injection is done at run-time. One assembles
code, the other object graph. Not the same thing.
To ease unit testing, you need dependency injection. You can't easily test:
function (doc) {
var util = require('views/lib/util');
if (util.isSomething(doc)) {
emit(doc._id, 1);
}
}
It's doable (I'm doing it), but not easy. Testing the following is trivial:
function (doc, view, require) {
var util = require('views/lib/util');
if (util.isSomething(doc)) {
view.emit(doc._id, 1);
}
}
Globals, make the code harder to:
- read (where do these values come from?);
- test (how do I mock globals at run-time?);
- write (you need to tell to your code-checker what globals you use.)
> Function expressions, evals in SpiderMonkey
> -------------------------------------------
>
> Key: COUCHDB-1397
> URL: https://issues.apache.org/jira/browse/COUCHDB-1397
> Project: CouchDB
> Issue Type: Bug
> Components: JavaScript View Server
> Affects Versions: 1.2.1
> Environment: All
> Reporter: Jason Smith
>
> New SpiderMonkey releases do not eval() a sole anonymous function expression.
> That is not a valid JavaScript statement, and so it is not a valid JavaScript
> script.
> COUCHDB-1302 addressed this for 1.1 and the 1.1.x branch. This ticket is for
> 1.2. (Sorry to spam COUCHDB-1302. I saw "Unassigned" and read "Unresolved.")
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira