You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
996 B
JavaScript
34 lines
996 B
JavaScript
import { defined } from "../Source/Cesium.js";
|
|
|
|
function equalsMethodEqualityTester(a, b) {
|
|
var to_run;
|
|
// if either a or b have an equals method, call it.
|
|
if (a !== null && defined(a)) {
|
|
if (typeof a.equals === "function") {
|
|
return a.equals(b);
|
|
} else if (a instanceof Object) {
|
|
// Check if the current object has a static function named 'equals'
|
|
to_run = Object.getPrototypeOf(a).constructor.equals;
|
|
if (typeof to_run === "function") {
|
|
return to_run(a, b);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (b !== null && defined(b)) {
|
|
if (typeof b.equals === "function") {
|
|
return b.equals(a);
|
|
} else if (b instanceof Object) {
|
|
// Check if the current object has a static function named 'equals'
|
|
to_run = Object.getPrototypeOf(b).constructor.equals;
|
|
if (typeof to_run === "function") {
|
|
return to_run(b, a);
|
|
}
|
|
}
|
|
}
|
|
|
|
// fall back to default equality checks.
|
|
return undefined;
|
|
}
|
|
export default equalsMethodEqualityTester;
|