Skip to content

Commit bdcb648

Browse files
committed
Turn off the compiler's "advanced" optimizations.
The renaming of attributes is totally not worth the hassle of maintaining an externs file (or using the awkward `foo["bar"]` syntax). The file size reduction from the advanced optimizations was negligible, besides!
1 parent bfed47b commit bdcb648

33 files changed

Lines changed: 739 additions & 913 deletions

Makefile

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@ JS_COMPILER = \
22
java -jar lib/google-compiler/compiler.jar \
33
--externs=src/externs.js \
44
--warning_level=VERBOSE \
5-
--compilation_level=ADVANCED_OPTIMIZATIONS \
6-
--charset=UTF-8 \
7-
--output_wrapper='(function(){%output%})()'
5+
--charset=UTF-8
86

97
all: \
108
d3.js \
@@ -21,9 +19,11 @@ all: \
2119
d3.time.min.js
2220

2321
.INTERMEDIATE d3.js: \
22+
src/start.js \
2423
d3.core.js \
2524
d3.scale.js \
26-
d3.svg.js
25+
d3.svg.js \
26+
src/end.js
2727

2828
d3.core.js: \
2929
src/core/core.js \
@@ -76,32 +76,42 @@ d3.svg.js: \
7676
src/svg/mouse.js
7777

7878
d3.layout.js: \
79+
src/start.js \
7980
src/layout/layout.js \
80-
src/layout/chord.js
81+
src/layout/chord.js \
82+
src/end.js
8183

8284
d3.geo.js: \
85+
src/start.js \
8386
src/geo/geo.js \
8487
src/geo/albers.js \
8588
src/geo/mercator.js \
86-
src/geo/path.js
89+
src/geo/path.js \
90+
src/end.js
8791

8892
d3.csv.js: \
93+
src/start.js \
8994
src/csv/csv.js \
9095
src/csv/parse.js \
91-
src/csv/format.js
96+
src/csv/format.js \
97+
src/end.js
9298

9399
d3.time.js: \
100+
src/start.js \
94101
src/time/time.js \
95-
src/time/format.js
102+
src/time/format.js \
103+
src/end.js
96104

97105
d3.geom.js: \
106+
src/start.js \
98107
src/geom/geom.js \
99108
src/geom/hull.js \
100109
src/geom/polygon.js \
101110
src/geom/voronoi.js \
102-
src/geom/delaunay.js
111+
src/geom/delaunay.js \
112+
src/end.js
103113

104-
%.min.js: %.js Makefile src/externs.js
114+
%.min.js: %.js Makefile
105115
@rm -f $@
106116
$(JS_COMPILER) --js $< --js_output_file $@
107117

d3.csv.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
d3.csv = function(url, callback) {
1+
(function(){d3.csv = function(url, callback) {
22
d3.text(url, "text/csv", function(text) {
33
callback(text && d3.csv.parse(text));
44
});
@@ -81,3 +81,4 @@ function d3_csv_formatValue(text) {
8181
? "\"" + text.replace(/\"/g, "\"\"") + "\""
8282
: text;
8383
}
84+
})()

d3.csv.min.js

Lines changed: 2 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

d3.geo.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
d3.geo = {};
1+
(function(){d3.geo = {};
22
// Derived from Tom Carden's Albers implementation for Protovis.
33
// http://gist.github.com/476238
44
// http://mathworld.wolfram.com/AlbersEqual-AreaConicProjection.html
@@ -361,3 +361,4 @@ function d3_path_circle(radius) {
361361
function d3_geo_pathZero() {
362362
return 0;
363363
}
364+
})()

d3.geo.min.js

Lines changed: 8 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

d3.geom.js

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
d3.geom = {};
1+
(function(){d3.geom = {};
22
/**
33
* Computes the 2D convex hull of a set of points using Graham's scanning
44
* algorithm. The algorithm has been implemented as described in Cormen,
@@ -186,11 +186,11 @@ d3.geom.voronoi = function(vertices) {
186186
y1,
187187
y2;
188188
if (e.a == 1 && e.b >= 0) {
189-
s1 = e.ep["r"];
190-
s2 = e.ep["l"];
189+
s1 = e.ep.r;
190+
s2 = e.ep.l;
191191
} else {
192-
s1 = e.ep["l"];
193-
s2 = e.ep["r"];
192+
s1 = e.ep.l;
193+
s2 = e.ep.r;
194194
}
195195
if (e.a == 1) {
196196
y1 = s1 ? s1.y : -1e6;
@@ -205,8 +205,8 @@ d3.geom.voronoi = function(vertices) {
205205
}
206206
var v1 = [x1, y1],
207207
v2 = [x2, y2];
208-
polygons[e.region["l"].index].push(v1, v2);
209-
polygons[e.region["r"].index].push(v1, v2);
208+
polygons[e.region.l.index].push(v1, v2);
209+
polygons[e.region.r.index].push(v1, v2);
210210
});
211211

212212
// Reconnect the polygon segments into counterclockwise loops.
@@ -255,8 +255,8 @@ function d3_voronoi_tessellate(vertices, callback) {
255255
init: function() {
256256
EdgeList.leftEnd = EdgeList.createHalfEdge(null, "l");
257257
EdgeList.rightEnd = EdgeList.createHalfEdge(null, "l");
258-
EdgeList.leftEnd["r"] = EdgeList.rightEnd;
259-
EdgeList.rightEnd["l"] = EdgeList.leftEnd;
258+
EdgeList.leftEnd.r = EdgeList.rightEnd;
259+
EdgeList.rightEnd.l = EdgeList.leftEnd;
260260
EdgeList.list.unshift(EdgeList.leftEnd, EdgeList.rightEnd);
261261
},
262262

@@ -271,33 +271,33 @@ function d3_voronoi_tessellate(vertices, callback) {
271271
},
272272

273273
insert: function(lb, he) {
274-
he["l"] = lb;
275-
he["r"] = lb["r"];
276-
lb["r"]["l"] = he;
277-
lb["r"] = he;
274+
he.l = lb;
275+
he.r = lb.r;
276+
lb.r.l = he;
277+
lb.r = he;
278278
},
279279

280280
leftBound: function(p) {
281281
var he = EdgeList.leftEnd;
282282
do {
283-
he = he["r"];
283+
he = he.r;
284284
} while (he != EdgeList.rightEnd && Geom.rightOf(he, p));
285-
he = he["l"];
285+
he = he.l;
286286
return he;
287287
},
288288

289289
del: function(he) {
290-
he["l"]["r"] = he["r"];
291-
he["r"]["l"] = he["l"];
290+
he.l.r = he.r;
291+
he.r.l = he.l;
292292
he.edge = null;
293293
},
294294

295295
right: function(he) {
296-
return he["r"];
296+
return he.r;
297297
},
298298

299299
left: function(he) {
300-
return he["l"];
300+
return he.l;
301301
},
302302

303303
leftRegion: function(he) {
@@ -345,7 +345,7 @@ function d3_voronoi_tessellate(vertices, callback) {
345345
intersect: function(el1, el2) {
346346
var e1 = el1.edge,
347347
e2 = el2.edge;
348-
if (!e1 || !e2 || (e1.region["r"] == e2.region["r"])) {
348+
if (!e1 || !e2 || (e1.region.r == e2.region.r)) {
349349
return null;
350350
}
351351
var d = (e1.a * e2.b) - (e1.b * e2.a);
@@ -354,8 +354,8 @@ function d3_voronoi_tessellate(vertices, callback) {
354354
}
355355
var xint = (e1.c * e2.b - e2.c * e1.b) / d,
356356
yint = (e2.c * e1.a - e1.c * e2.a) / d,
357-
e1r = e1.region["r"],
358-
e2r = e2.region["r"],
357+
e1r = e1.region.r,
358+
e2r = e2.region.r,
359359
el,
360360
e;
361361
if ((e1r.y < e2r.y) ||
@@ -366,7 +366,7 @@ function d3_voronoi_tessellate(vertices, callback) {
366366
el = el2;
367367
e = e2;
368368
}
369-
var rightOfSite = (xint >= e.region["r"].x);
369+
var rightOfSite = (xint >= e.region.r.x);
370370
if ((rightOfSite && (el.side == "l")) ||
371371
(!rightOfSite && (el.side == "r"))) {
372372
return null;
@@ -379,7 +379,7 @@ function d3_voronoi_tessellate(vertices, callback) {
379379

380380
rightOf: function(he, p) {
381381
var e = he.edge,
382-
topsite = e.region["r"],
382+
topsite = e.region.r,
383383
rightOfSite = (p.x > topsite.x);
384384

385385
if (rightOfSite && (he.side == "l")) {
@@ -407,7 +407,7 @@ function d3_voronoi_tessellate(vertices, callback) {
407407
}
408408
}
409409
if (!fast) {
410-
var dxs = topsite.x - e.region["l"].x;
410+
var dxs = topsite.x - e.region.l.x;
411411
above = (e.b * (dxp * dxp - dyp * dyp)) <
412412
(dxs * dyp * (1 + 2 * dxp / dxs + e.b * e.b));
413413

@@ -574,7 +574,7 @@ d3.geom.delaunay = function(vertices) {
574574

575575
// Use the Voronoi tessellation to determine Delaunay edges.
576576
d3_voronoi_tessellate(vertices, function(e) {
577-
edges[e.region["l"].index].push(vertices[e.region["r"].index]);
577+
edges[e.region.l.index].push(vertices[e.region.r.index]);
578578
});
579579

580580
// Reconnect the edges into counterclockwise triangles.
@@ -595,3 +595,4 @@ d3.geom.delaunay = function(vertices) {
595595

596596
return triangles;
597597
};
598+
})()

0 commit comments

Comments
 (0)