internal static extern JavaScriptErrorCode JsGetAndClearException(out JavaScriptValue exception);
 internal static extern JavaScriptErrorCode JsCallFunction(JavaScriptValue function, JavaScriptValue[] arguments, ushort argumentCount, out JavaScriptValue result);
 internal static extern JavaScriptErrorCode JsCreateFunction(JavaScriptNativeFunction nativeFunction, IntPtr externalData, out JavaScriptValue function);
 internal static extern JavaScriptErrorCode JsStrictEquals(JavaScriptValue obj1, JavaScriptValue obj2, out bool result);
 internal static extern JavaScriptErrorCode JsSetExternalData(JavaScriptValue obj, IntPtr externalData);
 internal static extern JavaScriptErrorCode JsHasIndexedProperty(JavaScriptValue obj, JavaScriptValue index, out bool result);
 internal static extern JavaScriptErrorCode JsSetIndexedProperty(JavaScriptValue obj, JavaScriptValue index, JavaScriptValue value);
 internal static extern JavaScriptErrorCode JsConvertValueToObject(JavaScriptValue value, out JavaScriptValue obj);
 internal static extern JavaScriptErrorCode JsSetPrototype(JavaScriptValue obj, JavaScriptValue prototypeObject);
 internal static extern JavaScriptErrorCode JsCreateObject(out JavaScriptValue obj);
 internal static extern JavaScriptErrorCode JsCreateExternalObject(IntPtr data, JavaScriptObjectFinalizeCallback finalizeCallback, out JavaScriptValue obj);
 internal static extern JavaScriptErrorCode JsGetGlobalObject(out JavaScriptValue globalObject);
 internal static extern JavaScriptErrorCode JsValueToVariant(JavaScriptValue obj, out object var);
 internal static extern JavaScriptErrorCode JsVariantToValue(ref object var, out JavaScriptValue value);
 /// <summary>
 ///     Initializes a new instance of the <see cref="JavaScriptScriptException"/> class.
 /// </summary>
 /// <param name="code">The error code returned.</param>
 /// <param name="error">The JavaScript error object.</param>
 /// <param name="message">The error message.</param>
 public JavaScriptScriptException(JavaScriptErrorCode code, JavaScriptValue error, string message) :
     base(code, message)
 {
     this.error = error;
 }
 internal static extern JavaScriptErrorCode JsGetExtensionAllowed(JavaScriptValue obj, out bool value);
 internal static extern JavaScriptErrorCode JsDefineProperty(JavaScriptValue obj, JavaScriptPropertyId propertyId, JavaScriptValue propertyDescriptor, out bool result);
 internal static extern JavaScriptErrorCode JsPreventExtension(JavaScriptValue obj);
 internal static extern JavaScriptErrorCode JsGetIndexedProperty(JavaScriptValue obj, JavaScriptValue index, out JavaScriptValue result);
 internal static extern JavaScriptErrorCode JsGetProperty(JavaScriptValue obj, JavaScriptPropertyId propertyId, out JavaScriptValue value);
 internal static extern JavaScriptErrorCode JsDeleteIndexedProperty(JavaScriptValue obj, JavaScriptValue index);
 internal static extern JavaScriptErrorCode JsGetOwnPropertyDescriptor(JavaScriptValue obj, JavaScriptPropertyId propertyId, out JavaScriptValue propertyDescriptor);
 internal static extern JavaScriptErrorCode JsHasExternalData(JavaScriptValue obj, out bool value);
 internal static extern JavaScriptErrorCode JsGetOwnPropertyNames(JavaScriptValue obj, out JavaScriptValue propertyNames);
 internal static extern JavaScriptErrorCode JsCreateArray(uint length, out JavaScriptValue result);
 internal static extern JavaScriptErrorCode JsSetProperty(JavaScriptValue obj, JavaScriptPropertyId propertyId, JavaScriptValue value, bool useStrictRules);
 internal static extern JavaScriptErrorCode JsConstructObject(JavaScriptValue function, JavaScriptValue[] arguments, ushort argumentCount, out JavaScriptValue result);
 internal static extern JavaScriptErrorCode JsHasProperty(JavaScriptValue obj, JavaScriptPropertyId propertyId, out bool hasProperty);
 internal static extern JavaScriptErrorCode JsCreateURIError(JavaScriptValue message, out JavaScriptValue error);
 internal static extern JavaScriptErrorCode JsDeleteProperty(JavaScriptValue obj, JavaScriptPropertyId propertyId, bool useStrictRules, out JavaScriptValue result);
 internal static extern JavaScriptErrorCode JsSetException(JavaScriptValue exception);
 /// <summary>
 ///     Initializes a new instance of the <see cref="JavaScriptScriptException"/> class.
 /// </summary>
 /// <param name="code">The error code returned.</param>
 /// <param name="error">The JavaScript error object.</param>
 public JavaScriptScriptException(JavaScriptErrorCode code, JavaScriptValue error) :
     this(code, error, "JavaScript Exception")
 {
 }