This AI is still in early stages of development.

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Indicates a global was replaced by a script using the Define API.

 

Notes

A define with state Define.REPLACED was originally native, but has since been replaced using Define().

Replaced defines are immutable.

You can always access the native implementation of replaced properties by prefixing the name with native (see example below).

Note: If the define wasn't originally native, the new define would have a state of Define.ADDED.

Examples

Checking a specific state
// always use strict equality checks
if (Define.stateOf("chat") === Define.REPLACED) {
	// native chat function existed, but was replaced by a script
	chat(me, "This is using the replacement chat function");


    // the native chat() function is still available via
	native.chat(me, "This is using the native chat function");
}
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";
}
Availability STABLE

Requires:

Contents

Jump to:

Define API

Topics:

  • Define()Add, remove or redefine a property on the global scope, overriding any native property of the same name on the global object...
  • Define API DiagnosticsDiagnostic routines for Define API...
  • Define ScriptsA library of ready made scripts for the Define API...

 

  • No labels