@@ -104,22 +104,18 @@ parcelRequire = (function (modules, cache, entry, globalName) {
104104
105105 // Override the current require with this new one
106106 return newRequire;
107- })({"src/utils/index.js ":[function(require,module,exports) {
107+ })({"src/utils/index.ts ":[function(require,module,exports) {
108108"use strict";
109109
110- Object.defineProperty(exports, "__esModule", {
111-  value: true
112- });
113- exports.proxy = proxy;
114- exports.remove = remove;
115- exports.uniqueObjectKeys = uniqueObjectKeys;
116- exports.warn = exports.hasProto = exports.isObject = exports.isPlainObject = void 0;
117- 118110function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
119111
112+ exports.__esModule = true;
113+ 120114function proxy(target, key) {
121-  for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
122-  args[_key - 2] = arguments[_key];
115+  var args = [];
116+ 117+  for (var _i = 2; _i < arguments.length; _i++) {
118+  args[_i - 2] = arguments[_i];
123119 }
124120
125121 var get, set;
@@ -137,68 +133,58 @@ function proxy(target, key) {
137133 };
138134 }
139135
140-  Object.defineProperty(target, key, {
136+  return  Object.defineProperty(target, key, {
141137 enumerable: true,
142138 configurable: true,
143139 get: get,
144140 set: set
145141 });
146142}
147143
144+ exports.proxy = proxy;
145+ 148146function remove(arr, item) {
149147 if (arr.length) {
150148 var index = arr.indexOf(item);
151- 152-  if (index > -1) {
153-  return arr.splice(index, 1);
154-  }
149+  if (index > -1) return arr.splice(index, 1);
155150 }
156151}
157152
158- function uniqueObjectKeys(ob, target) {
159-  var targetKeys = Object.keys(ob[target]);
160- 161-  for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
162-  args[_key2 - 2] = arguments[_key2];
163-  }
153+ exports.remove = remove;
164154
165-  var destination = args.slice(0, args.length - 1); 
166-  var cb  = args[args.length - 1] ;
155+ function uniqueObjectKeys(ob, target, victims, cb) { 
156+  var targetKeys  = Object.keys(ob[target]) ;
167157
168158 for (var i = 0; i < targetKeys.length; i++) {
169159 var existsIn = false;
170160 var key = targetKeys[i];
171161
172-  for (var j = 0; j < destination .length; j++) {
173-  if (ob[destination [j]][key]) {
174-  existsIn = destination [j];
162+  for (var j = 0; j < victims .length; j++) {
163+  if (ob[victims [j]][key]) {
164+  existsIn = victims [j];
175165 break;
176166 }
177167 }
178168
179-  if (!existsIn) cb(key);else warn("(".concat( target,  " - '").concat( key,  "') is already defined in ").concat( existsIn) );
169+  if (!existsIn) cb(key);else exports. warn("(" +  target +  " - '" +  key +  "') is already defined in " +  existsIn);
180170 }
181171}
182172
183- var isPlainObject = function isPlainObject(obj) {
173+ exports.uniqueObjectKeys = uniqueObjectKeys;
174+ 175+ exports.isPlainObject = function (obj) {
184176 return toString.call(obj) === '[object Object]';
185177};
186178
187- exports.isPlainObject = isPlainObject;
188- 189- var isObject = function isObject(obj) {
179+ exports.isObject = function (obj) {
190180 return obj !== null && _typeof(obj) === 'object';
191181};
192182
193- exports.isObject = isObject;
194- var hasProto = '__proto__' in {};
195- exports.hasProto = hasProto;
183+ exports.hasProto = '__proto__' in {};
196184
197- var  warn = function warn (msg) {
198-  return console.error("[v-react warn]: ".concat( msg) );
185+ exports. warn = function (msg) {
186+  return console.error("[v-react warn]: " +  msg);
199187};
200- 201- exports.warn = warn;
202188},{}],"src/reactivity/dep.ts":[function(require,module,exports) {
203189"use strict";
204190
@@ -231,6 +217,8 @@ function () {
231217 };
232218
233219 Dep.prototype.notify = function () {
220+  console.log("notifying...", this.subs);
221+ 234222 for (var i = 0; i < this.subs.length; i++) {
235223 this.subs[i].update();
236224 }
@@ -255,7 +243,50 @@ function popTarget() {
255243}
256244
257245exports.popTarget = popTarget;
258- },{"../utils":"src/utils/index.js"}],"src/reactivity/observer.ts":[function(require,module,exports) {
246+ },{"../utils":"src/utils/index.ts"}],"src/reactivity/array.ts":[function(require,module,exports) {
247+ "use strict";
248+ 249+ exports.__esModule = true;
250+ 251+ function def(obj, key, val, enumerable) {
252+  Object.defineProperty(obj, key, {
253+  value: val,
254+  enumerable: !!enumerable,
255+  writable: true,
256+  configurable: true
257+  });
258+ }
259+ 260+ exports.def = def;
261+ /*
262+  * not type checking this file because flow doesn't play well with
263+  * dynamically accessing methods on Array prototype
264+  */
265+ 266+ var arrayProto = Array.prototype;
267+ exports.arrayMethods = Object.create(arrayProto);
268+ var methodsToPatch = ['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse'];
269+ /**
270+  * Intercept mutating methods and emit events
271+  */
272+ 273+ methodsToPatch.forEach(function (method) {
274+  // cache original method
275+  var original = arrayProto[method];
276+  var t = def(exports.arrayMethods, method, function mutator() {
277+  var args = [];
278+ 279+  for (var _i = 0; _i < arguments.length; _i++) {
280+  args[_i] = arguments[_i];
281+  }
282+ 283+  var result = original.apply(this, args);
284+  var ob = this.__ob__;
285+  ob.dep.notify();
286+  return result;
287+  }); // console.log(arrayMethods);
288+ });
289+ },{}],"src/reactivity/observer.ts":[function(require,module,exports) {
259290"use strict";
260291
261292function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
@@ -288,6 +319,8 @@ var utils_1 = require("../utils");
288319
289320var dep_1 = __importDefault(require("./dep"));
290321
322+ var array_1 = require("./array");
323+ 291324var Observer =
292325/** @class */
293326function () {
@@ -296,7 +329,14 @@ function () {
296329 this.value = null;
297330 this.dep = new dep_1["default"]();
298331 this.value = value;
299-  this.walk();
332+ 333+  if (Array.isArray(value)) {
334+  value.__proto__ = array_1.arrayMethods;
335+  this.observeArray(value);
336+  } else if (_typeof(value) == "object") {
337+  this.walk();
338+  }
339+ 300340 Object.defineProperty(value, "__ob__", {
301341 enumerable: false,
302342 value: this
@@ -311,11 +351,28 @@ function () {
311351 }
312352 };
313353
354+  Observer.prototype.observeArray = function (arr) {
355+  arr.forEach(function (item) {
356+  observe(item);
357+  });
358+  };
359+ 314360 return Observer;
315361}();
316362
317363exports.Observer = Observer;
318364
365+ function dependArray(value) {
366+  for (var e = void 0, i = 0, l = value.length; i < l; i++) {
367+  e = value[i];
368+  e && e.__ob__ && e.__ob__.dep.depend();
369+ 370+  if (Array.isArray(e)) {
371+  dependArray(e);
372+  }
373+  }
374+ }
375+ 319376function defineReactive(obj, key) {
320377 var value = obj[key],
321378 stripValue = _typeof(value) === "object" ? __assign({}, value) : value;
@@ -331,6 +388,7 @@ function defineReactive(obj, key) {
331388
332389 if (childOb) {
333390 childOb.dep.depend();
391+  dependArray(value);
334392 }
335393 }
336394
@@ -361,7 +419,7 @@ function set(obj, key, value) {
361419}
362420
363421exports.set = set;
364- },{"../utils":"src/utils/index.js ","./dep":"src/reactivity/dep.ts"}],"src/reactivity/watcher.ts":[function(require,module,exports) {
422+ },{"../utils":"src/utils/index.ts ","./dep":"src/reactivity/dep.ts","./array":"src/reactivity/array .ts"}],"src/reactivity/watcher.ts":[function(require,module,exports) {
365423"use strict";
366424
367425function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
@@ -472,13 +530,14 @@ function () {
472530exports["default"] = Watcher;
473531
474532var traverse = function traverse(obj) {
475-  var keys = Object.keys(obj);
533+  var keys = _typeof(obj) === "object" ?  Object.keys(obj) : obj ;
476534
477535 for (var i = 0; i < keys.length; i++) {
536+  console.log("traverse", obj[keys[i]]);
478537 return obj[keys[i]];
479538 }
480539};
481- },{"./dep":"src/reactivity/dep.ts","../utils":"src/utils/index.js "}],"src/reactivity/index.ts":[function(require,module,exports) {
540+ },{"./dep":"src/reactivity/dep.ts","../utils":"src/utils/index.ts "}],"src/reactivity/index.ts":[function(require,module,exports) {
482541"use strict";
483542
484543function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
@@ -545,7 +604,7 @@ exports.initComputed = function (comp) {
545604 utils_1.proxy(comp, key, get, set);
546605 });
547606};
548- },{"./observer":"src/reactivity/observer.ts","./watcher":"src/reactivity/watcher.ts","../utils":"src/utils/index.js "}],"node_modules/object-assign/index.js":[function(require,module,exports) {
607+ },{"./observer":"src/reactivity/observer.ts","./watcher":"src/reactivity/watcher.ts","../utils":"src/utils/index.ts "}],"node_modules/object-assign/index.js":[function(require,module,exports) {
549608/*
550609object-assign
551610(c) Sindre Sorhus
@@ -24698,10 +24757,7 @@ function (_ReactV$Component2) {
2469824757 _this3 = _possibleConstructorReturn(this, (_getPrototypeOf3 = _getPrototypeOf(App)).call.apply(_getPrototypeOf3, [this].concat(args)));
2469924758
2470024759 _defineProperty(_assertThisInitialized(_assertThisInitialized(_this3)), "state", {
24701-  age: 16,
24702-  o: {
24703-  name: "hi"
24704-  }
24760+  arr: ["proots", ["prev", "loots"]]
2470524761 });
2470624762
2470724763 _defineProperty(_assertThisInitialized(_assertThisInitialized(_this3)), "watch", {
@@ -24718,25 +24774,23 @@ function (_ReactV$Component2) {
2471824774 value: function mounted() {
2471924775 var _this4 = this;
2472024776
24721-  console.log("mounted");
2472224777 setTimeout(function () {
24723-  console.log("changed", _this4);
24724-  _this4.o.name = "proots"; // this.set(this.o, "gender", "male");
24778+  _this4.arr[1].push("akoots");
24779+ 24780+  console.log("this", _this4.arr);
2472524781 }, 1000);
2472624782 }
2472724783 }, {
2472824784 key: "render",
2472924785 value: function render() {
24730-  var _this5 = this;
24731- 24732-  var o = this.o,
24786+  var arr = this.arr,
2473324787 age = this.age,
2473424788 calc = this.calc;
24735-  return _react.default.createElement("div", null, _react.default.createElement("p", null, age), Object.keys(this.o) .map(function (key) {
24789+  return _react.default.createElement("div", null, arr .map(function (key) {
2473624790 return _react.default.createElement("p", {
2473724791 key: key
24738-  }, key, " : ", _this5.o[key] );
24739-  }), _react.default.createElement("p", null, calc) );
24792+  }, key);
24793+  }));
2474024794 }
2474124795 }]);
2474224796
@@ -24771,7 +24825,7 @@ var parent = module.bundle.parent;
2477124825if ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {
2477224826 var hostname = "" || location.hostname;
2477324827 var protocol = location.protocol === 'https:' ? 'wss' : 'ws';
24774-  var ws = new WebSocket(protocol + '://' + hostname + ':' + "54668 " + '/');
24828+  var ws = new WebSocket(protocol + '://' + hostname + ':' + "50343 " + '/');
2477524829
2477624830 ws.onmessage = function (event) {
2477724831 var data = JSON.parse(event.data);
0 commit comments