Repository: DevExpress/devextreme-vue (ts)

Issue:
DxDropDownBox throw error if value prop not set
### Issue Type
'bug report'

### Description
DxDropDownBox started throw error if value prop not set or set null
Error in mounted hook: "TypeError: Cannot read property 'length' of undefined"


### Environment Details
- devextreme version: 18.2.3
- devextreme-vue version: 18.2.3
- vue version: 2.5.17

DxList  Error in mounted hook: "TypeError: Cannot read property 'length' of undefined"
Issue Type
'bug report'

Description
DxListBox started throw error if you delete all items from list
Error in mounted hook: "TypeError: Cannot read property 'length' of undefined"

Environment Details
devextreme version: 18.2.3
devextreme-vue version: 18.2.3
vue version: 2.5.17

Pull request description:
Add array check for previous value
Fix #200, fix #199 

Patch:
diff --git a/src/core/helpers.ts b/src/core/helpers.ts
index e75def2..5f2851f 100644
--- a/src/core/helpers.ts
+++ b/src/core/helpers.ts
@@ -19,7 +19,7 @@ export function isEqual(value1, value2) {
         return true;
     }
 
-    if (Array.isArray(value1)) {
+    if (Array.isArray(value1) && Array.isArray(value2)) {
         return value1.length === 0 && value2.length === 0;
     }
 


Test patch:
diff --git a/src/core/helpers.test.ts b/src/core/helpers.test.ts
index 8e50c4c..965d00b 100644
--- a/src/core/helpers.test.ts
+++ b/src/core/helpers.test.ts
@@ -28,4 +28,17 @@ describe("isEqual", () => {
         const testArray2 = [];
         expect(isEqual(testArray1, testArray2)).toBe(true);
     });
+
+    it("Empty Array and null", () => {
+        const testArray1 = [];
+        const testArray2 = null;
+        expect(isEqual(testArray1, testArray2)).toBe(false);
+        expect(isEqual(testArray2, testArray1)).toBe(false);
+    });
+
+    it("Date", () => {
+        const testDate1 = new Date(2018, 9, 9);
+        const testDate2 = new Date(2018, 9, 9);
+        expect(isEqual(testDate1, testDate2)).toBe(true);
+    });
 });