Optimization suggestion 1 #17433
Labels
closed-obsolete
Closed as the reported issue is no longer relevant
dart2js-optimization
type-enhancement
A request for a change that isn't a bug
web-dart2js
[user feedback]
Generated js code based on spectre: vertexBufferCursor is always checked for less than zero even if it is always increased and will never fall under zero this way.
_prepareForRender$1: [function(context) {
var vertexBufferLength, t1, vertexBufferCursor, line, v, t2, t3, vertexBufferCursor0, t4, t5;
vertexBufferLength = this._vboStorage.length;
for (t1 = this.lines._lineObjects, t1 = H.setRuntimeTypeInfo(new H.ListIterator(t1, t1.length, 0, null), [H.getTypeArgumentByIndex(t1, 0)]), vertexBufferCursor = 0; t1.moveNext$0();) {
line = t1._current;
v = line.get$vertexStream();
for (t2 = J.getInterceptor$x(line); v != null; vertexBufferCursor = vertexBufferCursor0) {
t3 = this._vboStorage;
vertexBufferCursor0 = vertexBufferCursor + 1;
t4 = J.getInterceptor$x(v);
t5 = t4.get$x(v);
if (vertexBufferCursor < 0 || vertexBufferCursor >= t3.length)
return H.ioore(t3, vertexBufferCursor);
t3[vertexBufferCursor] = t5;
t5 = this._vboStorage;
vertexBufferCursor = vertexBufferCursor0 + 1;
t3 = t4.get$y(v);
if (vertexBufferCursor0 < 0 || vertexBufferCursor0 >= t5.length)
return H.ioore(t5, vertexBufferCursor0);
t5[vertexBufferCursor0] = t3;
t3 = this._vboStorage;
vertexBufferCursor0 = vertexBufferCursor + 1;
t5 = t4.get$z(v);
if (vertexBufferCursor < 0 || vertexBufferCursor >= t3.length)
return H.ioore(t3, vertexBufferCursor);
t3[vertexBufferCursor] = t5;
t5 = this._vboStorage;
vertexBufferCursor = vertexBufferCursor0 + 1;
t3 = t2.get$r(line);
if (vertexBufferCursor0 < 0 || vertexBufferCursor0 >= t5.length)
return H.ioore(t5, vertexBufferCursor0);
t5[vertexBufferCursor0] = t3;
t3 = this._vboStorage;
vertexBufferCursor0 = vertexBufferCursor + 1;
t5 = line.get$g();
if (vertexBufferCursor < 0 || vertexBufferCursor >= t3.length)
return H.ioore(t3, vertexBufferCursor);
t3[vertexBufferCursor] = t5;
t5 = this._vboStorage;
vertexBufferCursor = vertexBufferCursor0 + 1;
t3 = t2.get$b(line);
if (vertexBufferCursor0 < 0 || vertexBufferCursor0 >= t5.length)
return H.ioore(t5, vertexBufferCursor0);
t5[vertexBufferCursor0] = t3;
t3 = this._vboStorage;
vertexBufferCursor0 = vertexBufferCursor + 1;
t5 = t2.get$a(line);
if (vertexBufferCursor < 0 || vertexBufferCursor >= t3.length)
return H.ioore(t3, vertexBufferCursor);
t3[vertexBufferCursor] = t5;
v = t4.get$next(v);
if (vertexBufferCursor0 === vertexBufferLength) {
vertexBufferCursor = vertexBufferCursor0;
break;
}
}
if (vertexBufferCursor === vertexBufferLength)
break;
}
if (vertexBufferCursor !== 0)
this._lineMesh._deviceVertexBuffer.uploadSubData$2(0, this._vboStorage);
this._lineMesh.count = C.JSInt_methods._tdivFast$1(vertexBufferCursor, 7);
}, "call$1", "get$_prepareForRender", 2, 0, null, 94, []],
////////////////////////////////////////////////////////////////////////////////////
Editor: 1.3.0.dev_03_02 (2014-03-10)
OS: Windows 8 - amd64 (6.2)
JVM: 1.7.0_45
projects: 2
open dart files: 0
auto-run pub: true
localhost resolves to: 127.0.0.1
mem max/total/free: 1778 / 871 / 325 MB
thread count: 27
index: 454614 relationships in 70819 keys in 435 sources
SDK installed: true
Dartium installed: true
The text was updated successfully, but these errors were encountered: