1104 {
1105 GetDescIndices();
1106 bool type_arguments_available = false;
1111 intptr_t num_variables = desc_indices_.
length();
1112 for (intptr_t
i = 0;
i < num_variables;
i++) {
1113 TokenPosition ignore = TokenPosition::kNoSource;
1115 if (
name.Equals(Symbols::FunctionTypeArgumentsVar())) {
1116 type_arguments_available = true;
1117 type_arguments ^=
value.ptr();
1120 value.ptr() != Object::optimized_out().ptr()) {
1123 }
1124 bool conflict = false;
1125 for (intptr_t j = 0; j < param_names.Length(); j++) {
1126 existing_name ^= param_names.At(j);
1127 if (
name.Equals(existing_name)) {
1128 conflict = true;
1129 break;
1130 }
1131 }
1132
1133
1134
1135 if (!conflict) {
1136 param_names.Add(
name);
1137 param_values.Add(
value);
1138 }
1139 }
1140 }
1141
1143 type_arguments_available) {
1145 type_params_names.Grow(num_vars);
1146 type_params_names.SetLength(num_vars);
1147 type_params_bounds.Grow(num_vars);
1148 type_params_bounds.SetLength(num_vars);
1149 type_params_defaults.Grow(num_vars);
1150 type_params_defaults.SetLength(num_vars);
1155 intptr_t mapping_offset = num_vars;
1156 for (; !current.IsNull(); current = current.parent_function()) {
1157 type_params = current.type_parameters();
1158 if (type_params.IsNull()) continue;
1159 intptr_t
size = current.NumTypeParameters();
1162 mapping_offset -=
size;
1163 for (intptr_t j = 0; j <
size; ++j) {
1164 name = type_params.NameAt(j);
1165 bound = type_params.BoundAt(j);
1166 defaultType = type_params.DefaultAt(j);
1167
1168
1169
1170
1171
1172 type_params_names.SetAt(mapping_offset + j,
name);
1173 type_params_bounds.SetAt(mapping_offset + j, bound);
1174 type_params_defaults.SetAt(mapping_offset + j, defaultType);
1175 }
1176 }
1177 if (!type_arguments.IsNull()) {
1178 if (type_arguments.Length() == 0) {
1179 for (intptr_t
i = 0;
i < num_vars; ++
i) {
1180 type_arguments.SetTypeAt(
i, Object::dynamic_type());
1181 }
1182 }
1183 ASSERT(type_arguments.Length() == num_vars);
1184 }
1185 }
1186
1187 return type_arguments.ptr();
1188}
const Function & function() const
void VariableAt(intptr_t i, String *name, TokenPosition *declaration_token_pos, TokenPosition *visible_start_token_pos, TokenPosition *visible_end_token_pos, Object *value)
intptr_t NumTypeArguments() const
static const char * ScrubName(const String &name, bool is_extension=false)
static const String & This()
static StringPtr New(Thread *thread, const char *cstr)
static Thread * Current()
static bool IsPrivateVariableName(const String &var_name)
static bool IsSyntheticVariableName(const String &var_name)
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size