alasql 0.0.51 → 0.0.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/alasql.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // alasql.js
3
3
  // AlaSQL - JavaScript SQL database
4
4
  // Date: 22.04.2015
5
- // Version: 0.0.50
5
+ // Version: 0.0.52
6
6
  // (ñ) 2014-2015, Andrey Gershun
7
7
  //
8
8
 
@@ -111,7 +111,7 @@ var alasql = function(sql, params, cb, scope) {
111
111
  };
112
112
 
113
113
  /** Current version of alasql */
114
- alasql.version = "0.0.51";
114
+ alasql.version = "0.0.52";
115
115
 
116
116
 
117
117
 
@@ -3028,11 +3028,11 @@ var cloneDeep = utils.cloneDeep = function cloneDeep(obj) {
3028
3028
  if(obj == null || typeof(obj) != 'object')
3029
3029
  return obj;
3030
3030
 
3031
- var temp = obj.constructor(); // changed
3031
+ var temp = (Object.prototype.hasOwnProperty.call(obj, 'constructor') ? Object : obj.constructor)(); // changed
3032
3032
 
3033
3033
  for(var key in obj) {
3034
3034
  if(obj.hasOwnProperty(key)) {
3035
- temp[key] = cloneDeep(obj[key]);
3035
+ /* A "__proto__" key from parsed data is copied as data, never as the prototype */ if (key === '__proto__') { Object.defineProperty(temp, key, {value: cloneDeep(obj[key]), writable: true, enumerable: true, configurable: true}); } else { temp[key] = cloneDeep(obj[key]); }
3036
3036
  }
3037
3037
  }
3038
3038
  return temp;
@@ -3112,7 +3112,7 @@ var extend = utils.extend = function extend (a,b){
3112
3112
  if(typeof a == 'undefined') a = {};
3113
3113
  for(var key in b) {
3114
3114
  if(b.hasOwnProperty(key)) {
3115
- a[key] = b[key]
3115
+ /* A "__proto__" key from parsed data is copied as data, never as the prototype */ if (key === '__proto__') { Object.defineProperty(a, key, {value: b[key], writable: true, enumerable: true, configurable: true}); } else { a[key] = b[key]; }
3116
3116
  }
3117
3117
  }
3118
3118
  return a;
@@ -6443,7 +6443,7 @@ function compileSelectStar (query,alias) {
6443
6443
  // console.log(60,alias,columns);
6444
6444
 
6445
6445
  // if column not exists, then copy all
6446
- sp += 'var w=p["'+alias+'"];for(var k in w){r[k]=w[k]};';
6446
+ sp += 'var w=p["'+alias+'"];for(var k in w){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=w[k]};';
6447
6447
  //console.log(777, sp);
6448
6448
  query.dirtyColumns = true;
6449
6449
  }
@@ -6616,7 +6616,7 @@ yy.Select.prototype.compileSelectGroup1 = function(query) {
6616
6616
  self.columns.forEach(function(col,idx){
6617
6617
  // console.log(col);
6618
6618
  if(col instanceof yy.Column && col.columnid == '*') {
6619
- // s += 'for(var k in g){r[k]=g[k]};';
6619
+ // s += 'for(var k in g){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
6620
6620
  s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};';
6621
6621
  // console.log(query);
6622
6622
  } else {
@@ -9538,7 +9538,7 @@ yy.Insert.prototype.compile = function (databaseid) {
9538
9538
  });
9539
9539
  } else {
9540
9540
  // console.log(222,values);
9541
- // sw = 'var w='+JSONtoJavaScript(values)+';for(var k in w){r[k]=w[k]};';
9541
+ // sw = 'var w='+JSONtoJavaScript(values)+';for(var k in w){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=w[k]};';
9542
9542
  sw = JSONtoJavaScript(values);
9543
9543
  }
9544
9544
  }
package/console/alasql.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // alasql.js
3
3
  // AlaSQL - JavaScript SQL database
4
4
  // Date: 16.04.2015
5
- // Version: 0.0.47
5
+ // Version: 0.0.52
6
6
  // (ñ) 2014-2015, Andrey Gershun
7
7
  //
8
8
 
@@ -111,7 +111,7 @@ var alasql = function(sql, params, cb, scope) {
111
111
  };
112
112
 
113
113
  /** Current version of alasql */
114
- alasql.version = "0.0.47";
114
+ alasql.version = "0.0.52";
115
115
 
116
116
 
117
117
 
@@ -2964,11 +2964,11 @@ var cloneDeep = utils.cloneDeep = function cloneDeep(obj) {
2964
2964
  if(obj == null || typeof(obj) != 'object')
2965
2965
  return obj;
2966
2966
 
2967
- var temp = obj.constructor(); // changed
2967
+ var temp = (Object.prototype.hasOwnProperty.call(obj, 'constructor') ? Object : obj.constructor)(); // changed
2968
2968
 
2969
2969
  for(var key in obj) {
2970
2970
  if(obj.hasOwnProperty(key)) {
2971
- temp[key] = cloneDeep(obj[key]);
2971
+ /* A "__proto__" key from parsed data is copied as data, never as the prototype */ if (key === '__proto__') { Object.defineProperty(temp, key, {value: cloneDeep(obj[key]), writable: true, enumerable: true, configurable: true}); } else { temp[key] = cloneDeep(obj[key]); }
2972
2972
  }
2973
2973
  }
2974
2974
  return temp;
@@ -3048,7 +3048,7 @@ var extend = utils.extend = function extend (a,b){
3048
3048
  if(typeof a == 'undefined') a = {};
3049
3049
  for(key in b) {
3050
3050
  if(b.hasOwnProperty(key)) {
3051
- a[key] = b[key]
3051
+ /* A "__proto__" key from parsed data is copied as data, never as the prototype */ if (key === '__proto__') { Object.defineProperty(a, key, {value: b[key], writable: true, enumerable: true, configurable: true}); } else { a[key] = b[key]; }
3052
3052
  }
3053
3053
  }
3054
3054
  return a;
@@ -6230,7 +6230,7 @@ function compileSelectStar (query,alias) {
6230
6230
  //console.log(999,columns);
6231
6231
  } else {
6232
6232
  // if column not exists, then copy all
6233
- sp += 'var w=p["'+alias+'"];for(var k in w){r[k]=w[k]};';
6233
+ sp += 'var w=p["'+alias+'"];for(var k in w){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=w[k]};';
6234
6234
  //console.log(777, sp);
6235
6235
  query.dirtyColumns = true;
6236
6236
  }
@@ -6403,7 +6403,7 @@ yy.Select.prototype.compileSelectGroup1 = function(query) {
6403
6403
  self.columns.forEach(function(col,idx){
6404
6404
  // console.log(col);
6405
6405
  if(col instanceof yy.Column && col.columnid == '*') {
6406
- // s += 'for(var k in g){r[k]=g[k]};';
6406
+ // s += 'for(var k in g){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
6407
6407
  s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};';
6408
6408
  // console.log(query);
6409
6409
  } else {
@@ -9169,7 +9169,7 @@ yy.Insert.prototype.compile = function (databaseid) {
9169
9169
  });
9170
9170
  } else {
9171
9171
  // console.log(222,values);
9172
- // sw = 'var w='+JSONtoJavaScript(values)+';for(var k in w){r[k]=w[k]};';
9172
+ // sw = 'var w='+JSONtoJavaScript(values)+';for(var k in w){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=w[k]};';
9173
9173
  sw = JSONtoJavaScript(values);
9174
9174
  }
9175
9175
  }