{"ScriptPreparationCode":"function immutableCheck(obj1, obj2) {\r\n\treturn (obj1 === obj2)\r\n};\r\n\r\nfunction versionedCheck(obj1, obj2) {\r\n\tif ((obj1 == null) \u0026\u0026 (obj2 == null)) return true;\r\n\tif ((obj1 != null) \u0026\u0026 (obj2 != null)) return (obj1._v_ === obj2._v_);\r\n\treturn false;\r\n};\r\n\r\nfunction immutableOrVersionedCheck(obj1, obj2) {\r\n\tif ((obj1 == null) \u0026\u0026 (obj2 == null)) return true;\r\n\tif ((obj1 != null) \u0026\u0026 (obj2 != null)) {\r\n\t\tif (obj1._v_) return (obj1._v_ === obj2._v_);\r\n\t\treturn (obj1 === obj2);\r\n\t}\r\n return false;\r\n};\r\n\r\nfunction optimisationKiller(f, obj1, obj2) {\r\n \tisEqual = 42;\r\n\tisEqual = f(obj1, obj2);\r\n\tres = isEqual;\r\n}\r\n\r\nobject1 = { _v_: 1 };\r\nobject2 = { _v_: 2 };","TestCases":[{"Name":"Immutable Check (equal)","Code":"optimisationKiller(immutableCheck, object1, object1);","IsDeferred":false},{"Name":"Immutable Check (NOT equal)","Code":"optimisationKiller(immutableCheck, object1, object2);","IsDeferred":false},{"Name":"Versioned Check (equal)","Code":"optimisationKiller(versionedCheck, object1, object1);","IsDeferred":false},{"Name":"Versioned Check (NOT equal)","Code":"optimisationKiller(versionedCheck, object1, object2);","IsDeferred":false},{"Name":"Immutable or Versioned check (equal)","Code":"optimisationKiller(immutableOrVersionedCheck, object1, object1);","IsDeferred":false},{"Name":"Immutable or Versioned check (NOT equal)","Code":"optimisationKiller(immutableOrVersionedCheck, object1, object2);","IsDeferred":false}]}