Run a `lein deps :tree` to compare the version of the Google Closure
Compiler you are getting.

David

On Wed, Jan 28, 2015 at 9:58 AM, Crispin Wellington <
retrogradeor...@gmail.com> wrote:

> OK something very strange is going on. I tried the let block, and it was
> the same in my project.
>
> So I created a new minimal project, lein new mies test-sound, and made a
> minimal test: https://github.com/retrogradeorbit/test-sound
>
> And here it works!
>
> Go back to my old project, and it doesn't.
>
> So now I have to go and gradually work through the project differences to
> see what's causing this. If I find anything, I'll post it.
>
> Thanks for your help
>
> Crispin
>
> On Wednesday, January 28, 2015 at 10:06:52 PM UTC+8, David Nolen wrote:
>>
>> I mentioned trying this in a `let` binding instead. What happens when you
>> try that?
>>
>> David
>>
>> On Wed, Jan 28, 2015 at 9:04 AM, Crispin Wellington <retrogr...@gmail.com
>> > wrote:
>>
>>> No, that's not it. So I tried:
>>>
>>> (def audio-context (js/AudioContext.))
>>> (.decodeAudioData audio-context (js/ArrayBuffer. 256) #(println "ok" %)
>>> #(println "error" %))
>>>
>>> and it compiled to:
>>>
>>> ;var zv = new AudioContext;
>>> zv.Rd(new ArrayBuffer(256), function(a) {
>>>   return fo.c(mh(["ok", a], 0));
>>> }, function(a) {
>>>   return fo.c(mh(["error", a], 0));
>>> });
>>>
>>> This has really got me stumped.
>>>
>>> Crispin
>>>
>>>
>>> On Wednesday, January 28, 2015 at 6:23:29 PM UTC+8, Thomas Heller wrote:
>>>>
>>>> I just have a guess for you.
>>>>
>>>> AudioContext.decodeAudioData parameters are declared as ArrayBuffer,
>>>> Function, Function but you are passing "data" which is a String not an
>>>> ArrayBuffer. Maybe the type inference thinks you are calling a method that
>>>> is not defined in the externs?
>>>>
>>>> Maybe it will work if you pass an ArrayBuffer? Other than that I see no
>>>> reason why it would munge the name.
>>>>
>>>> /thomas
>>>>
>>>> On Wednesday, January 28, 2015 at 2:14:31 AM UTC+1, Crispin Wellington
>>>> wrote:
>>>>>
>>>>> Hi there,
>>>>>
>>>>> I have been trying to compile some audio code in clojurescript in
>>>>> advanced mode. I have setup the w3c_audio.js extern (from:
>>>>> http://closureplease.com/externs/) into my extern list. When I
>>>>> compile, it prevents the munging of "AudioContext" (without the extern,
>>>>> this is being munged, so the extern is 'working'). But it doesn't prevent
>>>>> the munging of methods on AudioContext object.
>>>>>
>>>>> A super minimal example (but not working code):
>>>>>
>>>>> (def audio-context (js/AudioContext.))
>>>>> (.decodeAudioData audio-context "data" #(println "ok" %) #(println
>>>>> "error" %))
>>>>>
>>>>> compiles with advanced to:
>>>>>
>>>>> ;var zv = new AudioContext;
>>>>> zv.Rd("data", function(a) {
>>>>>   return fo.c(mh([a], 0));
>>>>> }, function() {
>>>>>   return(0).call(null);
>>>>> });
>>>>>
>>>>> zv.Rd is wrong. It should be zv.decodeAudioData.
>>>>>
>>>>> The externs file does indeed have this function prototype. here are
>>>>> the excerpts:
>>>>>
>>>>> /**
>>>>>  * @constructor
>>>>>  */
>>>>> var AudioContext = function() {};
>>>>>
>>>>> ....
>>>>>
>>>>> /**
>>>>>  * @param {ArrayBuffer} audioData
>>>>>  * @param {Function} successCallback
>>>>>  * @param {Function=} errorCallback
>>>>>  */
>>>>> AudioContext.prototype.decodeAudioData = function(audioData,
>>>>> successCallback,
>>>>>     errorCallback) {};
>>>>>
>>>>> Why would closure compiler protect the AudioContext name, but munge
>>>>> the decodeAudioData name? What am I doing wrong?
>>>>>
>>>>> Regards
>>>>>
>>>>> Crispin Wellington
>>>>>
>>>>>
>>>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clo...@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+u...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+u...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to