jenkins-bot has submitted this change and it was merged.
Change subject: Replace harmony-collections with es6-shim
......................................................................
Replace harmony-collections with es6-shim
This solves a major performance regression with es6 Set.
Bug: 53241
Change-Id: I3b2e748d7e37e50fd99bc34f83900374063025ec
---
M js/lib/core-upgrade.js
M js/lib/jsutils.js
M js/lib/mediawiki.DOMPostProcessor.js
M js/lib/mediawiki.wikitext.constants.js
M js/package.json
5 files changed, 11 insertions(+), 10 deletions(-)
Approvals:
Subramanya Sastry: Looks good to me, approved
jenkins-bot: Verified
diff --git a/js/lib/core-upgrade.js b/js/lib/core-upgrade.js
index 4768f4c..1fb5963 100644
--- a/js/lib/core-upgrade.js
+++ b/js/lib/core-upgrade.js
@@ -1,3 +1,4 @@
+require('es6-shim');
if (!Array.prototype.last) {
Object.defineProperty(Array.prototype, 'last', {
value: function() { return this[this.length - 1]; }
diff --git a/js/lib/jsutils.js b/js/lib/jsutils.js
index 888c272..51459df 100644
--- a/js/lib/jsutils.js
+++ b/js/lib/jsutils.js
@@ -3,13 +3,13 @@
* Over time, more functions can be migrated out of various other files here.
*/
-var es6 = require('harmony-collections');
+require('./core-upgrade');
var JSUtils = {
// This should probably be taken care of by the Set constructor
// but doesn't seem to be implemented correctly anywhere.
arrayToSet: function(a) {
- var s = new es6.Set();
+ var s = new Set();
for (var i = 0, n = a.length; i < n; i++) {
s.add(a[i]);
}
@@ -17,7 +17,7 @@
},
mapObject: function(h) {
- var m = new es6.Map();
+ var m = new Map();
Object.keys(h).forEach(function(k) { m.set(k, h[k]); });
return m;
},
diff --git a/js/lib/mediawiki.DOMPostProcessor.js
b/js/lib/mediawiki.DOMPostProcessor.js
index b2edaff..54450c8 100644
--- a/js/lib/mediawiki.DOMPostProcessor.js
+++ b/js/lib/mediawiki.DOMPostProcessor.js
@@ -1,6 +1,7 @@
/* Perform post-processing steps on an already-built HTML DOM. */
"use strict";
+require('./core-upgrade');
var domino = require('./domino'),
events = require('events'),
@@ -23,8 +24,7 @@
TableFixups = require('./dom.t.TableFixups.js'),
stripMarkerMetas = CleanUp.stripMarkerMetas,
unpackDOMFragments =
require('./dom.t.unpackDOMFragments.js').unpackDOMFragments,
- wrapTemplates = require('./dom.wrapTemplates.js').wrapTemplates,
- es6 = require('harmony-collections');
+ wrapTemplates = require('./dom.wrapTemplates.js').wrapTemplates;
// map from mediawiki metadata names to RDFa property names
var metadataMap = {
@@ -228,7 +228,7 @@
// add <head> content based on page meta data:
// collect all the page meta data (including revision metadata) in 1
object
- var m = new es6.Map();
+ var m = new Map();
Object.keys( env.page.meta || {} ).forEach(function( k ) {
m.set( k, env.page.meta[k] );
});
diff --git a/js/lib/mediawiki.wikitext.constants.js
b/js/lib/mediawiki.wikitext.constants.js
index 358390e..29d79ef 100644
--- a/js/lib/mediawiki.wikitext.constants.js
+++ b/js/lib/mediawiki.wikitext.constants.js
@@ -1,4 +1,5 @@
"use strict";
+require('./core-upgrade');
/* -------------------------------------------------------------------
* The WikitextConstant structure holds "global constants" that
* capture properties about wikitext markup.
@@ -9,8 +10,7 @@
* about Wikitext itself. For now, this is barebones and sparse.
* ------------------------------------------------------------------- */
-var JSUtils = require('./jsutils').JSUtils,
- es6 = require('harmony-collections');
+var JSUtils = require('./jsutils').JSUtils;
var WikitextConstants = {
// Valid image options:
@@ -30,7 +30,7 @@
'img_manualthumb': 'manualthumb'
}),
/* filled in below, based on PrefixOptions */
- PrefixOptionsReverseMap: new es6.Map(),
+ PrefixOptionsReverseMap: new Map(),
SimpleOptions: JSUtils.mapObject({
// halign
'img_left' : 'halign',
diff --git a/js/package.json b/js/package.json
index c4a4aff..73b2793 100644
--- a/js/package.json
+++ b/js/package.json
@@ -18,7 +18,7 @@
"express": "2.5.x",
"html5-entities": "~0.5.0",
"html5": "0.3.15",
- "harmony-collections":
"git://github.com/Benvie/harmony-collections.git#e02bb492c275753cbee66a05b002cd57db3d80a7"
+ "es6-shim": "git://github.com/cscott/es6-shim.git#faster-1"
},
"devDependencies": {
"colors": "0.x.x",
--
To view, visit https://gerrit.wikimedia.org/r/88242
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I3b2e748d7e37e50fd99bc34f83900374063025ec
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/Parsoid
Gerrit-Branch: master
Gerrit-Owner: Cscott <[email protected]>
Gerrit-Reviewer: Arlolra <[email protected]>
Gerrit-Reviewer: Cscott <[email protected]>
Gerrit-Reviewer: GWicke <[email protected]>
Gerrit-Reviewer: Subramanya Sastry <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits