Use for…of instead of manual iteration.

Unfortunately, UglifyJS can’t handle for…of, though.
This commit is contained in:
Mike Bostock 2014-10-16 10:06:17 -07:00
Родитель b943746b7e
Коммит 594c2d24aa
5 изменённых файлов: 25165 добавлений и 9002 удалений

Просмотреть файл

@ -17,14 +17,16 @@ src/start.js: package.json bin/start
d3.zip: LICENSE d3.js d3.min.js d3.zip: LICENSE d3.js d3.min.js
zip $@ $^ zip $@ $^
# node_modules/.bin/smash src/d3.js | node_modules/.bin/uglifyjs - -b indent-level=2 -o $@
d3.js: $(shell node_modules/.bin/smash --ignore-missing --list src/d3.js) package.json d3.js: $(shell node_modules/.bin/smash --ignore-missing --list src/d3.js) package.json
@rm -f $@ @rm -f $@
node_modules/.bin/smash src/d3.js | node_modules/.bin/uglifyjs - -b indent-level=2 -o $@ node_modules/.bin/smash src/d3.js > $@
@chmod a-w $@ @chmod a-w $@
# bin/uglify $< > $@
d3.min.js: d3.js bin/uglify d3.min.js: d3.js bin/uglify
@rm -f $@ @rm -f $@
bin/uglify $< > $@ cat $< > $@
%.json: bin/% package.json %.json: bin/% package.json
@rm -f $@ @rm -f $@

21418
d3.js поставляемый

Разница между файлами не показана из-за своего большого размера Загрузить разницу

12705
d3.min.js поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -25,18 +25,24 @@ d3_class(d3_Map, {
return this._.delete(key + ""); return this._.delete(key + "");
}, },
keys: function() { keys: function() {
var i = this._.keys(), k, keys = []; var keys = [];
while (!(k = i.next()).done) keys.push(k.value); for (var key of this._.keys()) {
keys.push(key);
}
return keys; return keys;
}, },
values: function() { values: function() {
var i = this._.values(), v, values = []; var values = [];
while (!(v = i.next()).done) values.push(v.value); for (var value of this._.values()) {
values.push(value);
}
return values; return values;
}, },
entries: function() { entries: function() {
var i = this._.entries(), e, entries = []; var entries = [];
while (!(e = i.next()).done) entries.push({key: e[0], value: e[1]}); for (var entry of this._) {
entries.push({key: entry[0], value: entry[1]});
}
return entries; return entries;
}, },
size: function() { size: function() {
@ -46,9 +52,8 @@ d3_class(d3_Map, {
return !!this._.size; return !!this._.size;
}, },
forEach: function(f) { forEach: function(f) {
var that = this; for (var entry of this._) {
this._.forEach(function(key, value) { f.apply(this, entry);
f.call(that, key, value); }
});
} }
}); });

Просмотреть файл

@ -21,8 +21,10 @@ d3_class(d3_Set, {
return this._.delete(value + ""); return this._.delete(value + "");
}, },
values: function() { values: function() {
var i = this._.values(), v, values = []; var values = [];
while (!(v = i.next()).done) values.push(v.value); for (var value of this._.values()) {
values.push(value);
}
return values; return values;
}, },
size: function() { size: function() {
@ -32,9 +34,8 @@ d3_class(d3_Set, {
return !!this._.size; return !!this._.size;
}, },
forEach: function(f) { forEach: function(f) {
var that = this; for (var value of this._) {
this._.forEach(function(value) { f.call(this, value);
f.call(that, value); }
});
} }
}); });