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