Initial import
This commit is contained in:
45
third_party/duktape/duk_henv.h
vendored
Normal file
45
third_party/duktape/duk_henv.h
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Environment object representation.
|
||||
*/
|
||||
|
||||
#if !defined(DUK_HENV_H_INCLUDED)
|
||||
#define DUK_HENV_H_INCLUDED
|
||||
|
||||
#if defined(DUK_USE_ASSERTIONS)
|
||||
DUK_INTERNAL_DECL void duk_hdecenv_assert_valid(duk_hdecenv *h);
|
||||
DUK_INTERNAL_DECL void duk_hobjenv_assert_valid(duk_hobjenv *h);
|
||||
#define DUK_HDECENV_ASSERT_VALID(h) do { duk_hdecenv_assert_valid((h)); } while (0)
|
||||
#define DUK_HOBJENV_ASSERT_VALID(h) do { duk_hobjenv_assert_valid((h)); } while (0)
|
||||
#else
|
||||
#define DUK_HDECENV_ASSERT_VALID(h) do {} while (0)
|
||||
#define DUK_HOBJENV_ASSERT_VALID(h) do {} while (0)
|
||||
#endif
|
||||
|
||||
struct duk_hdecenv {
|
||||
/* Shared object part. */
|
||||
duk_hobject obj;
|
||||
|
||||
/* These control variables provide enough information to access live
|
||||
* variables for a closure that is still open. If thread == NULL,
|
||||
* the record is closed and the identifiers are in the property table.
|
||||
*/
|
||||
duk_hthread *thread;
|
||||
duk_hobject *varmap;
|
||||
duk_size_t regbase_byteoff;
|
||||
};
|
||||
|
||||
struct duk_hobjenv {
|
||||
/* Shared object part. */
|
||||
duk_hobject obj;
|
||||
|
||||
/* Target object and 'this' binding for object binding. */
|
||||
duk_hobject *target;
|
||||
|
||||
/* The 'target' object is used as a this binding in only some object
|
||||
* environments. For example, the global environment does not provide
|
||||
* a this binding, but a with statement does.
|
||||
*/
|
||||
duk_bool_t has_this;
|
||||
};
|
||||
|
||||
#endif /* DUK_HENV_H_INCLUDED */
|
||||
Reference in New Issue
Block a user