Seed Reference Manual | ||||
---|---|---|---|---|
Top | Description |
Synopsis
#include <seed/seed.h> SeedScript; SeedScript * seed_make_script (SeedContext ctx
,const gchar *js
,const gchar *source_url
,gint line_number
); SeedValue seed_evaluate (SeedContext ctx
,SeedScript *s
,SeedObject this_object
); SeedValue seed_simple_evaluate (SeedContext ctx
,gchar *source
,SeedException *exception
); SeedScript * seed_script_new_from_file (SeedContext ctx
,gchar *file
); SeedException seed_script_exception (SeedScript *s
); void seed_script_destroy (SeedScript *s
);
Description
Seed relies on WebKit's JavaScriptCore interpreter to actually evaluate snippets of JavaScript; however, it provides a handful of useful wrapper functions to quickly create and evaluate scripts. seed_make_script()
and seed_evaluate()
are the workhorse functions; these allow you to control every detail of the created script and its evaluation environment (including customizing the "this" object during evaluation, and setting a starting line number and filename from which the script originates). seed_simple_evaluate()
provides an interface to execute a string of JavaScript without previously creating a SeedScript, and, while requiring less supporting code, is less flexible.
Example 7. Create and evaluate a string of JavaScript with seed_make_script()
SeedEngine * eng; ... SeedScript * script; /* Create a simple SeedScript */ script = seed_make_script(eng->context, "print('Hello, world!')", NULL, 0); /* Evaluate the SeedScript in the default context */ seed_evaluate(eng->context, script, 0); ...
Example 8. Create and evaluate a string of JavaScript with seed_simple_evaluate()
SeedEngine * eng; ... /* Evaluate a simple JavaScript snippet in the default context */ seed_simple_evaluate(eng->context, "print('Hello, world!')", NULL); ...
Details
SeedScript
typedef struct { JSStringRef script; JSValueRef exception; JSStringRef source_url; gint line_number; } SeedScript;
seed_make_script ()
SeedScript * seed_make_script (SeedContext ctx
,const gchar *js
,const gchar *source_url
,gint line_number
);
Creates a new SeedScript instance with js
as the contents, then
checks for proper syntax.
Note: seed_make_script()
does not handle the shebang line, and will return a
parse error if one is included in js
.
|
A SeedContext. |
|
A string representing the contents of the script. |
|
The filename of the script, for reference in errors, or NULL . |
|
The line number of the beginning of the script, for reference
in error messages, or NULL . |
Returns : |
The newly created SeedScript. |
seed_evaluate ()
SeedValue seed_evaluate (SeedContext ctx
,SeedScript *s
,SeedObject this_object
);
Evaluates a SeedScript with this
as the global "this" object.
|
A SeedContext. |
|
A SeedScript to evaluate. |
Returns : |
The SeedValue returned by evaluating the script. |
seed_simple_evaluate ()
SeedValue seed_simple_evaluate (SeedContext ctx
,gchar *source
,SeedException *exception
);
Evaluates a string of JavaScript in ctx
; if an exception
is raised in the context of the script, it will be placed in exception
.
|
A SeedContext. |
|
A string representing the JavaScript to evaluate. |
|
A SeedException pointer to store an exception in. |
Returns : |
The SeedValue returned by evaluating the script. |
seed_script_new_from_file ()
SeedScript * seed_script_new_from_file (SeedContext ctx
,gchar *file
);
Uses seed_make_script()
to create a SeedScript from the contents of file
.
|
A SeedContext. |
|
The filename of the script to load. |
Returns : |
The newly created SeedScript. |
seed_script_exception ()
SeedException seed_script_exception (SeedScript *s
);
Retrieves the exception (if any) raised during the evaluation of s
.
|
A SeedScript. |
Returns : |
A SeedException representing the exception of s . |