• Home
  • Raw
  • Download

Lines Matching defs:JSFunctionDef

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