From 5f0da9deb8b878534895732219d0cb3ac2ec2221 Mon Sep 17 00:00:00 2001
From: Tom French <tom@tomfren.ch>
Date: Fri, 29 Jul 2022 00:13:07 +0100
Subject: [PATCH] fix: replace last usages of | 0

---
 packages/desktop-electron/index.js                 |  4 ++--
 packages/loot-core/bin/profile-sql.js              | 14 +++++++-------
 .../loot-core/src/client/query-helpers.test.js     |  2 +-
 packages/loot-core/src/mocks/budget.js             | 10 +++++-----
 packages/loot-core/src/mocks/index.js              |  8 ++++----
 .../src/server/aql/schema/executors.test.js        |  2 +-
 packages/loot-core/src/server/crdt/merkle.js       |  2 +-
 packages/loot-core/src/server/db/sort.js           |  2 +-
 .../src/server/sync/sync.property.test.js          |  2 +-
 packages/loot-design/src/parse-figma-theme.js      |  2 +-
 packages/loot-design/src/setupTests.js             |  4 ++--
 11 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/packages/desktop-electron/index.js b/packages/desktop-electron/index.js
index 91c38fd22..3ef5c6d4a 100644
--- a/packages/desktop-electron/index.js
+++ b/packages/desktop-electron/index.js
@@ -362,8 +362,8 @@ ipcMain.on('screenshot', () => {
     let width = 1100;
 
     // This is for the main screenshot inside the frame
-    clientWin.setSize(width, (width * (427 / 623)) | 0);
-    // clientWin.setSize(width, (width * (495 / 700)) | 0);
+    clientWin.setSize(width, Math.floor(width * (427 / 623)));
+    // clientWin.setSize(width, Math.floor(width * (495 / 700)));
   }
 });
 
diff --git a/packages/loot-core/bin/profile-sql.js b/packages/loot-core/bin/profile-sql.js
index a56f3f10a..eff238545 100755
--- a/packages/loot-core/bin/profile-sql.js
+++ b/packages/loot-core/bin/profile-sql.js
@@ -35,31 +35,31 @@ async function init() {
     for (let i = 0; i < 100; i++) {
       if (Math.random() < 0.02) {
         let parent = {
-          date: '2020-01-' + pad((Math.random() * 30) | 0),
-          amount: (Math.random() * 10000) | 0,
+          date: '2020-01-' + pad(Math.floor(Math.random() * 30)),
+          amount: Math.floor(Math.random() * 10000),
           account: accounts[0].id,
           notes: 'foo'
         };
         db.insertTransaction(parent);
         db.insertTransaction(
           makeChild(parent, {
-            amount: (Math.random() * 1000) | 0
+            amount: Math.floor(Math.random() * 1000) 
           })
         );
         db.insertTransaction(
           makeChild(parent, {
-            amount: (Math.random() * 1000) | 0
+            amount: Math.floor(Math.random() * 1000) 
           })
         );
         db.insertTransaction(
           makeChild(parent, {
-            amount: (Math.random() * 1000) | 0
+            amount: Math.floor(Math.random() * 1000) 
           })
         );
       } else {
         db.insertTransaction({
-          date: '2020-01-' + pad((Math.random() * 30) | 0),
-          amount: (Math.random() * 10000) | 0,
+          date: '2020-01-' + pad(Math.floor(Math.random() * 30)),
+          amount: Math.floor(Math.random() * 10000),
           account: accounts[0].id
         });
       }
diff --git a/packages/loot-core/src/client/query-helpers.test.js b/packages/loot-core/src/client/query-helpers.test.js
index 0c68ccba5..0eba14bc5 100644
--- a/packages/loot-core/src/client/query-helpers.test.js
+++ b/packages/loot-core/src/client/query-helpers.test.js
@@ -93,7 +93,7 @@ function initBasicServer(delay) {
 function initPagingServer(dataLength, { delay, eventType = 'select' } = {}) {
   let data = [];
   for (let i = 0; i < dataLength; i++) {
-    data.push({ id: i, date: subDays('2020-05-01', (i / 5) | 0) });
+    data.push({ id: i, date: subDays('2020-05-01', Math.floor(i / 5)) });
   }
 
   initServer({
diff --git a/packages/loot-core/src/mocks/budget.js b/packages/loot-core/src/mocks/budget.js
index 60e51b7e2..1a1dd18fd 100644
--- a/packages/loot-core/src/mocks/budget.js
+++ b/packages/loot-core/src/mocks/budget.js
@@ -11,7 +11,7 @@ import * as monthUtils from '../shared/months';
 import q from '../shared/query';
 
 function pickRandom(list) {
-  return list[((Math.random() * list.length) | 0) % list.length];
+  return list[Math.floor(Math.random() * list.length) % list.length];
 }
 
 function number(start, end) {
@@ -19,7 +19,7 @@ function number(start, end) {
 }
 
 function integer(start, end) {
-  return number(start, end) | 0;
+  return Math.round(number(start, end));
 }
 
 function findMin(items, field) {
@@ -104,7 +104,7 @@ async function fillPrimaryChecking(handlers, account, payees, groups) {
       amount,
       payee: payee.id,
       account: account.id,
-      date: monthUtils.subDays(monthUtils.currentDay(), (i / 3) | 0),
+      date: monthUtils.subDays(monthUtils.currentDay(), Math.floor(i / 3)),
       category: category.id
     };
     transactions.push(transaction);
@@ -244,7 +244,7 @@ async function fillChecking(handlers, account, payees, groups) {
       amount,
       payee: payee.id,
       account: account.id,
-      date: monthUtils.subDays(monthUtils.currentDay(), (i * 2) | 0),
+      date: monthUtils.subDays(monthUtils.currentDay(), i * 2),
       category: category.id
     });
   }
@@ -334,7 +334,7 @@ async function fillSavings(handlers, account, payees, groups) {
       amount,
       payee: payee.id,
       account: account.id,
-      date: monthUtils.subDays(monthUtils.currentDay(), (i * 5) | 0),
+      date: monthUtils.subDays(monthUtils.currentDay(), i * 5),
       category: category.id
     });
   }
diff --git a/packages/loot-core/src/mocks/index.js b/packages/loot-core/src/mocks/index.js
index ed2b174ed..b63d50b18 100644
--- a/packages/loot-core/src/mocks/index.js
+++ b/packages/loot-core/src/mocks/index.js
@@ -6,9 +6,9 @@ export function generateAccount(name, isConnected, type, offbudget) {
   return {
     id: uuid.v4Sync(),
     name,
-    balance_current: isConnected ? (Math.random() * 100000) | 0 : null,
-    bank: isConnected ? (Math.random() * 10000) | 0 : null,
-    bankId: isConnected ? (Math.random() * 10000) | 0 : null,
+    balance_current: isConnected ? Math.floor(Math.random() * 100000): null,
+    bank: isConnected ? Math.floor(Math.random() * 10000): null,
+    bankId: isConnected ? Math.floor(Math.random() * 10000): null,
     bankName: isConnected ? 'boa' : null,
     type: type || 'checking',
     offbudget: offbudget ? 1 : 0,
@@ -54,7 +54,7 @@ function _generateTransaction(data) {
   const id = data.id || uuid.v4Sync();
   return {
     id: id,
-    amount: data.amount || (Math.random() * 10000 - 7000) | 0,
+    amount: data.amount || Math.floor(Math.random() * 10000 - 7000),
     payee: data.payee || (Math.random() < 0.9 ? 'payed-to' : 'guy'),
     notes:
       Math.random() < 0.1 ? 'A really long note that should overflow' : 'Notes',
diff --git a/packages/loot-core/src/server/aql/schema/executors.test.js b/packages/loot-core/src/server/aql/schema/executors.test.js
index 69953581a..528cad82f 100644
--- a/packages/loot-core/src/server/aql/schema/executors.test.js
+++ b/packages/loot-core/src/server/aql/schema/executors.test.js
@@ -91,7 +91,7 @@ function expectTransactionOrder(data, fields) {
 }
 
 async function expectPagedData(query, numTransactions, allData) {
-  let pageCount = Math.max((numTransactions / 3) | 0, 3);
+  let pageCount = Math.max(Math.floor(numTransactions / 3), 3);
   let pagedData = [];
   let done = false;
 
diff --git a/packages/loot-core/src/server/crdt/merkle.js b/packages/loot-core/src/server/crdt/merkle.js
index 8c0206beb..e9f886a56 100644
--- a/packages/loot-core/src/server/crdt/merkle.js
+++ b/packages/loot-core/src/server/crdt/merkle.js
@@ -22,7 +22,7 @@ export function keyToTimestamp(key) {
 
 export function insert(trie, timestamp) {
   let hash = timestamp.hash();
-  let key = Number((timestamp.millis() / 1000 / 60) | 0).toString(3);
+  let key = Number(Math.floor(timestamp.millis() / 1000 / 60)).toString(3);
 
   trie = Object.assign({}, trie, { hash: trie.hash ^ hash });
   return insertKey(trie, key, hash);
diff --git a/packages/loot-core/src/server/db/sort.js b/packages/loot-core/src/server/db/sort.js
index ede6a362d..7106b74a5 100644
--- a/packages/loot-core/src/server/db/sort.js
+++ b/packages/loot-core/src/server/db/sort.js
@@ -34,7 +34,7 @@ export function shoveSortOrders(items, targetId) {
   } else {
     if (target.sort_order - (before ? before.sort_order : 0) <= 2) {
       let next = to;
-      let order = (items[next].sort_order | 0) + SORT_INCREMENT;
+      let order = Math.floor(items[next].sort_order) + SORT_INCREMENT;
       while (next < items.length) {
         // No need to update it if it's already greater than the current
         // order. This can happen because there may already be large
diff --git a/packages/loot-core/src/server/sync/sync.property.test.js b/packages/loot-core/src/server/sync/sync.property.test.js
index 6ccfe6395..26aa452d8 100644
--- a/packages/loot-core/src/server/sync/sync.property.test.js
+++ b/packages/loot-core/src/server/sync/sync.property.test.js
@@ -171,7 +171,7 @@ function shuffle(arr) {
   let shuffled = new Array(src.length);
   let item;
   while ((item = src.pop())) {
-    let idx = (Math.random() * shuffled.length) | 0;
+    let idx = Math.floor(Math.random() * shuffled.length);
     if (shuffled[idx]) {
       src.push(item);
     } else {
diff --git a/packages/loot-design/src/parse-figma-theme.js b/packages/loot-design/src/parse-figma-theme.js
index 87953888e..39e7de606 100644
--- a/packages/loot-design/src/parse-figma-theme.js
+++ b/packages/loot-design/src/parse-figma-theme.js
@@ -7,7 +7,7 @@ let groups = ['y', 'r', 'b', 'n', 'g', 'p'];
 let colors = {};
 
 list.forEach((color, idx) => {
-  const group = (idx / 11) | 0;
+  const group = Math.floor(idx / 11);
   const n = idx % 11;
 
   colors[groups[group] + (n + 1)] = color;
diff --git a/packages/loot-design/src/setupTests.js b/packages/loot-design/src/setupTests.js
index 444eeeeed..c92384587 100644
--- a/packages/loot-design/src/setupTests.js
+++ b/packages/loot-design/src/setupTests.js
@@ -24,11 +24,11 @@ global.Date.now = () => 123456789;
 
 let seqId = 1;
 uuid.v4 = function() {
-  return Promise.resolve('testing-uuid-' + ((Math.random() * 1000000) | 0));
+  return Promise.resolve('testing-uuid-' + Math.floor(Math.random() * 1000000));
 };
 
 uuid.v4Sync = function() {
-  return 'testing-uuid-' + ((Math.random() * 1000000) | 0);
+  return 'testing-uuid-' + Math.floor(Math.random() * 1000000);
 };
 
 global.__resetWorld = () => {
-- 
GitLab