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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "alasql",
3
3
  "description": "AlaSQL - JavaScript SQL database and data manipulation library",
4
- "version": "0.0.51",
4
+ "version": "0.0.52",
5
5
  "author": "Andrey Gershun <agershun@gmail.com>",
6
6
  "directories": {
7
7
  "example": "examples",
@@ -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
 
package/src/10start.js CHANGED
@@ -78,5 +78,5 @@ var alasql = function(sql, params, cb, scope) {
78
78
  };
79
79
 
80
80
  /** Current version of alasql */
81
- alasql.version = "0.0.51";
81
+ alasql.version = "0.0.52";
82
82
 
package/src/15utility.js CHANGED
@@ -565,11 +565,11 @@ var cloneDeep = utils.cloneDeep = function cloneDeep(obj) {
565
565
  if(obj == null || typeof(obj) != 'object')
566
566
  return obj;
567
567
 
568
- var temp = obj.constructor(); // changed
568
+ var temp = (Object.prototype.hasOwnProperty.call(obj, 'constructor') ? Object : obj.constructor)(); // changed
569
569
 
570
570
  for(var key in obj) {
571
571
  if(obj.hasOwnProperty(key)) {
572
- temp[key] = cloneDeep(obj[key]);
572
+ /* 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]); }
573
573
  }
574
574
  }
575
575
  return temp;
@@ -649,7 +649,7 @@ var extend = utils.extend = function extend (a,b){
649
649
  if(typeof a == 'undefined') a = {};
650
650
  for(var key in b) {
651
651
  if(b.hasOwnProperty(key)) {
652
- a[key] = b[key]
652
+ /* 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]; }
653
653
  }
654
654
  }
655
655
  return a;
package/src/424select.js CHANGED
@@ -60,7 +60,7 @@ function compileSelectStar (query,alias) {
60
60
  // console.log(60,alias,columns);
61
61
 
62
62
  // if column not exists, then copy all
63
- sp += 'var w=p["'+alias+'"];for(var k in w){r[k]=w[k]};';
63
+ 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]};';
64
64
  //console.log(777, sp);
65
65
  query.dirtyColumns = true;
66
66
  }
@@ -233,7 +233,7 @@ yy.Select.prototype.compileSelectGroup1 = function(query) {
233
233
  self.columns.forEach(function(col,idx){
234
234
  // console.log(col);
235
235
  if(col instanceof yy.Column && col.columnid == '*') {
236
- // s += 'for(var k in g){r[k]=g[k]};';
236
+ // s += 'for(var k in g){if(/^__proto__$/.test(k))Object.defineProperty(r,k,{writable:true,enumerable:true,configurable:true});r[k]=g[k]};';
237
237
  s += 'for(var k in this.query.groupColumns){r[k]=g[this.query.groupColumns[k]]};';
238
238
  // console.log(query);
239
239
  } else {
package/src/70insert.js CHANGED
@@ -132,7 +132,7 @@ yy.Insert.prototype.compile = function (databaseid) {
132
132
  });
133
133
  } else {
134
134
  // console.log(222,values);
135
- // sw = 'var w='+JSONtoJavaScript(values)+';for(var k in w){r[k]=w[k]};';
135
+ // 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]};';
136
136
  sw = JSONtoJavaScript(values);
137
137
  }
138
138
  }