<commit_before>function AudioClip(audioFile) {
    this.audio = new Audio(audioFile);
    this.audioChannels = [];
    this.length = this.audio.duration;
}

AudioClip.prototype = {
    play: function(start, finish) {
        var i = 0;
        while (this.audioChannels[i] !== undefined) {
            if (this.audioChannels[i].ended) {break;}
            i += 1;
        }
        if (this.audioChannels[i] === undefined) {
            this.audioChannels[i] = this.audio.cloneNode();
        }
        if (start !== undefined) {
            this.audioChannels[i].currentTime = start
        }
        if (finish !== undefined) {
            thisObj = this;
            setTimeout(function() {
                thisObj.audioChannels[i].currentTime = 
                thisObj.length;}, finish - thisOjb.audioChannels[i].currentTime);
        }
        this.audioChannels[i].play();
    }
}<commit_msg>fixed cloneNode issue for firefox<commit_after>function AudioClip(audioFile) {
    this.audio = new Audio(audioFile);
    this.audioChannels = [];
    this.length = this.audio.duration;
}

AudioClip.prototype = {
    play: function(start, finish) {
        var i = 0;
        while (this.audioChannels[i] !== undefined) {
            if (this.audioChannels[i].ended) {break;}
            i += 1;
        }
        if (this.audioChannels[i] === undefined) {
            this.audioChannels[i] = this.audio.cloneNode(true);
        }
        if (start !== undefined) {
            this.audioChannels[i].currentTime = start
        }
        if (finish !== undefined) {
            thisObj = this;
            setTimeout(function() {
                thisObj.audioChannels[i].currentTime = 
                thisObj.length;}, finish - thisOjb.audioChannels[i].currentTime);
        }
        this.audioChannels[i].play();
    }
}
{'fraction_non_alphanumeric': 0.1350164654226125, 'fraction_numerical': 0.0021953896816684962, 'mean_word_length': 1.9836333878887071, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6362162', 'n_tokens_mistral': 545, 'n_tokens_neox': 532, 'n_words': 92}