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