Something went wrong. Try again.
javascript for 🐜's, a tiny runtime with big ambitions antjs.org
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485// Test delete keyword
console.log("=== Testing delete operator ===");
// Test 1: Delete object propertylet obj = { a: 1, b: 2, c: 3 };console.log(obj.a); // 1delete obj.a;console.log(obj.a); // undefined
// Test 2: Delete from nested objectlet nested = { outer: { inner: "value" }};console.log(nested.outer.inner); // "value"delete nested.outer.inner;console.log(nested.outer.inner); // undefined
// Test 3: Delete array elementlet arr = [1, 2, 3, 4, 5];console.log(arr.length); // 5delete arr[2];console.log(arr[2]); // undefinedconsole.log(arr.length); // 5 (length doesn't change)
// Test 4: Delete returns truelet test_obj = { x: 10 };let result = delete test_obj.x;console.log(result); // true
// Test 5: Delete non-existent propertylet obj2 = { a: 1 };let result2 = delete obj2.b; // Property doesn't existconsole.log(result2); // true
// Test 6: Delete from variable (should return true but not delete var)// Note: In this implementation, deleting a variable reference returns true// but doesn't actually remove the variable from scopelet myVar = 42;let result3 = delete myVar;console.log(result3); // true// console.log(myVar); // Would still be 42 if properly implemented
// Test 7: Cannot delete const propertyconst obj3 = { a: 1 };// This would fail: delete obj3.a; // Error: cannot delete constant property
// Test 8: Delete with dynamic object propertieslet dynamicObj = {};dynamicObj.prop1 = "first";dynamicObj.prop2 = "second";dynamicObj.prop3 = "third";
console.log(dynamicObj.prop1); // "first"console.log(dynamicObj.prop2); // "second"
delete dynamicObj.prop2;console.log(dynamicObj.prop1); // "first"console.log(dynamicObj.prop2); // undefinedconsole.log(dynamicObj.prop3); // "third"
// Test 9: Delete and re-add propertylet reusableObj = { key: "value1" };console.log(reusableObj.key); // "value1"delete reusableObj.key;console.log(reusableObj.key); // undefinedreusableObj.key = "value2";console.log(reusableObj.key); // "value2"
// Test 10: Delete in complex object structurelet complex = { level1: { level2: { level3: "deep" } }};console.log(complex.level1.level2.level3); // "deep"delete complex.level1.level2.level3;console.log(complex.level1.level2.level3); // undefined
console.log("=== Delete tests completed ===");