(actual, expected, stack)
| 1656 | {actual: actual}); |
| 1657 | //This needs to be improved a great deal |
| 1658 | function check_equal(actual, expected, stack) |
| 1659 | { |
| 1660 | stack.push(actual); |
| 1661 | |
| 1662 | var p; |
| 1663 | for (p in actual) { |
| 1664 | assert(expected.hasOwnProperty(p), "assert_object_equals", description, |
| 1665 | "unexpected property ${p}", {p:p}); |
| 1666 | |
| 1667 | if (typeof actual[p] === "object" && actual[p] !== null) { |
| 1668 | if (stack.indexOf(actual[p]) === -1) { |
| 1669 | check_equal(actual[p], expected[p], stack); |
| 1670 | } |
| 1671 | } else { |
| 1672 | assert(same_value(actual[p], expected[p]), "assert_object_equals", description, |
| 1673 | "property ${p} expected ${expected} got ${actual}", |
| 1674 | {p:p, expected:expected[p], actual:actual[p]}); |
| 1675 | } |
| 1676 | } |
| 1677 | for (p in expected) { |
| 1678 | assert(actual.hasOwnProperty(p), |
| 1679 | "assert_object_equals", description, |
| 1680 | "expected property ${p} missing", {p:p}); |
| 1681 | } |
| 1682 | stack.pop(); |
| 1683 | } |
| 1684 | check_equal(actual, expected, []); |
| 1685 | } |
| 1686 | expose_assert(assert_object_equals, "assert_object_equals"); |
no test coverage detected
searching dependent graphs…