summaryrefslogtreecommitdiff
path: root/couchjs
diff options
context:
space:
mode:
Diffstat (limited to 'couchjs')
-rw-r--r--couchjs/js/mimeparse.js2
-rw-r--r--couchjs/js/render.js10
2 files changed, 8 insertions, 4 deletions
diff --git a/couchjs/js/mimeparse.js b/couchjs/js/mimeparse.js
index 3642a194..42b600fa 100644
--- a/couchjs/js/mimeparse.js
+++ b/couchjs/js/mimeparse.js
@@ -97,7 +97,7 @@ var Mimeparse = (function() {
if ((type == targetType || type == "*" || targetType == "*") &&
(subtype == targetSubtype || subtype == "*" || targetSubtype == "*")) {
var matchCount = 0;
- for (param in targetParams) {
+ for (var param in targetParams) {
if (param != 'q' && params[param] && params[param] == targetParams[param]) {
matchCount += 1;
}
diff --git a/couchjs/js/render.js b/couchjs/js/render.js
index d207db41..93ff6332 100644
--- a/couchjs/js/render.js
+++ b/couchjs/js/render.js
@@ -220,10 +220,10 @@ var Render = (function() {
resetList();
Mime.resetProvides();
var resp = fun.apply(ddoc, args) || {};
+ resp = maybeWrapResponse(resp);
// handle list() style API
if (chunks.length && chunks.length > 0) {
- resp = maybeWrapResponse(resp);
resp.headers = resp.headers || {};
for(var header in startResp) {
resp.headers[header] = startResp[header]
@@ -233,8 +233,12 @@ var Render = (function() {
}
if (Mime.providesUsed) {
- resp = Mime.runProvides(args[1], ddoc);
- resp = applyContentType(maybeWrapResponse(resp), Mime.responseContentType);
+ var provided_resp = Mime.runProvides(args[1], ddoc) || {};
+ provided_resp = maybeWrapResponse(provided_resp);
+ resp.body = (resp.body || "") + chunks.join("");
+ resp.body += provided_resp.body || "";
+ resp = applyContentType(resp, Mime.responseContentType);
+ resetList();
}
var type = typeOf(resp);