[
https://issues.apache.org/jira/browse/COUCHDB-1151?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexander Shorin updated COUCHDB-1151:
--------------------------------------
Attachment: design_docs.js.patch
utils.js.patch
Add patch and tests.
> Require function doesnt fullfil specification
> ---------------------------------------------
>
> Key: COUCHDB-1151
> URL: https://issues.apache.org/jira/browse/COUCHDB-1151
> Project: CouchDB
> Issue Type: Bug
> Components: JavaScript View Server
> Affects Versions: 0.11.2, 1.0.2, 1.1
> Reporter: Alexander Shorin
> Priority: Critical
> Labels: commonjs, javascript, require
> Attachments: design.require.txt, design_docs.js.patch, utils.js.patch
>
> Original Estimate: 1h
> Remaining Estimate: 1h
>
> According CommonJS Modules specification [1]:
> > 4. Module identifiers may be "relative" or "top-level". A module
> > identifier is "relative" if the first term is "." or "..".
> > 5. Top-level identifiers are resolved off the conceptual module name space
> > root.
> This specification is broken in current realization at those terms. See
> design test case.
> Actually problems:
> 1. Module id is broken if module imports from same level (as via '.') or from
> parent level (as via '..'). AFAIK, module id should be valid to make
> require(mod.id) call successful. See`_show/relative-id`,
> `_show/require-relative-id` and `_show/relative-parent-id` function.
> 2. Absolute module import is broken from relative imported module.
> See`_show/absolute-require` function.
> 3. Multiple relative imports from same level(as via '.') breaks require
> function. See `_show/maze` function.
> Those problems makes require function works unexpectedly and obstructs
> solving at least one more issue #1075 [2]
> I know that all relative imports are discouraged, but if they are supported,
> why they shouldn't work properly?(:
> [1] http://wiki.commonjs.org/wiki/Modules/1.1.1
> [2] https://issues.apache.org/jira/browse/COUCHDB-1075
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira