<commit_before>// Several browsers (IE, Safari, Samsung) don't implement slice.
Float32Array.prototype.slice = Float32Array.prototype.slice || function(a, b, c) {
    return new Float32Array(Array.from(this).slice(a, b, c));
};
Float64Array.prototype.slice = Float64Array.prototype.slice || function(a, b, c) {
    return new Float64Array(Array.from(this).slice(a, b, c));
};
const ARRAY_ITER = function() {
    let self = this;
    return function*() {
        for (let i = 0; i < self.length; i++) {
            yield self[i];
        }
    }();
};
Float32Array.prototype[Symbol.iterator] = Float32Array.prototype[Symbol.iterator] || ARRAY_ITER;
Float64Array.prototype[Symbol.iterator] = Float64Array.prototype[Symbol.iterator] || ARRAY_ITER;

// Safari only puts properties on instances of WebGLRenderingContext.
const GL = WebGLRenderingContext;
if (GL !== undefined && GL.INVALID_ENUM === undefined) {
    let keys = [
        'ARRAY_BUFFER',
        'CLAMP_TO_EDGE',
        'COLOR_ATTACHMENT0',
        'COMPILE_STATUS',
        'ELEMENT_ARRAY_BUFFER',
        'FLOAT',
        'FRAGMENT_SHADER',
        'FRAMEBUFFER',
        'FRAMEBUFFER_COMPLETE',
        'HIGH_FLOAT',
        'LINK_STATUS',
        'MAX_TEXTURE_IMAGE_UNITS',
        'MAX_TEXTURE_SIZE',
        'MEDIUM_FLOAT',
        'NEAREST',
        'NO_ERROR',
        'RGBA',
        'STATIC_DRAW',
        'TEXTURE_2D',
        'TEXTURE_MAG_FILTER',<commit_msg>Added performance.now polyfill<commit_after>// Several browsers (IE, Safari, Samsung) don't implement slice.
Float32Array.prototype.slice = Float32Array.prototype.slice || function(a, b, c) {
    return new Float32Array(Array.from(this).slice(a, b, c));
};
Float64Array.prototype.slice = Float64Array.prototype.slice || function(a, b, c) {
    return new Float64Array(Array.from(this).slice(a, b, c));
};
const ARRAY_ITER = function() {
    let self = this;
    return function*() {
        for (let i = 0; i < self.length; i++) {
            yield self[i];
        }
    }();
};
Float32Array.prototype[Symbol.iterator] = Float32Array.prototype[Symbol.iterator] || ARRAY_ITER;
Float64Array.prototype[Symbol.iterator] = Float64Array.prototype[Symbol.iterator] || ARRAY_ITER;

// This was missing on the iPhone I tested.
window.performance = window.performance || {};
window.performance.now = window.performance.now || (() => Date.now());

// Safari only puts properties on instances of WebGLRenderingContext.
const GL = WebGLRenderingContext;
if (GL !== undefined && GL.INVALID_ENUM === undefined) {
    let keys = [
        'ARRAY_BUFFER',
        'CLAMP_TO_EDGE',
        'COLOR_ATTACHMENT0',
        'COMPILE_STATUS',
        'ELEMENT_ARRAY_BUFFER',
        'FLOAT',
        'FRAGMENT_SHADER',
        'FRAMEBUFFER',
        'FRAMEBUFFER_COMPLETE',
        'HIGH_FLOAT',
        'LINK_STATUS',
        'MAX_TEXTURE_IMAGE_UNITS',
        'MAX_TEXTURE_SIZE',
        'MEDIUM_FLOAT',
        'NEAREST',
        'NO_ERROR',
        'RGBA',
        'STATIC_DRAW',
        'TEXTURE_2D',
        'TEXTURE_MAG_FILTER',
{'fraction_non_alphanumeric': 0.13699080157687255, 'fraction_numerical': 0.015111695137976347, 'mean_word_length': 3.0277777777777777, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 4, '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': '7524233', 'n_tokens_mistral': 986, 'n_tokens_neox': 957, 'n_words': 194}