Return-Path: X-Original-To: apmail-couchdb-dev-archive@www.apache.org Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 49ED397AB for ; Fri, 3 Feb 2012 13:26:18 +0000 (UTC) Received: (qmail 99126 invoked by uid 500); 3 Feb 2012 13:26:17 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 99052 invoked by uid 500); 3 Feb 2012 13:26:17 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 99044 invoked by uid 99); 3 Feb 2012 13:26:16 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Feb 2012 13:26:16 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Feb 2012 13:26:14 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 9D51418BB52 for ; Fri, 3 Feb 2012 13:25:53 +0000 (UTC) Date: Fri, 3 Feb 2012 13:25:53 +0000 (UTC) From: "Jason Smith (Commented) (JIRA)" To: dev@couchdb.apache.org Message-ID: <162165306.7300.1328275553646.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <575922307.2217.1328184233252.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (COUCHDB-1397) Function expressions, evals in SpiderMonkey MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/COUCHDB-1397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13199697#comment-13199697 ] Jason Smith commented on COUCHDB-1397: -------------------------------------- @Paul We really need to define "invalid JavaScript" and distinguish it from "invalid CouchDB programming" which is why I wrote Fact #6. For example, Benoit suggested that we could provide only the function *bodies*. They are implicitly wrapped in a function(doc) { ... }. That's neat! In a world where CouchDB had always worked that way, we would all call "emit(doc._id, null)" *valid CouchDB* but we know it is invalid JavaScript (doc is unbound). I take you to mean that "valid CouchDB" implies "valid JavaScript." But valid CouchDB is more relaxing with anonymous functions ("invalid JavaScript"). Business as usual is beautiful. How could it be implemented on all SM versions? What if we catch the eval()? If the error is "anonymous function at a top level scope" then we try again with "("+code+")". Yes, it is a tiny source transformation, and that is bad; however it is a common idiom in Javascript when building code from data. (If you ask me, it is the helper function people who should see their code broken; not we who have followed the customs and conventions all along. Thus I prefer your original patch the most: wrap it in parens.) > 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