<!-- 
RSS generated by JIRA (4.4#649-r158309) at Mon May 20 15:28:50 CDT 2013

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
For example:
http://dev.clojure.org/jira/si/jira.issueviews:issue-xml/CLJS-439/CLJS-439.xml?field=key&field=summary
-->
<rss version="0.92" >
<channel>
    <title>Clojure JIRA</title>
    <link>http://dev.clojure.org/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>4.4</version>
        <build-number>649</build-number>
        <build-date>25-07-2011</build-date>
    </build-info>

<item>
            <title>[CLJS-439] IEncodeClojure only works on same-context Objects</title>
                <link>http://dev.clojure.org/jira/browse/CLJS-439</link>
                <project id="10040" key="CLJS">ClojureScript</project>
                        <description>&lt;p&gt;The default impl uses &lt;tt&gt;(identical? (type x) js/Object)&lt;/tt&gt;, but objects created in another JS context (e.g. another frame) will fail this test, since their constructor is a &lt;em&gt;different&lt;/em&gt; js/Object. Thus js-&amp;gt;clj is the identity on such objects.&lt;/p&gt;

&lt;p&gt;I wonder if there are any related problems anywhere else, e.g. with protocols? This seems to be the only occurrence of &lt;tt&gt;js/Object&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;Maybe this can be fixed by extending IEncodeClojure to object? I don&apos;t immediately see how to do that without incurring the option destructuring overhead recursively.&lt;/p&gt;</description>
                <environment></environment>
            <key id="15884">CLJS-439</key>
            <summary>IEncodeClojure only works on same-context Objects</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="4" iconUrl="http://dev.clojure.org/jira/images/icons/priority_minor.gif">Minor</priority>
                    <status id="5" iconUrl="http://dev.clojure.org/jira/images/icons/status_resolved.gif">Resolved</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="tomoj">Tom Jack</reporter>
                        <labels>
                    </labels>
                <created>Tue, 11 Dec 2012 18:54:11 -0600</created>
                <updated>Sun, 20 Jan 2013 00:52:27 -0600</updated>
                    <resolved>Sun, 20 Jan 2013 00:52:27 -0600</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>3</watches>
                        <comments>
                    <comment id="30224" author="dnolen" created="Thu, 13 Dec 2012 07:55:00 -0600"  >&lt;p&gt;I don&apos;t think this is something that ClojureScript should try to address at all. To me it seems similar to various classloader issues in JVM land.&lt;/p&gt;</comment>
                    <comment id="30233" author="tomoj" created="Sat, 15 Dec 2012 02:31:30 -0600"  >&lt;p&gt;OK, I don&apos;t disagree.&lt;/p&gt;</comment>
                    <comment id="30246" author="sgrove" created="Mon, 17 Dec 2012 00:33:10 -0600"  >&lt;p&gt;This is causing some unpleasantness, and I&apos;m not aware of the classloader issues. Why check (identical? js/object x) instead of (goog.isObject x) on &lt;a href=&quot;https://github.com/clojure/clojurescript/blob/master/src/cljs/cljs/core.cljs#L6948&quot;&gt;https://github.com/clojure/clojurescript/blob/master/src/cljs/cljs/core.cljs#L6948&lt;/a&gt; ? &lt;/p&gt;</comment>
                    <comment id="30247" author="ibdknox" created="Mon, 17 Dec 2012 01:26:03 -0600"  >&lt;p&gt;this bit me as well and I can&apos;t see a downside to using goog.isObject. I agree with David about not going down a rabbit hole here, but I think we can do the &quot;right thing&quot; for free.&lt;/p&gt;

&lt;p&gt;EDIT: I spoke too soon. Looks like native objects, like dom nodes would blow up in this scenario. Also, goog.isObject returns true on functions, but that would be easy enough to deal with.&lt;/p&gt;</comment>
                    <comment id="30248" author="tomoj" created="Mon, 17 Dec 2012 02:31:28 -0600"  >&lt;p&gt;I suppose extending to object would similarly cause trouble for dom nodes etc?&lt;/p&gt;

&lt;p&gt;If you can get ahold of the js/Object from another frame, is it possible to extend IEncodeClojure to it?&lt;/p&gt;</comment>
                    <comment id="30281" author="dnolen" created="Fri, 21 Dec 2012 17:50:45 -0600"  >&lt;p&gt;I have some experience with this stuff - it&apos;s a rabbit hole. There are many objects that can cross contexts for which we can provide no sensible equality guarantees. If you need to move data between JS contexts then use GClosure and stick to the basic JS data types. I&apos;m inclined to close this one unless someone has a brilliant comprehensive solution that I&apos;m not seeing right now.&lt;/p&gt;</comment>
                    <comment id="30459" author="dnolen" created="Sun, 20 Jan 2013 00:52:27 -0600"  >&lt;p&gt;This one is tricky. Closing for now.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>
</channel>
</rss>