@@ -210794,7 +210794,7 @@ run();
210794210794
210795210795
210796210796// Generated by CoffeeScript 1.7.1
210797- var Database, NULL, SQLite, Statement, apiTemp, i, sqlite3_bind_blob, sqlite3_bind_double, sqlite3_bind_int, sqlite3_bind_parameter_index, sqlite3_bind_text, sqlite3_clear_bindings, sqlite3_close_v2, sqlite3_column_blob, sqlite3_column_bytes, sqlite3_column_double, sqlite3_column_name, sqlite3_column_text, sqlite3_column_type, sqlite3_data_count, sqlite3_errmsg, sqlite3_exec, sqlite3_finalize, sqlite3_free, sqlite3_open, sqlite3_prepare_v2, sqlite3_reset, sqlite3_step;
210797+ var Database, NULL, SQLite, Statement, apiTemp, i, sqlite3_bind_blob, sqlite3_bind_double, sqlite3_bind_int, sqlite3_bind_parameter_index, sqlite3_bind_text, sqlite3_clear_bindings, sqlite3_close_v2, sqlite3_column_blob, sqlite3_column_bytes, sqlite3_column_double, sqlite3_column_name, sqlite3_column_text, sqlite3_column_type, sqlite3_data_count, sqlite3_errmsg, sqlite3_exec, sqlite3_finalize, sqlite3_free, sqlite3_open, sqlite3_prepare_v2, sqlite3_prepare_v2_sqlptr, sqlite3_reset, sqlite3_step;
210798210798
210799210799apiTemp = Runtime.stackAlloc(4);
210800210800
@@ -211238,24 +211238,25 @@ Database = (function() {
211238211238 */
211239211239
211240211240 Database.prototype['exec'] = function(sql) {
211241- var curresult, err, results, sqlstr, stmt, _i, _len, _ref ;
211241+ var curresult, nextSqlPtr, pStmt, pzTail, results, stack, stmt ;
211242211242 if (!this.db) {
211243211243 throw "Database closed";
211244211244 }
211245+ stack = Runtime.stackSave();
211246+ nextSqlPtr = Runtime.stackAlloc(sql.length << 2 + 1);
211247+ writeStringToMemory(sql, nextSqlPtr);
211248+ pzTail = Runtime.stackAlloc(4);
211245211249 results = [];
211246- _ref = sql.split(';');
211247- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
211248- sqlstr = _ref[_i];
211249- try {
211250- stmt = this['prepare'](sqlstr);
211251- } catch (_error) {
211252- err = _error;
211253- if (err === 'Nothing to prepare') {
211254- continue;
211255- } else {
211256- throw err;
211257- }
211250+ while (getValue(nextSqlPtr, 'i8') !== NULL) {
211251+ setValue(apiTemp, 0, 'i32');
211252+ setValue(pzTail, 0, 'i32');
211253+ this.handleError(sqlite3_prepare_v2_sqlptr(this.db, nextSqlPtr, -1, apiTemp, pzTail));
211254+ pStmt = getValue(apiTemp, 'i32');
211255+ nextSqlPtr = getValue(pzTail, 'i32');
211256+ if (pStmt === NULL) {
211257+ continue;
211258211258 }
211259+ stmt = new Statement(pStmt, this);
211259211260 curresult = null;
211260211261 while (stmt['step']()) {
211261211262 if (curresult === null) {
@@ -211269,6 +211270,7 @@ Database = (function() {
211269211270 }
211270211271 stmt['free']();
211271211272 }
211273+ Runtime.stackRestore(stack);
211272211274 return results;
211273211275 };
211274211276
@@ -211411,6 +211413,8 @@ sqlite3_free = Module['cwrap']('sqlite3_free', '', ['number']);
211411211413
211412211414sqlite3_prepare_v2 = Module['cwrap']('sqlite3_prepare_v2', 'number', ['number', 'string', 'number', 'number', 'number']);
211413211415
211416+ sqlite3_prepare_v2_sqlptr = Module['cwrap']('sqlite3_prepare_v2', 'number', ['number', 'number', 'number', 'number', 'number']);
211417+
211414211418sqlite3_bind_text = Module['cwrap']('sqlite3_bind_text', 'number', ['number', 'number', 'number', 'number', 'number']);
211415211419
211416211420sqlite3_bind_blob = Module['cwrap']('sqlite3_bind_blob', 'number', ['number', 'number', 'number', 'number', 'number']);
0 commit comments