Skip to content

Commit 5893ffd

Browse files
committed
- tighten eslint-rule "vars-on-top": "on" to prevent test-writers from haphazardly leaving var-statements all over test-code
1 parent c8b724e commit 5893ffd

21 files changed

+215
-163
lines changed

.eslintrc.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ module.exports = {
3030
rules: {
3131
// reason - sqlite exposes functions with underscore-naming-convention
3232
camelcase: "off",
33+
// reason - They make it easier to add new elements to arrays
34+
// and parameters to functions, and make commit diffs clearer
3335
"comma-dangle": "off",
3436
// reason - string-notation needed to prevent closure-minifier
3537
// from mangling property-name
@@ -67,7 +69,6 @@ module.exports = {
6769
// single-quotes
6870
quotes: ["error", "double"],
6971
// reason - allow top-level "use-strict" in commonjs-modules
70-
strict: ["error", "safe"],
71-
"vars-on-top": "off"
72+
strict: ["error", "safe"]
7273
}
7374
};

src/api.js

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -762,15 +762,20 @@ Module["onRuntimeInitialized"] = function onRuntimeInitialized() {
762762
*/
763763
Database.prototype["exec"] = function exec(sql, params) {
764764
var curresult;
765+
var nextSqlPtr;
766+
var pStmt;
767+
var pzTail;
768+
var results;
769+
var stack;
765770
var stmt;
766771
if (!this.db) {
767772
throw "Database closed";
768773
}
769-
var stack = stackSave();
774+
stack = stackSave();
770775
try {
771-
var nextSqlPtr = allocateUTF8OnStack(sql);
772-
var pzTail = stackAlloc(4);
773-
var results = [];
776+
nextSqlPtr = allocateUTF8OnStack(sql);
777+
pzTail = stackAlloc(4);
778+
results = [];
774779
while (getValue(nextSqlPtr, "i8") !== NULL) {
775780
setValue(apiTemp, 0, "i32");
776781
setValue(pzTail, 0, "i32");
@@ -782,7 +787,7 @@ Module["onRuntimeInitialized"] = function onRuntimeInitialized() {
782787
pzTail
783788
));
784789
// pointer to a statement, or null
785-
var pStmt = getValue(apiTemp, "i32");
790+
pStmt = getValue(apiTemp, "i32");
786791
nextSqlPtr = getValue(pzTail, "i32");
787792
// Empty statement
788793
if (pStmt !== NULL) {
@@ -963,21 +968,27 @@ Module["onRuntimeInitialized"] = function onRuntimeInitialized() {
963968
) {
964969
var func_ptr;
965970
function wrapped_func(cx, argc, argv) {
971+
var arg;
972+
var args;
973+
var blobptr;
974+
var i;
975+
var j;
966976
var result;
977+
var value_ptr;
978+
var value_type;
967979
function extract_blob(ptr) {
968980
var size = sqlite3_value_bytes(ptr);
969981
var blob_ptr = sqlite3_value_blob(ptr);
970982
var blob_arg = new Uint8Array(size);
971-
for (var j = 0; j < size; j += 1) {
983+
for (j = 0; j < size; j += 1) {
972984
blob_arg[j] = HEAP8[blob_ptr + j];
973985
}
974986
return blob_arg;
975987
}
976-
var args = [];
977-
for (var i = 0; i < argc; i += 1) {
978-
var value_ptr = getValue(argv + (4 * i), "i32");
979-
var value_type = sqlite3_value_type(value_ptr);
980-
var arg;
988+
args = [];
989+
for (i = 0; i < argc; i += 1) {
990+
value_ptr = getValue(argv + (4 * i), "i32");
991+
value_type = sqlite3_value_type(value_ptr);
981992
if (
982993
value_type === SQLITE_INTEGER
983994
|| value_type === SQLITE_FLOAT
@@ -1010,7 +1021,7 @@ Module["onRuntimeInitialized"] = function onRuntimeInitialized() {
10101021
if (result === null) {
10111022
sqlite3_result_null(cx);
10121023
} else if (result.length != null) {
1013-
var blobptr = allocate(result, "i8", ALLOC_NORMAL);
1024+
blobptr = allocate(result, "i8", ALLOC_NORMAL);
10141025
sqlite3_result_blob(cx, blobptr, result.length, -1);
10151026
_free(blobptr);
10161027
} else {

src/worker.js

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,30 @@
55
"use strict";
66

77
var db;
8+
var sqlModuleReady;
89

910
function onModuleReady(SQL) {
10-
function createDb(data) {
11+
var buff;
12+
var data;
13+
var result;
14+
function createDb(data2) {
1115
if (db != null) db.close();
12-
db = new SQL.Database(data);
16+
db = new SQL.Database(data2);
1317
return db;
1418
}
15-
16-
var buff; var data; var result;
19+
function callback(row) {
20+
return postMessage({
21+
id: data["id"],
22+
row: row,
23+
finished: false
24+
});
25+
}
26+
function done() {
27+
return postMessage({
28+
id: data["id"],
29+
finished: true
30+
});
31+
}
1732
data = this["data"];
1833
switch (data && data["action"]) {
1934
case "open":
@@ -38,19 +53,6 @@ function onModuleReady(SQL) {
3853
if (db === null) {
3954
createDb();
4055
}
41-
var callback = function callback(row) {
42-
return postMessage({
43-
id: data["id"],
44-
row: row,
45-
finished: false
46-
});
47-
};
48-
var done = function done() {
49-
return postMessage({
50-
id: data["id"],
51-
finished: true
52-
});
53-
};
5456
return db.each(data["sql"], data["params"], callback, done);
5557
case "export":
5658
buff = db["export"]();
@@ -84,7 +86,7 @@ function onError(err) {
8486

8587
if (typeof importScripts === "function") {
8688
db = null;
87-
var sqlModuleReady = initSqlJs();
89+
sqlModuleReady = initSqlJs();
8890
self.onmessage = function onmessage(event) {
8991
return sqlModuleReady
9092
.then(onModuleReady.bind(event))

test/all.js

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,30 @@
11
"use strict";
22

3-
var fs = require("fs");
3+
var fs;
4+
var sqlLibType;
5+
var sqlLibLoader;
6+
7+
fs = require("fs");
8+
9+
sqlLibType = process.argv[2];
10+
sqlLibLoader = require("./load_sql_lib");
411

512
Error.stackTraceLimit = 200;
6-
var sqlLibType = process.argv[2];
7-
var sqlLibLoader = require("./load_sql_lib");
813

914
sqlLibLoader(sqlLibType).then(function (sql) {
10-
var files = fs.readdirSync(__dirname);
11-
for (var i = 0; i < files.length; i += 1) {
12-
var file = files[i];
13-
var m = /^test_(.+)\.js$/.exec(file);
15+
var file;
16+
var files;
17+
var i;
18+
var m;
19+
var name;
20+
var testModule;
21+
files = fs.readdirSync(__dirname);
22+
for (i = 0; i < files.length; i += 1) {
23+
file = files[i];
24+
m = /^test_(.+)\.js$/.exec(file);
1425
if (m !== null) {
15-
var name = m[1];
16-
var testModule = require("./" + file);
26+
name = m[1];
27+
testModule = require("./" + file);
1728
if (testModule.test) {
1829
exports["test " + name] = testModule.test.bind(null, sql);
1930
}

test/disabled_test_memory_leak_on_error.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,14 @@
33
"use strict";
44

55
exports.test = function (sql, assert) {
6-
var errors = 0; var
7-
runs = 10000;
8-
for (var i = 0; i < runs; i += 1) {
9-
var db = new sql.Database();
6+
var db;
7+
var errors;
8+
var i;
9+
var runs;
10+
errors = 0;
11+
runs = 10000;
12+
for (i = 0; i < runs; i += 1) {
13+
db = new sql.Database();
1014
try {
1115
db.exec("CREATE TABLE cats (name TEXT NOT NULL, age INTEGER NULL)");
1216
db.exec("INSERT INTO cats (name, age) VALUES (NULL, 3)");
@@ -25,9 +29,7 @@ exports.test = function (sql, assert) {
2529
};
2630

2731
if (module === require.main) {
28-
var target_file = process.argv[2];
29-
var sql_loader = require("./load_sql_lib");
30-
sql_loader(target_file).then(function (sql) {
32+
require("./load_sql_lib")(process.argv[2]).then(function (sql) {
3133
require("test").run({
3234
"test memory leak on error": function (assert) {
3335
exports.test(sql, assert);

test/load_sql_lib.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
"use strict";
22

33
module.exports = function (sqlLibraryType) {
4+
var begin;
5+
var initSqlJs;
6+
var sqlJsLib;
47
// Use sql-wasm.js by default
5-
var sqlJsLib = (
8+
sqlJsLib = (
69
sqlLibraryType
710
? "../dist/sql-" + sqlLibraryType + ".js"
811
: "../dist/sql-wasm.js"
912
);
10-
var begin = new Date();
11-
var initSqlJs = require(sqlJsLib);
13+
begin = new Date();
14+
initSqlJs = require(sqlJsLib);
1215
return initSqlJs().then(function (sql) {
1316
console.log(
1417
"Loaded and inited "

test/test_blob.js

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,35 @@
11
"use strict";
22

33
exports.test = function (SQL, assert) {
4-
var db = new SQL.Database();
4+
var array;
5+
var bigArray;
6+
var db;
7+
var i;
58
var res;
69
var stmt;
10+
11+
db = new SQL.Database();
712
// Insert binary data. This is invalid UTF8 on purpose
813
db.exec(
914
"CREATE TABLE test (data); INSERT INTO test VALUES (x'6162ff'),(x'00')"
1015
);
1116

1217
stmt = db.prepare("INSERT INTO test VALUES (?)");
13-
var bigArray = new Uint8Array(1e6);
18+
bigArray = new Uint8Array(1e6);
1419
bigArray[500] = 0x42;
1520
stmt.run([bigArray]);
1621

1722
stmt = db.prepare("SELECT * FROM test ORDER BY length(data) DESC");
1823

1924
stmt.step();
20-
var array = stmt.get()[0];
25+
array = stmt.get()[0];
2126
assert.equal(
2227
array.length,
2328
bigArray.length,
2429
"BLOB read from the database should be the same size"
2530
+ " as the one that was inserted"
2631
);
27-
for (var i = 0; i < array.length; i += 1) {
32+
for (i = 0; i < array.length; i += 1) {
2833
// Avoid doing 1e6 assert, to not pollute the console
2934
if (array[i] !== bigArray[i]) {
3035
assert.fail(
@@ -57,9 +62,7 @@ exports.test = function (SQL, assert) {
5762
};
5863

5964
if (module === require.main) {
60-
var target_file = process.argv[2];
61-
var sql_loader = require("./load_sql_lib");
62-
sql_loader(target_file).then(function (sql) {
65+
require("./load_sql_lib")(process.argv[2]).then(function (sql) {
6366
require("test").run({
6467
"test blob": function (assert) {
6568
exports.test(sql, assert);

test/test_database.js

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
"use strict";
22

33
exports.test = function (SQL, assert, done) {
4+
var binaryArray;
5+
var count;
6+
var db;
7+
var expectedResult;
8+
var finished;
49
var result;
510
var sqlstr;
611
var testTimeoutId;
12+
713
assert.notEqual(SQL.Database, undefined, "Should export a Database object");
814

915
// Create a database
10-
var db = new SQL.Database();
16+
db = new SQL.Database();
1117
assert.equal(
1218
Object.getPrototypeOf(db),
1319
SQL.Database.prototype,
@@ -24,7 +30,7 @@ exports.test = function (SQL, assert, done) {
2430
// Retrieving values
2531
sqlstr = "SELECT * FROM test;";
2632
result = db.exec(sqlstr);
27-
var expectedResult = [{
33+
expectedResult = [{
2834
columns: ["a", "b", "c", "d", "e"],
2935
values: [
3036
[null, 42, 4.2, "fourty two", new Uint8Array([0x42])]
@@ -34,32 +40,32 @@ exports.test = function (SQL, assert, done) {
3440

3541

3642
// Export the database to an Uint8Array containing the SQLite database file
37-
var binaryArray = db.export();
43+
binaryArray = db.export();
3844
assert.strictEqual(
3945
String.fromCharCode.apply(null, binaryArray.subarray(0, 6)),
4046
"SQLite",
4147
"The first 6 bytes of an SQLite database should form the word 'SQLite'"
4248
);
4349
db.close();
4450

45-
var db2 = new SQL.Database(binaryArray);
46-
result = db2.exec("SELECT * FROM test");
51+
db = new SQL.Database(binaryArray);
52+
result = db.exec("SELECT * FROM test");
4753
assert.deepEqual(
4854
result,
4955
expectedResult,
5056
"Exporting and re-importing the database should lead"
5157
+ " to the same database"
5258
);
53-
db2.close();
59+
db.close();
5460

5561
db = new SQL.Database();
5662
assert.deepEqual(db.exec("SELECT * FROM sqlite_master"),
5763
[],
5864
"Newly created databases should be empty");
5965
// Testing db.each
6066
db.run("CREATE TABLE test (a,b); INSERT INTO test VALUES (1,'a'),(2,'b')");
61-
var count = 0; var
62-
finished = false;
67+
count = 0;
68+
finished = false;
6369
db.each("SELECT * FROM test ORDER BY a", function callback(row) {
6470
count += 1;
6571
if (count === 1) {
@@ -101,9 +107,7 @@ exports.test = function (SQL, assert, done) {
101107
};
102108

103109
if (module === require.main) {
104-
var target_file = process.argv[2];
105-
var sql_loader = require("./load_sql_lib");
106-
sql_loader(target_file).then(function (sql) {
110+
require("./load_sql_lib")(process.argv[2]).then(function (sql) {
107111
require("test").run({
108112
"test database": function (assert, done) {
109113
exports.test(sql, assert, done);

0 commit comments

Comments
 (0)