[gjs] modules/system: Add System.exit() API



commit 781ac29188df6330bcaada8ce8d0c6db86b1a17f
Author: Colin Walters <walters verbum org>
Date:   Wed Jan 9 17:45:48 2013 -0500

    modules/system: Add System.exit() API
    
    Kind of lame we didn't have this before, since it's a lot harder to
    write "scripts" that start and exit on error without it.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=691447

 modules/system.c |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)
---
diff --git a/modules/system.c b/modules/system.c
index 7ee9a2f..2d23285 100644
--- a/modules/system.c
+++ b/modules/system.c
@@ -104,6 +104,19 @@ gjs_gc(JSContext *context,
     return JS_TRUE;
 }
 
+static JSBool
+gjs_exit(JSContext *context,
+         unsigned   argc,
+         jsval     *vp)
+{
+    jsval *argv = JS_ARGV(cx, vp);
+    gint32 ecode;
+    if (!gjs_parse_args(context, "exit", "i", argc, argv, &ecode))
+        return JS_FALSE;
+    exit(ecode);
+    return JS_TRUE;
+}
+
 JSBool
 gjs_js_define_system_stuff(JSContext *context,
                            JSObject  *module)
@@ -132,6 +145,12 @@ gjs_js_define_system_stuff(JSContext *context,
                            0, GJS_MODULE_PROP_FLAGS))
         return JS_FALSE;
 
+    if (!JS_DefineFunction(context, module,
+                           "exit",
+                           (JSNative) gjs_exit,
+                           0, GJS_MODULE_PROP_FLAGS))
+        return JS_FALSE;
+
     return JS_TRUE;
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]