From ce0761248adb6d624a6db7561cd6cc0b55a56011 Mon Sep 17 00:00:00 2001 From: gorhill Date: Tue, 16 May 2017 08:12:44 -0400 Subject: [PATCH] remove now obsolete code, as per #2612 --- platform/chromium/polyfill.js | 158 +--------------------------------- platform/firefox/polyfill.js | 50 +---------- 2 files changed, 2 insertions(+), 206 deletions(-) diff --git a/platform/chromium/polyfill.js b/platform/chromium/polyfill.js index a21e130e1..9530968dc 100644 --- a/platform/chromium/polyfill.js +++ b/platform/chromium/polyfill.js @@ -1,7 +1,7 @@ /******************************************************************************* uBlock Origin - a browser extension to block requests. - Copyright (C) 2014-2016 The uBlock Origin authors + Copyright (C) 2014-2017 The uBlock Origin authors This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -72,159 +72,3 @@ var objectAssign = Object.assign || function(target, source) { }; /******************************************************************************/ - -// https://github.com/gorhill/uBlock/issues/1070 -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set#Browser_compatibility -// This polyfill is designed to fulfill *only* what uBlock Origin needs -- this -// is not an accurate API of the real Set() type. - -if ( self.Set instanceof Function === false ) { - self.Set = function(iter) { - this.clear(); - if ( Array.isArray(iter) ) { - for ( var i = 0, n = iter.length; i < n; i++ ) { - this.add(iter[i]); - } - return; - } - }; - - self.Set.polyfill = true; - - self.Set.prototype.clear = function() { - this._set = Object.create(null); - this.size = 0; - // Iterator stuff - this._values = undefined; - this._i = undefined; - this.value = undefined; - this.done = true; - }; - - self.Set.prototype.add = function(k) { - if ( this._set[k] === undefined ) { - this._set[k] = true; - this.size += 1; - } - return this; - }; - - self.Set.prototype.delete = function(k) { - if ( this._set[k] !== undefined ) { - delete this._set[k]; - this.size -= 1; - return true; - } - return false; - }; - - self.Set.prototype.has = function(k) { - return this._set[k] !== undefined; - }; - - self.Set.prototype.next = function() { - if ( this._i < this.size ) { - this.value = this._values[this._i++]; - } else { - this._values = undefined; - this.value = undefined; - this.done = true; - } - return this; - }; - - self.Set.prototype.values = function() { - this._values = Object.keys(this._set); - this._i = 0; - this.value = undefined; - this.done = false; - return this; - }; -} - -/******************************************************************************/ - -// https://github.com/gorhill/uBlock/issues/1070 -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set#Browser_compatibility -// This polyfill is designed to fulfill *only* what uBlock Origin needs -- this -// is not an accurate API of the real Map() type. - -if ( self.Map instanceof Function === false ) { - self.Map = function(iter) { - this.clear(); - if ( Array.isArray(iter) ) { - for ( var i = 0, n = iter.length, entry; i < n; i++ ) { - entry = iter[i]; - this.set(entry[0], entry[1]); - } - return; - } - }; - - self.Map.polyfill = true; - - self.Map.prototype.clear = function() { - this._map = Object.create(null); - this.size = 0; - // Iterator stuff - this._keys = undefined; - this._i = undefined; - this.value = undefined; - this.done = true; - }; - - self.Map.prototype.delete = function(k) { - if ( this._map[k] !== undefined ) { - delete this._map[k]; - this.size -= 1; - return true; - } - return false; - }; - - self.Map.prototype.entries = function() { - this._keys = Object.keys(this._map); - this._i = 0; - this.value = [ undefined, undefined ]; - this.done = false; - return this; - }; - - self.Map.prototype.get = function(k) { - return this._map[k]; - }; - - self.Map.prototype.has = function(k) { - return this._map[k] !== undefined; - }; - - self.Map.prototype.next = function() { - if ( this._i < this.size ) { - var key = this._keys[this._i++]; - this.value[0] = key; - this.value[1] = this._map[key]; - } else { - this._keys = undefined; - this.value = undefined; - this.done = true; - } - return this; - }; - - self.Map.prototype.set = function(k, v) { - if ( v !== undefined ) { - if ( this._map[k] === undefined ) { - this.size += 1; - } - this._map[k] = v; - } else { - if ( this._map[k] !== undefined ) { - this.size -= 1; - } - delete this._map[k]; - } - return this; - }; -} - -/******************************************************************************/ diff --git a/platform/firefox/polyfill.js b/platform/firefox/polyfill.js index 6daf9fd46..6b03d565b 100644 --- a/platform/firefox/polyfill.js +++ b/platform/firefox/polyfill.js @@ -1,7 +1,7 @@ /******************************************************************************* uBlock Origin - a browser extension to block requests. - Copyright (C) 2016 The uBlock Origin authors + Copyright (C) 2016-2017 The uBlock Origin authors This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -41,51 +41,3 @@ var objectAssign = Object.assign || function(target, source) { }; /******************************************************************************/ - -// Patching for Pale Moon which does not implement ES6 Set/Map. -// Test for non-ES6 Set/Map: check if property `iterator` is present. -// The code is strictly to satisfy uBO's core, not to be an accurate -// implementation of ES6. - -if ( self.Set.prototype.iterator instanceof Function ) { - //console.log('Patching non-ES6 Set() to be more ES6-like.'); - self.Set.prototype._values = self.Set.prototype.values; - self.Set.prototype.values = function() { - this._valueIter = this._values(); - this.value = undefined; - this.done = false; - return this; - }; - self.Set.prototype.next = function() { - try { - this.value = this._valueIter.next(); - } catch (ex) { - this._valueIter = undefined; - this.value = undefined; - this.done = true; - } - return this; - }; -} - -if ( self.Map.prototype.iterator instanceof Function ) { - //console.log('Patching non-ES6 Map() to be more ES6-like.'); - self.Map.prototype._entries = self.Map.prototype.entries; - self.Map.prototype.entries = function() { - this._entryIter = this._entries(); - this.value = undefined; - this.done = false; - return this; - }; - self.Map.prototype.next = function() { - try { - this.value = this._entryIter.next(); - } catch (ex) { - this._entryIter = undefined; - this.value = undefined; - this.done = true; - } - return this; - }; -} -