Merge remote-tracking branch 'webkit/main' into 2024-11-26_github_actions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8fe4c4f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+.DS_Store
+.directory
+
+# Ignore auto-generated files by VS & VSCode.
+/.vs/
+/.vscode/
diff --git a/SunSpider/3d-cube.js b/SunSpider/3d-cube.js
index 9b9d898..5ca18ed 100644
--- a/SunSpider/3d-cube.js
+++ b/SunSpider/3d-cube.js
@@ -9,7 +9,6 @@
     var I = new Array();      // entity matrix
     var Origin = new Object();
     var Testing = new Object();
-    var LoopTimer;
 
     var validation = {
      20: 2889.0000000000045,
@@ -32,7 +31,7 @@
       var x = x1;
       var y = y1;
       var IncX1, IncY1;
-      var IncX2, IncY2;  
+      var IncX2, IncY2;
       var Den;
       var Num;
       var NumAdd;
@@ -84,13 +83,14 @@
     }
 
     function CalcNormal(V0, V1, V2) {
-      var A = new Array();   var B = new Array(); 
+      var A = new Array();
+      var B = new Array();
       for (var i = 0; i < 3; i++) {
         A[i] = V0[i] - V1[i];
         B[i] = V2[i] - V1[i];
       }
       A = CalcCross(A, B);
-      var Length = Math.sqrt(A[0]*A[0] + A[1]*A[1] + A[2]*A[2]); 
+      var Length = Math.sqrt(A[0]*A[0] + A[1]*A[1] + A[2]*A[2]);
       for (var i = 0; i < 3; i++) A[i] = A[i] / Length;
       A[3] = 1;
       return A;
@@ -141,10 +141,10 @@
 
     function Translate(M, Dx, Dy, Dz) {
       var T = [
-      [1,0,0,Dx],
-      [0,1,0,Dy],
-      [0,0,1,Dz],
-      [0,0,0,1]
+        [1,0,0,Dx],
+        [0,1,0,Dy],
+        [0,0,1,Dz],
+        [0,0,0,1]
       ];
       return MMulti(T, M);
     }
@@ -155,10 +155,10 @@
       var Cos = Math.cos(a);
       var Sin = Math.sin(a);
       var R = [
-      [1,0,0,0],
-      [0,Cos,-Sin,0],
-      [0,Sin,Cos,0],
-      [0,0,0,1]
+        [1,0,0,0],
+        [0,Cos,-Sin,0],
+        [0,Sin,Cos,0],
+        [0,0,0,1]
       ];
       return MMulti(R, M);
     }
@@ -169,10 +169,10 @@
       var Cos = Math.cos(a);
       var Sin = Math.sin(a);
       var R = [
-      [Cos,0,Sin,0],
-      [0,1,0,0],
-      [-Sin,0,Cos,0],
-      [0,0,0,1]
+        [Cos,0,Sin,0],
+        [0,1,0,0],
+        [-Sin,0,Cos,0],
+        [0,0,0,1]
       ];
       return MMulti(R, M);
     }
@@ -183,10 +183,10 @@
       var Cos = Math.cos(a);
       var Sin = Math.sin(a);
       var R = [
-      [Cos,-Sin,0,0],
-      [Sin,Cos,0,0],
-      [0,0,1,0],   
-      [0,0,0,1]
+        [Cos,-Sin,0,0],
+        [Sin,Cos,0,0],
+        [0,0,1,0],
+        [0,0,0,1]
       ];
       return MMulti(R, M);
     }
@@ -270,28 +270,28 @@
 
       // transformation matrix
       MTrans = [
-      [1,0,0,0],
-      [0,1,0,0],
-      [0,0,1,0],
-      [0,0,0,1]
+        [1,0,0,0],
+        [0,1,0,0],
+        [0,0,1,0],
+        [0,0,0,1]
       ];
-      
+
       // position information of qube
       MQube = [
-      [1,0,0,0],
-      [0,1,0,0],
-      [0,0,1,0],
-      [0,0,0,1]
+        [1,0,0,0],
+        [0,1,0,0],
+        [0,0,1,0],
+        [0,0,0,1]
       ];
-      
+
       // entity matrix
       I = [
-      [1,0,0,0],
-      [0,1,0,0],
-      [0,0,1,0],
-      [0,0,0,1]
+        [1,0,0,0],
+        [0,1,0,0],
+        [0,0,1,0],
+        [0,0,0,1]
       ];
-      
+
       // create qube
       Q[0] = new CreateP(-CubeSize,-CubeSize, CubeSize);
       Q[1] = new CreateP(-CubeSize, CubeSize, CubeSize);
@@ -301,24 +301,25 @@
       Q[5] = new CreateP(-CubeSize, CubeSize,-CubeSize);
       Q[6] = new CreateP( CubeSize, CubeSize,-CubeSize);
       Q[7] = new CreateP( CubeSize,-CubeSize,-CubeSize);
-      
+
       // center of gravity
       Q[8] = new CreateP(0, 0, 0);
-      
+
       // anti-clockwise edge check
       Q.Edge = [[0,1,2],[3,2,6],[7,6,5],[4,5,1],[4,0,3],[1,5,6]];
-      
+
       // calculate squad normals
       Q.Normal = new Array();
       for (var i = 0; i < Q.Edge.length; i++) Q.Normal[i] = CalcNormal(Q[Q.Edge[i][0]].V, Q[Q.Edge[i][1]].V, Q[Q.Edge[i][2]].V);
-      
+
       // line drawn ?
       Q.Line = [false,false,false,false,false,false,false,false,false,false,false,false];
-      
+
       // create line pixels
       Q.NumPx = 9 * 2 * CubeSize;
-      for (var i = 0; i < Q.NumPx; i++) CreateP(0,0,0);
-      
+      Q.LinePixels = new Array()
+      for (var i = 0; i < Q.NumPx; i++) Q.LinePixels.push(new CreateP(0,0,0));
+
       MTrans = Translate(MTrans, Origin.V[0], Origin.V[1], Origin.V[2]);
       MQube = MMulti(MTrans, MQube);
 
@@ -329,7 +330,7 @@
       DrawQube();
       Testing.Init = true;
       Loop();
-      
+
       // Perform a simple sum-based verification.
       var sum = 0;
       for (var i = 0; i < Q.length; ++i) {
diff --git a/worker/bomb-subtests/3d-cube.js b/worker/bomb-subtests/3d-cube.js
index 6b0d49e..527fcaa 100644
--- a/worker/bomb-subtests/3d-cube.js
+++ b/worker/bomb-subtests/3d-cube.js
@@ -8,13 +8,12 @@
 var I = new Array();      // entity matrix
 var Origin = new Object();
 var Testing = new Object();
-var LoopTimer;
 
 var validation = {
- 20: 2889.0000000000045,
- 40: 2889.0000000000055,
- 80: 2889.000000000005,
- 160: 2889.0000000000055
+  20: 2889.0000000000045,
+  40: 2889.0000000000055,
+  80: 2889.000000000005,
+  160: 2889.0000000000055
 };
 
 var DisplArea = new Object();
@@ -31,7 +30,7 @@
   var x = x1;
   var y = y1;
   var IncX1, IncY1;
-  var IncX2, IncY2;  
+  var IncX2, IncY2;
   var Den;
   var Num;
   var NumAdd;
@@ -83,13 +82,14 @@
 }
 
 function CalcNormal(V0, V1, V2) {
-  var A = new Array();   var B = new Array(); 
+  var A = new Array();
+  var B = new Array();
   for (var i = 0; i < 3; i++) {
     A[i] = V0[i] - V1[i];
     B[i] = V2[i] - V1[i];
   }
   A = CalcCross(A, B);
-  var Length = Math.sqrt(A[0]*A[0] + A[1]*A[1] + A[2]*A[2]); 
+  var Length = Math.sqrt(A[0]*A[0] + A[1]*A[1] + A[2]*A[2]);
   for (var i = 0; i < 3; i++) A[i] = A[i] / Length;
   A[3] = 1;
   return A;
@@ -140,10 +140,10 @@
 
 function Translate(M, Dx, Dy, Dz) {
   var T = [
-  [1,0,0,Dx],
-  [0,1,0,Dy],
-  [0,0,1,Dz],
-  [0,0,0,1]
+    [1,0,0,Dx],
+    [0,1,0,Dy],
+    [0,0,1,Dz],
+    [0,0,0,1]
   ];
   return MMulti(T, M);
 }
@@ -154,10 +154,10 @@
   var Cos = Math.cos(a);
   var Sin = Math.sin(a);
   var R = [
-  [1,0,0,0],
-  [0,Cos,-Sin,0],
-  [0,Sin,Cos,0],
-  [0,0,0,1]
+    [1,0,0,0],
+    [0,Cos,-Sin,0],
+    [0,Sin,Cos,0],
+    [0,0,0,1]
   ];
   return MMulti(R, M);
 }
@@ -168,10 +168,10 @@
   var Cos = Math.cos(a);
   var Sin = Math.sin(a);
   var R = [
-  [Cos,0,Sin,0],
-  [0,1,0,0],
-  [-Sin,0,Cos,0],
-  [0,0,0,1]
+    [Cos,0,Sin,0],
+    [0,1,0,0],
+    [-Sin,0,Cos,0],
+    [0,0,0,1]
   ];
   return MMulti(R, M);
 }
@@ -182,10 +182,10 @@
   var Cos = Math.cos(a);
   var Sin = Math.sin(a);
   var R = [
-  [Cos,-Sin,0,0],
-  [Sin,Cos,0,0],
-  [0,0,1,0],   
-  [0,0,0,1]
+    [Cos,-Sin,0,0],
+    [Sin,Cos,0,0],
+    [0,0,1,0],
+    [0,0,0,1]
   ];
   return MMulti(R, M);
 }
@@ -269,28 +269,28 @@
 
   // transformation matrix
   MTrans = [
-  [1,0,0,0],
-  [0,1,0,0],
-  [0,0,1,0],
-  [0,0,0,1]
+    [1,0,0,0],
+    [0,1,0,0],
+    [0,0,1,0],
+    [0,0,0,1]
   ];
-  
+
   // position information of qube
   MQube = [
-  [1,0,0,0],
-  [0,1,0,0],
-  [0,0,1,0],
-  [0,0,0,1]
+    [1,0,0,0],
+    [0,1,0,0],
+    [0,0,1,0],
+    [0,0,0,1]
   ];
-  
+
   // entity matrix
   I = [
-  [1,0,0,0],
-  [0,1,0,0],
-  [0,0,1,0],
-  [0,0,0,1]
+    [1,0,0,0],
+    [0,1,0,0],
+    [0,0,1,0],
+    [0,0,0,1]
   ];
-  
+
   // create qube
   Q[0] = new CreateP(-CubeSize,-CubeSize, CubeSize);
   Q[1] = new CreateP(-CubeSize, CubeSize, CubeSize);
@@ -300,24 +300,25 @@
   Q[5] = new CreateP(-CubeSize, CubeSize,-CubeSize);
   Q[6] = new CreateP( CubeSize, CubeSize,-CubeSize);
   Q[7] = new CreateP( CubeSize,-CubeSize,-CubeSize);
-  
+
   // center of gravity
   Q[8] = new CreateP(0, 0, 0);
-  
+
   // anti-clockwise edge check
   Q.Edge = [[0,1,2],[3,2,6],[7,6,5],[4,5,1],[4,0,3],[1,5,6]];
-  
+
   // calculate squad normals
   Q.Normal = new Array();
   for (var i = 0; i < Q.Edge.length; i++) Q.Normal[i] = CalcNormal(Q[Q.Edge[i][0]].V, Q[Q.Edge[i][1]].V, Q[Q.Edge[i][2]].V);
-  
+
   // line drawn ?
   Q.Line = [false,false,false,false,false,false,false,false,false,false,false,false];
-  
+
   // create line pixels
   Q.NumPx = 9 * 2 * CubeSize;
-  for (var i = 0; i < Q.NumPx; i++) CreateP(0,0,0);
-  
+  Q.LinePixels = new Array()
+  for (var i = 0; i < Q.NumPx; i++) Q.LinePixels.push(new CreateP(0,0,0));
+
   MTrans = Translate(MTrans, Origin.V[0], Origin.V[1], Origin.V[2]);
   MQube = MMulti(MTrans, MQube);
 
@@ -328,7 +329,7 @@
   DrawQube();
   Testing.Init = true;
   Loop();
-  
+
   // Perform a simple sum-based verification.
   var sum = 0;
   for (var i = 0; i < Q.length; ++i) {