public static unsafe bool EvaluateScript(
            JSContextPtr cx,
            JSHandleObject scope,
            string chars,
            string filename,
            uint lineno,
            JSMutableHandleValue rval
            )
        {
            fixed(char *pChars = chars)
            fixed(char *pFilename = filename)
            {
                byte *pFilenameBytes = null;

                if (filename != null)
                {
                    byte *temp = stackalloc byte[filename.Length + 1];
                    pFilenameBytes = temp;

                    Encoding.ASCII.GetBytes(
                        pFilename, filename.Length,
                        pFilenameBytes, filename.Length
                        );
                }

                return(EvaluateUCScript(
                           cx, scope,
                           (IntPtr)pChars, chars.Length,
                           (IntPtr)pFilenameBytes, lineno,
                           rval
                           ));
            }
        }
 public static unsafe bool GetProperty(
     JSContextPtr cx,
     JSHandleObject obj,
     string name,
     JSMutableHandleValue vp
     ) {
     fixed(char *pName = name)
     return(GetUCProperty(cx, obj, (IntPtr)pName, (uint)name.Length, vp));
 }