Index: /issm/trunk-jpl/src/m/plot/plot_mesh.js
===================================================================
--- /issm/trunk-jpl/src/m/plot/plot_mesh.js	(revision 20472)
+++ /issm/trunk-jpl/src/m/plot/plot_mesh.js	(revision 20473)
@@ -86,72 +86,13 @@
 		var magnitude;
 		var color = [0.0, 0.0, 0.0, 1.0];	
-						x[0] = NaN;
-		x[1] = NaN;
-		x[2] = NaN;
-		x[3] = NaN;
-		x[4] = NaN;
-		x[5] = NaN;
-		x[6] = NaN;
-		x[7] = NaN;
-		x[8] = NaN;
-		x[9] = NaN;
-		x[10] = NaN;
-		x[11] = NaN;
-		x[12] = NaN;
-		x[13] = NaN;
-		x[14] = NaN;
-		x[15] = NaN;
-		x[16] = NaN;
-		x[17] = NaN;
-		x[18] = NaN;
-		x[19] = NaN;
-		x[20] = NaN;
-		x[21] = NaN;
-		x[22] = NaN;
-		x[23] = NaN;
-		x[24] = NaN;
-		x[25] = NaN;
-		x[26] = NaN;
-		x[27] = NaN;
-		x[28] = NaN;
-		x[29] = NaN;
-		x[30] = NaN;
-		x[31] = NaN;
-		x[32] = NaN;
-		x[33] = NaN;
-		x[34] = NaN;
-		x[35] = NaN;
-		x[36] = NaN;
-		x[37] = NaN;
-		x[38] = NaN;
-		x[39] = NaN;
-		x[310] = NaN;
-		x[311] = NaN;
-		x[312] = NaN;
-		x[313] = NaN;
-		x[314] = NaN;
-		x[315] = NaN;
-		x[316] = NaN;
-		x[317] = NaN;
-		x[318] = NaN;
-		x[319] = NaN;
-		x[320] = NaN;
-		x[321] = NaN;
-		x[322] = NaN;
-		x[323] = NaN;
-		x[324] = NaN;
-		x[325] = NaN;
-		x[326] = NaN;
-		x[327] = NaN;
-		x[328] = NaN;
-		x[329] = NaN;	
 		for(var i = 0; i < x.length; i++){
 			//Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing
 			if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) {
 				nanindices[i] = i;
-				vertices.push.apply(vertices, vertex);
+				vertices[vertices.length] = vertex[0];
+				vertices[vertices.length] = vertex[1];
+				vertices[vertices.length] = vertex[2];
 				continue;
 			}
-			//Scale vertices
 			//Scale vertices
 			xyz = vec3.fromValues(x[i], y[i], z[i]);
@@ -159,7 +100,12 @@
 			vec3.normalize(direction, xyz);
 			vec3.scale(vertex, direction, magnitude);
-			vertices.push.apply(vertices, vertex);
+			vertices[vertices.length] = vertex[0];
+			vertices[vertices.length] = vertex[1];
+			vertices[vertices.length] = vertex[2];
 
-			colors.push.apply(colors, color);
+			colors[colors.length] = color[0];
+			colors[colors.length] = color[1];
+			colors[colors.length] = color[2];
+			colors[colors.length] = color[3];
 		}
 		
@@ -169,5 +115,10 @@
 			element = [elements[i][0] - 1, elements[i][1] - 1, elements[i][2] - 1];
 			if (element[0] in nanindices || element[1] in nanindices || element[2] in nanindices) continue;
-			indices = indices.concat([element[0], element[1], element[1], element[2], element[2], element[0]]);
+			indices[indices.length] = element[0];
+			indices[indices.length] = element[1];
+			indices[indices.length] = element[1];
+			indices[indices.length] = element[2];
+			indices[indices.length] = element[2];
+			indices[indices.length] = element[0];
 		}
 		indices.itemSize = 1;
Index: /issm/trunk-jpl/src/m/plot/plot_overlay.js
===================================================================
--- /issm/trunk-jpl/src/m/plot/plot_overlay.js	(revision 20472)
+++ /issm/trunk-jpl/src/m/plot/plot_overlay.js	(revision 20473)
@@ -79,5 +79,5 @@
 		var newelements = [];
 		for (var i = 0; i < md.radaroverlay.outerindex.length; i++) {
-			newelements.push([md.radaroverlay.outerindex[i][0] + x.length, md.radaroverlay.outerindex[i][1] + y.length, md.radaroverlay.outerindex[i][2] + z.length]);
+			newelements[newelements.length] = [md.radaroverlay.outerindex[i][0] + x.length, md.radaroverlay.outerindex[i][1] + y.length, md.radaroverlay.outerindex[i][2] + z.length];
 		}
 		x = [].concat(x, md.radaroverlay.outerx);
@@ -113,8 +113,9 @@
 		if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) {
 			nanindices[i] = i;
-			vertices.push.apply(vertices, vertex);
+			vertices[vertices.length] = vertex[0];
+			vertices[vertices.length] = vertex[1];
+			vertices[vertices.length] = vertex[2];
 			continue;
 		}
-		//Scale vertices
 		//Scale vertices
 		xyz = vec3.fromValues(x[i], y[i], z[i]);
@@ -122,7 +123,10 @@
 		vec3.normalize(direction, xyz);
 		vec3.scale(vertex, direction, magnitude);
-		vertices.push.apply(vertices, vertex);
-
-		texcoords.push.apply(texcoords, [(x[i] - modelxlim[0]) / xrange, (y[i] - modelylim[0]) / yrange]);
+		vertices[vertices.length] = vertex[0];
+		vertices[vertices.length] = vertex[1];
+		vertices[vertices.length] = vertex[2];
+		
+		texcoords[texcoords.length] = (x[i] - modelxlim[0]) / xrange;
+		texcoords[texcoords.length] = (y[i] - modelylim[0]) / yrange;
 	}
 
@@ -135,5 +139,4 @@
 		indices[indices.length] = element[1];
 		indices[indices.length] = element[2];
-
 	}
 	indices.itemSize = 1;
Index: /issm/trunk-jpl/src/m/plot/plot_quiver.js
===================================================================
--- /issm/trunk-jpl/src/m/plot/plot_quiver.js	(revision 20472)
+++ /issm/trunk-jpl/src/m/plot/plot_quiver.js	(revision 20473)
@@ -99,5 +99,7 @@
 			vec3.normalize(direction, xyz1);
 			vec3.scale(vertex, direction, magnitude);
-			vertices.push.apply(vertices, vertex);
+			vertices[vertices.length] = vertex[0];
+			vertices[vertices.length] = vertex[1];
+			vertices[vertices.length] = vertex[2];
 			
 			xyz2 = vec3.fromValues(vx[i], vy[i], 0.0);
@@ -106,8 +108,16 @@
 			vec3.scale(direction, direction, magnitude);
 			vec3.add(vertex, direction, vertex);
-			vertices.push.apply(vertices, vertex);
+			vertices[vertices.length] = vertex[0];
+			vertices[vertices.length] = vertex[1];
+			vertices[vertices.length] = vertex[2];
 			
-			colors.push.apply(colors, color);
-			colors.push.apply(colors, color);
+			colors[colors.length] = color[0];
+			colors[colors.length] = color[1];
+			colors[colors.length] = color[2];
+			colors[colors.length] = color[3];
+			colors[colors.length] = color[0];
+			colors[colors.length] = color[1];
+			colors[colors.length] = color[2];
+			colors[colors.length] = color[3];
 		}
 	}
Index: /issm/trunk-jpl/src/m/plot/plot_unit.js
===================================================================
--- /issm/trunk-jpl/src/m/plot/plot_unit.js	(revision 20472)
+++ /issm/trunk-jpl/src/m/plot/plot_unit.js	(revision 20473)
@@ -112,5 +112,7 @@
 					if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) {
 						nanindices[i] = i;
-						vertices.push.apply(vertices, vertex);
+						vertices[vertices.length] = vertex[0];
+						vertices[vertices.length] = vertex[1];
+						vertices[vertices.length] = vertex[2];
 						continue;
 					}
@@ -120,7 +122,10 @@
 					vec3.normalize(direction, xyz);
 					vec3.scale(vertex, direction, magnitude);
-					vertices.push.apply(vertices, vertex);
-
-					texcoords.push.apply(texcoords, [0.5, (data[i] - datamin) / datadelta]);
+					vertices[vertices.length] = vertex[0];
+					vertices[vertices.length] = vertex[1];
+					vertices[vertices.length] = vertex[2];
+
+					texcoords[texcoords.length] = 0.5;
+					texcoords[texcoords.length] = (data[i] - datamin) / datadelta;
 				}
 
@@ -130,5 +135,7 @@
 					element = [elements[i][0] - 1, elements[i][1] - 1, elements[i][2] - 1];
 					if (element[0] in nanindices || element[1] in nanindices || element[2] in nanindices) continue;
-					indices = indices.concat(element);
+					indices[indices.length] = element[0];
+					indices[indices.length] = element[1];
+					indices[indices.length] = element[2];
 				}
 				indices.itemSize = 1;
@@ -164,10 +171,11 @@
 				var magnitude;
 				var timestamps = data[data.length-1];
-
 				for(var i = 0; i < x.length; i++){
 					//Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing
 					if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) {
 						nanindices[i] = i;
-						vertices.push.apply(vertices, vertex);
+						vertices[vertices.length] = vertex[0];
+						vertices[vertices.length] = vertex[1];
+						vertices[vertices.length] = vertex[2];
 						continue;
 					}
@@ -177,5 +185,7 @@
 					vec3.normalize(direction, xyz);
 					vec3.scale(vertex, direction, magnitude);
-					vertices.push.apply(vertices, vertex);
+					vertices[vertices.length] = vertex[0];
+					vertices[vertices.length] = vertex[1];
+					vertices[vertices.length] = vertex[2];
 				}	
 				
@@ -213,5 +223,7 @@
 					element = [elements[i][0] - 1, elements[i][1] - 1, elements[i][2] - 1];
 					if (element[0] in nanindices || element[1] in nanindices || element[2] in nanindices) continue;
-					indices = indices.concat(element);
+					indices[indices.length] = element[0];
+					indices[indices.length] = element[1];
+					indices[indices.length] = element[2];
 				}
 				indices.itemSize = 1;
