Skip to content

Instantly share code, notes, and snippets.

@Yaffle
Last active December 2, 2015 11:56

Revisions

  1. Yaffle revised this gist Dec 4, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion URLSearchParams.js
    Original file line number Diff line number Diff line change
    @@ -38,7 +38,7 @@ URLSearchParams.prototype.get = function (name) {
    }
    i += 2;
    }
    return null;
    return undefined;
    };
    URLSearchParams.prototype.getAll = function (name) {
    name = name.toString();
  2. Yaffle revised this gist Sep 5, 2014. 1 changed file with 9 additions and 9 deletions.
    18 changes: 9 additions & 9 deletions URLSearchParams.js
    Original file line number Diff line number Diff line change
    @@ -2,7 +2,7 @@

    function URLSearchParams(query) {
    var data = [];
    query = String(query);
    query = query.toString();
    query = query.replace(/\+/g, " ");
    var strings = query.split("&");
    var l = strings.length;
    @@ -28,7 +28,7 @@ function URLSearchParams(query) {
    }

    URLSearchParams.prototype.get = function (name) {
    name = String(name);
    name = name.toString();
    var data = this.data;
    var l = data.length;
    var i = 0;
    @@ -41,7 +41,7 @@ URLSearchParams.prototype.get = function (name) {
    return null;
    };
    URLSearchParams.prototype.getAll = function (name) {
    name = String(name);
    name = name.toString();
    var x = [];
    var data = this.data;
    var l = data.length;
    @@ -55,8 +55,8 @@ URLSearchParams.prototype.getAll = function (name) {
    return x;
    };
    URLSearchParams.prototype.set = function (name, value) {
    name = String(name);
    value = String(value);
    name = name.toString();
    value = value.toString();
    var data = this.data;
    var l = data.length;
    var i = 0;
    @@ -71,14 +71,14 @@ URLSearchParams.prototype.set = function (name, value) {
    data.push(value);
    };
    URLSearchParams.prototype.append = function (name, value) {
    name = String(name);
    value = String(value);
    name = name.toString();
    value = value.toString();
    var data = this.data;
    data.push(name);
    data.push(value);
    };
    URLSearchParams.prototype.has = function (name) {
    name = String(name);
    name = name.toString();
    var data = this.data;
    var l = data.length;
    var i = 0;
    @@ -91,7 +91,7 @@ URLSearchParams.prototype.has = function (name) {
    return false;
    };
    URLSearchParams.prototype["delete"] = function (name) {
    name = String(name);
    name = name.toString();
    var data = this.data;
    var l = data.length;
    var i = 0;
  3. Yaffle revised this gist Sep 3, 2014. 1 changed file with 117 additions and 128 deletions.
    245 changes: 117 additions & 128 deletions URLSearchParams.js
    Original file line number Diff line number Diff line change
    @@ -1,136 +1,125 @@
    (function (global) {
    "use strict";
    "use strict";

    var parseQuery = function (query, data) {
    query = query.replace(/\+/g, " ");
    var strings = query.split("&");
    var l = strings.length;
    var i = 0;
    while (i < l) {
    var s = strings[i];
    if (s !== "") {
    var j = s.indexOf("=");
    var name = s;
    var value = "";
    if (j !== -1) {
    name = s.slice(0, j);
    value = s.slice(j + 1);
    }
    name = decodeURIComponent(name);
    value = decodeURIComponent(value);
    data.push(name);
    data.push(value);
    function URLSearchParams(query) {
    var data = [];
    query = String(query);
    query = query.replace(/\+/g, " ");
    var strings = query.split("&");
    var l = strings.length;
    var i = 0;
    while (i < l) {
    var s = strings[i];
    if (s !== "") {
    var j = s.indexOf("=");
    var name = s;
    var value = "";
    if (j !== -1) {
    name = s.slice(0, j);
    value = s.slice(j + 1);
    }
    i += 1;
    name = decodeURIComponent(name);
    value = decodeURIComponent(value);
    data.push(name);
    data.push(value);
    }
    };
    i += 1;
    }
    this.data = data;
    }

    function URLSearchParams(query) {
    this.data = [];
    if (query instanceof URLSearchParams) {
    this.data = query.data.slice(0);
    URLSearchParams.prototype.get = function (name) {
    name = String(name);
    var data = this.data;
    var l = data.length;
    var i = 0;
    while (i < l) {
    if (data[i] === name) {
    return data[i + 1];
    }
    if (query !== undefined) {
    parseQuery(String(query), this.data);
    i += 2;
    }
    return null;
    };
    URLSearchParams.prototype.getAll = function (name) {
    name = String(name);
    var x = [];
    var data = this.data;
    var l = data.length;
    var i = 0;
    while (i < l) {
    if (data[i] === name) {
    x.push(data[i + 1]);
    }
    i += 2;
    }

    URLSearchParams.prototype = {
    get: function (name) {
    name = String(name);
    var data = this.data;
    var l = data.length;
    var i = 0;
    while (i < l) {
    if (data[i] === name) {
    return data[i + 1];
    }
    i += 2;
    }
    return null;
    },
    getAll: function (name) {
    name = String(name);
    var x = [];
    var data = this.data;
    var l = data.length;
    var i = 0;
    while (i < l) {
    if (data[i] === name) {
    x.push(data[i + 1]);
    }
    i += 2;
    }
    return x;
    },
    set: function (name, value) {
    name = String(name);
    value = String(value);
    var data = this.data;
    var l = data.length;
    var i = 0;
    while (i < l) {
    if (data[i] === name) {
    data[i + 1] = value;
    return;
    }
    i += 2;
    }
    data.push(name);
    data.push(value);
    },
    append: function (name, value) {
    name = String(name);
    value = String(value);
    var data = this.data;
    data.push(name);
    data.push(value);
    },
    has: function (name) {
    name = String(name);
    var data = this.data;
    var l = data.length;
    var i = 0;
    while (i < l) {
    if (data[i] === name) {
    return true;
    }
    i += 2;
    }
    return false;
    },
    delete: function (name) {
    name = String(name);
    var data = this.data;
    var l = data.length;
    var i = 0;
    var k = -1;
    while (i < l) {
    if (data[i] !== name) {
    data[++k] = data[i];
    data[++k] = data[i + 1];
    }
    i += 2;
    }
    data.length = k + 1;
    },
    toString: function () {
    var output = "";
    var data = this.data;
    var l = data.length;
    var i = 0;
    while (i < l) {
    output += (encodeURIComponent(data[i]));
    if (data[i + 1] !== "") {
    output += ("=");
    output += (encodeURIComponent(data[i + 1]));
    }
    output += "&";
    i += 2;
    }
    return output;
    return x;
    };
    URLSearchParams.prototype.set = function (name, value) {
    name = String(name);
    value = String(value);
    var data = this.data;
    var l = data.length;
    var i = 0;
    while (i < l) {
    if (data[i] === name) {
    data[i + 1] = value;
    return;
    }
    };

    global.URLSearchParams = URLSearchParams;
    }(this));
    i += 2;
    }
    data.push(name);
    data.push(value);
    };
    URLSearchParams.prototype.append = function (name, value) {
    name = String(name);
    value = String(value);
    var data = this.data;
    data.push(name);
    data.push(value);
    };
    URLSearchParams.prototype.has = function (name) {
    name = String(name);
    var data = this.data;
    var l = data.length;
    var i = 0;
    while (i < l) {
    if (data[i] === name) {
    return true;
    }
    i += 2;
    }
    return false;
    };
    URLSearchParams.prototype["delete"] = function (name) {
    name = String(name);
    var data = this.data;
    var l = data.length;
    var i = 0;
    var k = -1;
    while (i < l) {
    if (data[i] !== name) {
    k += 1;
    data[k] = data[i];
    k += 1;
    data[k] = data[i + 1];
    }
    i += 2;
    }
    data.length = k + 1;
    };
    URLSearchParams.prototype.toString = function () {
    var output = "";
    var data = this.data;
    var l = data.length;
    var i = 0;
    while (i < l) {
    output += (encodeURIComponent(data[i]));
    if (data[i + 1] !== "") {
    output += ("=");
    output += (encodeURIComponent(data[i + 1]));
    }
    output += "&";
    i += 2;
    }
    return output;
    };
  4. Yaffle revised this gist Apr 29, 2014. 1 changed file with 24 additions and 23 deletions.
    47 changes: 24 additions & 23 deletions URLSearchParams.js
    Original file line number Diff line number Diff line change
    @@ -1,12 +1,12 @@
    (function (global) {
    "use strict";

    var parseQuery = function (init, data) {
    init = init.replace(/\+/g, "\x20");
    var strings = init.split("&");
    var parseQuery = function (query, data) {
    query = query.replace(/\+/g, " ");
    var strings = query.split("&");
    var l = strings.length;
    var i = -1;
    while (++i < l) {
    var i = 0;
    while (i < l) {
    var s = strings[i];
    if (s !== "") {
    var j = s.indexOf("=");
    @@ -21,22 +21,23 @@
    data.push(name);
    data.push(value);
    }
    i += 1;
    }
    };

    function URLSearchParams(init) {
    function URLSearchParams(query) {
    this.data = [];
    if (init instanceof URLSearchParams) {
    this.data = init.data.slice(0);
    if (query instanceof URLSearchParams) {
    this.data = query.data.slice(0);
    }
    if (init !== undefined) {
    parseQuery(String(init), this.data);
    if (query !== undefined) {
    parseQuery(String(query), this.data);
    }
    }

    URLSearchParams.prototype = {
    get: function (name) {
    var n = String(name);
    name = String(name);
    var data = this.data;
    var l = data.length;
    var i = 0;
    @@ -49,7 +50,7 @@
    return null;
    },
    getAll: function (name) {
    var n = String(name);
    name = String(name);
    var x = [];
    var data = this.data;
    var l = data.length;
    @@ -63,30 +64,30 @@
    return x;
    },
    set: function (name, value) {
    var n = String(name);
    var v = String(value);
    name = String(name);
    value = String(value);
    var data = this.data;
    var l = data.length;
    var i = 0;
    while (i < l) {
    if (data[i] === name) {
    data[i + 1] = v;
    data[i + 1] = value;
    return;
    }
    i += 2;
    }
    data.push(n);
    data.push(v);
    data.push(name);
    data.push(value);
    },
    append: function (name, value) {
    var n = String(name);
    var v = String(value);
    name = String(name);
    value = String(value);
    var data = this.data;
    data.push(n);
    data.push(v);
    data.push(name);
    data.push(value);
    },
    has: function (name) {
    var n = String(name);
    name = String(name);
    var data = this.data;
    var l = data.length;
    var i = 0;
    @@ -99,7 +100,7 @@
    return false;
    },
    delete: function (name) {
    var n = String(name);
    name = String(name);
    var data = this.data;
    var l = data.length;
    var i = 0;
  5. Yaffle renamed this gist Apr 29, 2014. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  6. Yaffle renamed this gist Apr 29, 2014. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  7. Yaffle created this gist Apr 29, 2014.
    135 changes: 135 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,135 @@
    (function (global) {
    "use strict";

    var parseQuery = function (init, data) {
    init = init.replace(/\+/g, "\x20");
    var strings = init.split("&");
    var l = strings.length;
    var i = -1;
    while (++i < l) {
    var s = strings[i];
    if (s !== "") {
    var j = s.indexOf("=");
    var name = s;
    var value = "";
    if (j !== -1) {
    name = s.slice(0, j);
    value = s.slice(j + 1);
    }
    name = decodeURIComponent(name);
    value = decodeURIComponent(value);
    data.push(name);
    data.push(value);
    }
    }
    };

    function URLSearchParams(init) {
    this.data = [];
    if (init instanceof URLSearchParams) {
    this.data = init.data.slice(0);
    }
    if (init !== undefined) {
    parseQuery(String(init), this.data);
    }
    }

    URLSearchParams.prototype = {
    get: function (name) {
    var n = String(name);
    var data = this.data;
    var l = data.length;
    var i = 0;
    while (i < l) {
    if (data[i] === name) {
    return data[i + 1];
    }
    i += 2;
    }
    return null;
    },
    getAll: function (name) {
    var n = String(name);
    var x = [];
    var data = this.data;
    var l = data.length;
    var i = 0;
    while (i < l) {
    if (data[i] === name) {
    x.push(data[i + 1]);
    }
    i += 2;
    }
    return x;
    },
    set: function (name, value) {
    var n = String(name);
    var v = String(value);
    var data = this.data;
    var l = data.length;
    var i = 0;
    while (i < l) {
    if (data[i] === name) {
    data[i + 1] = v;
    return;
    }
    i += 2;
    }
    data.push(n);
    data.push(v);
    },
    append: function (name, value) {
    var n = String(name);
    var v = String(value);
    var data = this.data;
    data.push(n);
    data.push(v);
    },
    has: function (name) {
    var n = String(name);
    var data = this.data;
    var l = data.length;
    var i = 0;
    while (i < l) {
    if (data[i] === name) {
    return true;
    }
    i += 2;
    }
    return false;
    },
    delete: function (name) {
    var n = String(name);
    var data = this.data;
    var l = data.length;
    var i = 0;
    var k = -1;
    while (i < l) {
    if (data[i] !== name) {
    data[++k] = data[i];
    data[++k] = data[i + 1];
    }
    i += 2;
    }
    data.length = k + 1;
    },
    toString: function () {
    var output = "";
    var data = this.data;
    var l = data.length;
    var i = 0;
    while (i < l) {
    output += (encodeURIComponent(data[i]));
    if (data[i + 1] !== "") {
    output += ("=");
    output += (encodeURIComponent(data[i + 1]));
    }
    output += "&";
    i += 2;
    }
    return output;
    }
    };

    global.URLSearchParams = URLSearchParams;
    }(this));