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 remove deprecated JS API features, causing errors in your scripts should you still be using them (so you can detect where you need to update your code).
You can still access removed properties by prefixing them with native (see example).
Note: If you remove something that doesn't exist, nothing will happen. The property name will have a state of Define.MISSING.
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
}
Accessing removed properties...
// always use strict equality checks
if (Define.stateOf("orderDroidStatsLoc") === Define.REMOVED) {
// we can still get to it...
native.orderDroidStatsLoc; // the native function
// but we should really be using...
orderDroidBuild; // its replacement
}