Sha256: 5c9042c7f789ba2647b8162fda716fdea7ef3683ef75067aef4bfac9c938de48

Contents?: true

Size: 1.01 KB

Versions: 4

Compression:

Stored size: 1.01 KB

Contents

#include "global.h"

static JSBool enumerate(JSContext *js_context, JSObject *obj)
{
  return JS_EnumerateStandardClasses(js_context, obj);
}

static JSBool resolve(JSContext *js_context, JSObject *obj, jsval id, uintN flags, JSObject **objp)
{
  if ((flags & JSRESOLVE_ASSIGNING) == 0)
  {
    JSBool resolved_p;

    if (!JS_ResolveStandardClass(js_context, obj, id, &resolved_p))
      return JS_FALSE;
    
    if (resolved_p)
      *objp = obj;
  }

  return JS_TRUE;
}

static JSClass OurGlobalClass = {
  "global", JSCLASS_NEW_RESOLVE | JSCLASS_GLOBAL_FLAGS,
  JS_PropertyStub, // addProperty
  JS_PropertyStub, // delProperty
  JS_PropertyStub, // getProperty
  JS_PropertyStub, // setProperty
  enumerate,
  (JSResolveOp) resolve,
  JS_ConvertStub,
  JS_FinalizeStub,
  JSCLASS_NO_OPTIONAL_MEMBERS
};

JSObject* johnson_create_global_object(JSContext* context)
{
  JSObject* obj = JS_NewObject(context, &OurGlobalClass, NULL, NULL);
  JS_SetParent(context, obj, NULL);
  JS_SetPrototype(context, obj, NULL);
  return obj;
}

Version data entries

4 entries across 4 versions & 3 rubygems

Version Path
johnson19-2.0.0.pre3 ext/tracemonkey/global.cc
pre-johnson-2.0.0 ext/tracemonkey/global.cc
johnson-2.0.0.pre3 ext/tracemonkey/global.cc
johnson-2.0.0.pre2 ext/tracemonkey/global.cc