Lines Matching defs:JSFunctionDef
19934 typedef struct JSFunctionDef { struct
19936 struct JSFunctionDef *parent; argument
19940 struct list_head child_list; /* list of JSFunctionDef.link */ argument
19941 struct list_head link;
19943 BOOL is_eval; /* TRUE if eval code */
19944 int eval_type; /* only valid if is_eval = TRUE */
19945 BOOL is_global_var; /* TRUE if variables are not defined locally:
19947 BOOL is_func_expr; /* TRUE if function expression */
19948 BOOL has_home_object; /* TRUE if the home object is available */
19949 BOOL has_prototype; /* true if a prototype field is necessary */
19950 BOOL has_simple_parameter_list;
19951 BOOL has_parameter_expressions; /* if true, an argument scope is created */
19952 BOOL has_use_strict; /* to reject directive in special cases */
19953 BOOL has_eval_call; /* true if the function contains a call to eval() */
19954 BOOL has_arguments_binding; /* true if the 'arguments' binding is
19956 BOOL has_this_binding; /* true if the 'this' and new.target binding are
19958 BOOL new_target_allowed; /* true if the 'new.target' does not
19960 BOOL super_call_allowed; /* true if super() is allowed */
19961 BOOL super_allowed; /* true if super. or super[] is allowed */
19962 BOOL arguments_allowed; /* true if the 'arguments' identifier is allowed */
19963 BOOL is_derived_class_constructor;
19964 BOOL in_function_body;
19965 BOOL backtrace_barrier;
19966 JSFunctionKindEnum func_kind : 8;
19967 JSParseFunctionEnum func_type : 8;
19968 uint8_t js_mode; /* bitmap of JS_MODE_x */
19969 JSAtom func_name; /* JS_ATOM_NULL if no name */
19971 JSVarDef *vars;
19972 int var_size; /* allocated size for vars[] */
19973 int var_count;
19974 JSVarDef *args;
19975 int arg_size; /* allocated size for args[] */
19976 int arg_count; /* number of arguments */
19977 int defined_arg_count;
19978 int var_object_idx; /* -1 if none */
19979 int arg_var_object_idx; /* -1 if none (var object for the argument scope) */
19980 int arguments_var_idx; /* -1 if none */
19981 int arguments_arg_idx; /* argument variable definition in argument scope,
19983 int func_var_idx; /* variable containing the current function (-1
19985 int eval_ret_idx; /* variable containing the return value of the eval, -1 if none */
19986 int this_var_idx; /* variable containg the 'this' value, -1 if none */
19987 int new_target_var_idx; /* variable containg the 'new.target' value, -1 if none */
19988 int this_active_func_var_idx; /* variable containg the 'this.active_func' value, -1 if none */
19989 int home_object_var_idx;
19990 BOOL need_home_object;
19992 int scope_level; /* index into fd->scopes if the current lexical scope */
19993 int scope_first; /* index into vd->vars of first lexically scoped variable */
19994 int scope_size; /* allocated size of fd->scopes array */
19995 int scope_count; /* number of entries used in the fd->scopes array */
19996 JSVarScope *scopes;
19997 JSVarScope def_scope_array[4];
19998 int body_scope; /* scope of the body of the function or eval */
20000 int global_var_count;
20001 int global_var_size;
20002 JSGlobalVar *global_vars;
20004 DynBuf byte_code;
20005 int last_opcode_pos; /* -1 if no last opcode */
20006 int last_opcode_line_num;
20007 BOOL use_short_opcodes; /* true if short opcodes are used in byte_code */
20009 LabelSlot *label_slots;
20010 int label_size; /* allocated size for label_slots[] */
20011 int label_count;
20012 BlockEnv *top_break; /* break/continue label stack */
20015 JSValue *cpool;
20016 int cpool_count;
20017 int cpool_size;
20043 } JSFunctionDef; argument