incubator-couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "paul iannazzo (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COUCHDB-1300) Array.prototype isn't working properly
Date Sun, 02 Oct 2011 01:50:34 GMT

    [ https://issues.apache.org/jira/browse/COUCHDB-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13118941#comment-13118941
] 

paul iannazzo commented on COUCHDB-1300:
----------------------------------------

I found a workaround (i guess solution in this case) to my problem.
instead of using array prototypes i can get the same functionality via monads (specifically
the underscore library).

anyway, i found this issue very confusing.

thank you for your quick response.
                
> Array.prototype isn't working properly
> --------------------------------------
>
>                 Key: COUCHDB-1300
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1300
>             Project: CouchDB
>          Issue Type: Bug
>          Components: JavaScript View Server
>    Affects Versions: 1.1
>         Environment: Ubuntu 11.04, node.couchapp, commonJS
>            Reporter: paul iannazzo
>              Labels: javascript, patch
>
> ##file helpers.js in views/lib/common
> const _ = require("views/lib/underscore");
> Array.prototype.compact = function(){return _.compact(this);};
> Array.prototype.flatten = function(){return _.flatten(this);};
> //this function is called from views.someName.map
> function commonProperties(doc){
>     arr = [];
>     arr = arr.compact();
>     log(arr);
>     log("is array?");
>     log(toString.call(doc.store.taxes));
>     log(doc.store.taxes);
>     //log(doc.store.taxes.compact());
>     log("is safe array?");
>     log(toString.call(safe.array(doc.store.taxes)));
>     log(safe.array(doc.store.taxes));
>    //log(safe.array(doc.store.taxes).compact());
>     log("array?");
>     log(toString.call(Array(safe.array(doc.store.taxes))));
>     log(Array(doc.store.taxes));
>     log(Array(doc.store.taxes).compact());
> ...
> ::LOG
> [info] [<0.3429.0>] OS Process #Port<0.5316> Log :: []
> [info] [<0.3429.0>] OS Process #Port<0.5316> Log :: is array?
> [info] [<0.3429.0>] OS Process #Port<0.5316> Log :: [object Array]
> [info] [<0.3429.0>] OS Process #Port<0.5316> Log :: [{"taxId":0,"number":"000000","percent":8},{"taxId":1,"number":"","percent":5},{"taxId":2,"number":"","percent":1}]
> [info] [<0.3429.0>] OS Process #Port<0.5316> Log :: is safe array?
> [info] [<0.3429.0>] OS Process #Port<0.5316> Log :: [object Array]
> [info] [<0.3429.0>] OS Process #Port<0.5316> Log :: [{"taxId":0,"number":"000000","percent":8},{"taxId":1,"number":"","percent":5},{"taxId":2,"number":"","percent":1}]
> [info] [<0.3429.0>] OS Process #Port<0.5316> Log :: array?
> [info] [<0.3429.0>] OS Process #Port<0.5316> Log :: [object Array]
> [info] [<0.3429.0>] OS Process #Port<0.5316> Log :: [[{"taxId":0,"number":"000000","percent":8},{"taxId":1,"number":"","percent":5},{"taxId":2,"number":"","percent":1}]]
> the .compact() lines that are commented out cause errors:
> [info] [<0.3429.0>] OS Process #Port<0.5316> Log :: []
> [info] [<0.3429.0>] OS Process #Port<0.5316> Log :: is array?
> [info] [<0.3429.0>] OS Process #Port<0.5316> Log :: [object Array]
> [info] [<0.3429.0>] OS Process #Port<0.5316> Log :: [{"taxId":0,"number":"000000","percent":8},{"taxId":1,"number":"","percent":5},{"taxId":2,"number":"","percent":1}]
> [info] [<0.3429.0>] OS Process #Port<0.5316> Log :: function raised exception
(new TypeError("doc.store.taxes.compact is not a function", "", 29)) with doc._id RT7-RT7-31-20
> the first logs show that doc.store.taxes is an array, why do i need to use Array() on
it in order to use the prototype functions?

--
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

        

Mime
View raw message