A define with state Define.REMOVED was originally a native but has since been removed by a script.
Removed defines are immutable. This state is mainly used to forcibly remove deprecated JS API features.
Examples
Checking a specific state
// always use strict equality checks
if (Define.stateOf("chat") === Define.REMOVED) {
// chat function was native, but has since been removed by a sript
}
Using a switch statement to check state
// when using switch, order of cases is vitally important
switch (Define.stateOf("chat")) {
case Define.MISSING : return "chat() is missing";
case Define.REMOVED : return "chat() was removed by script";
case Define.ADDED : return "chat() was added by script";
case Define.REPLACED: return "chat() was overridden by script";
case Define.NATIVE : return "chat() function is native";
default: return "Status of chat() is unknown";
}