| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | 
							- /*
 
-   +----------------------------------------------------------------------+
 
-   | PHP Version 5                                                        |
 
-   +----------------------------------------------------------------------+
 
-   | Copyright (c) 1997-2016 The PHP Group                                |
 
-   +----------------------------------------------------------------------+
 
-   | http://www.opensource.org/licenses/mit-license.php  MIT License      |
 
-   +----------------------------------------------------------------------+
 
-   | Author: Jani Taskinen <[email protected]>                         |
 
-   | Author: Patrick Reilly <[email protected]>                             |
 
-   | Author: Stefan Siegl <[email protected]>                                |
 
-   +----------------------------------------------------------------------+
 
- */
 
- #ifndef V8JS_CLASS_H
 
- #define V8JS_CLASS_H
 
- /* Abbreviate long type names */
 
- typedef v8::Persistent<v8::FunctionTemplate, v8::CopyablePersistentTraits<v8::FunctionTemplate> > v8js_tmpl_t;
 
- typedef v8::Persistent<v8::Object, v8::CopyablePersistentTraits<v8::Object> > v8js_persistent_obj_t;
 
- /* Forward declarations */
 
- struct v8js_v8object;
 
- struct v8js_accessor_ctx;
 
- struct _v8js_script;
 
- struct cmp_str {
 
-     bool operator()(char const *a, char const *b) const {
 
-         return strcmp(a, b) < 0;
 
-     }
 
- };
 
- /* {{{ Context container */
 
- struct v8js_ctx {
 
-   v8::Persistent<v8::String> object_name;
 
-   v8::Persistent<v8::Context> context;
 
-   zend_bool report_uncaught;
 
-   zval pending_exception;
 
-   int in_execution;
 
-   v8::Isolate *isolate;
 
-   long flags;
 
-   long time_limit;
 
-   bool time_limit_hit;
 
-   long memory_limit;
 
-   bool memory_limit_hit;
 
-   long average_object_size;
 
-   v8js_tmpl_t global_template;
 
-   v8js_tmpl_t array_tmpl;
 
-   zval module_normaliser;
 
-   zval module_loader;
 
-   std::vector<char *> modules_stack;
 
-   std::vector<char *> modules_base;
 
-   std::map<char *, v8js_persistent_obj_t, cmp_str> modules_loaded;
 
-   std::map<const zend_string *,v8js_tmpl_t> template_cache;
 
-   std::map<zend_object *, v8js_persistent_obj_t> weak_objects;
 
-   std::map<v8js_tmpl_t *, v8js_persistent_obj_t> weak_closures;
 
-   std::map<v8js_tmpl_t *, v8js_tmpl_t> call_impls;
 
-   std::map<zend_function *, v8js_tmpl_t> method_tmpls;
 
-   std::list<v8js_v8object *> v8js_v8objects;
 
-   std::vector<v8js_accessor_ctx *> accessor_list;
 
-   std::vector<struct _v8js_script *> script_objects;
 
-   char *tz;
 
-   v8::Isolate::CreateParams create_params;
 
-   zval zval_snapshot_blob;
 
-   v8::StartupData snapshot_blob;
 
- #ifdef ZTS
 
-   void ***zts_ctx;
 
- #endif
 
-   zend_object std;
 
- };
 
- /* }}} */
 
- #ifdef ZTS
 
- # define V8JS_TSRMLS_FETCH() TSRMLS_FETCH_FROM_CTX(((v8js_ctx *) isolate->GetData(0))->zts_ctx);
 
- #else
 
- # define V8JS_TSRMLS_FETCH()
 
- #endif
 
- static inline struct v8js_ctx *v8js_ctx_fetch_object(zend_object *obj) {
 
- 	return (struct v8js_ctx *)((char *)obj - XtOffsetOf(struct v8js_ctx, std));
 
- }
 
- #define Z_V8JS_CTX_OBJ_P(zv) v8js_ctx_fetch_object(Z_OBJ_P(zv));
 
- PHP_MINIT_FUNCTION(v8js_class);
 
- #endif /* V8JS_CLASS_H */
 
- /*
 
-  * Local variables:
 
-  * tab-width: 4
 
-  * c-basic-offset: 4
 
-  * indent-tabs-mode: t
 
-  * End:
 
-  * vim600: noet sw=4 ts=4 fdm=marker
 
-  * vim<600: noet sw=4 ts=4
 
-  */
 
 
  |