Lines Matching full:this
4 * describing the current function. We do this by chasing pointers to extract
86 #define APPEND_CHR(c) (this->buf[this->off++] = (c))
150 this->map = V8_MAP_PTR(COPYIN_PTR(str + V8_OFF_HEAPOBJ_MAP)); \
151 attrs = COPYIN_UINT8(this->map + V8_OFF_MAP_ATTRS);
163 /!this->done && len > 0 && ASCII_SEQSTR(attrs)/ \
165 copyinto(str + V8_OFF_STR_CHARS, len, this->buf + this->off); \
166 this->off += len; \
172 * thing 4 and 8 times, respectively. Like much of the rest of the code in this
173 * file, this is regrettably necessary given the constraints under which we're
200 /!this->done && len > 0 && TWOBYTE_SEQSTR(attrs)/ \
202 this->i = 0; \
203 this->stbuf = (uint16_t *)alloca(MAX_TWOBYTESTR_BYTES + 2); \
205 MAX_TWOBYTESTR_BYTES, this->stbuf); \
206 this->stbuf[MAX_TWOBYTESTR_BYTES - 1] = '\0'; \
207 this->stbuf[MAX_TWOBYTESTR_BYTES] = '\0'; \
209 LOOP_8(LOOP_8(LOOP_4(LOOP_ITER(this->i, len, \
211 APPEND_CHR(TO_ASCII(this->stbuf[this->i])))))) \
213 this->i = 0; \
214 this->stbuf = 0; \
223 /!this->done && len > 0 && ASCII_EXTSTR(attrs)/ \
225 this->resource = COPYIN_PTR(str + V8_OFF_EXTSTR_RSRC); \
226 this->dataptr = COPYIN_PTR(this->resource + NODE_OFF_EXTSTR_DATA); \
227 copyinto(this->dataptr, len, this->buf + this->off); \
228 this->off += len; \
234 * ConsStrings, but in D we can only expand this recursion to a finite level.
236 * levels deep, so we unroll the expansion up to three levels. Even this is
262 /!this->done/ \
264 this->s0str = this->s1str = this->s2str = (off_t) 0; \
265 this->s3str = this->s4str = this->s5str = (off_t) 0; \
266 this->s6str = this->s7str = this->s8str = (off_t) 0; \
267 this->s9str = this->s10str = this->s11str = (off_t) 0; \
268 this->s12str = this->s13str = (off_t) 0; \
270 this->s0len = this->s1len = this->s2len = (off_t) 0; \
271 this->s3len = this->s4len = this->s5len = (off_t) 0; \
272 this->s6len = this->s7len = this->s8len = (off_t) 0; \
273 this->s9len = this->s10len = this->s11len = (off_t) 0; \
274 this->s12len = this->s13len = (off_t) 0; \
276 this->s0attrs = this->s1attrs = this->s2attrs = 0; \
277 this->s3attrs = this->s4attrs = this->s5attrs = 0; \
278 this->s6attrs = this->s7attrs = this->s8attrs = 0; \
279 this->s9attrs = this->s10attrs = this->s11attrs = 0; \
280 this->s12attrs = this->s13attrs = 0; \
290 /!this->done && len > 0 && IS_CONSSTR(attrs)/ \
308 this->s0str, this->s0len, this->s0attrs, \
309 this->s7str, this->s7len, this->s7attrs) \
310 EXPAND_STR(this->s0str, this->s0len, this->s0attrs, \
311 this->s1str, this->s1len, this->s1attrs, \
312 this->s4str, this->s4len, this->s4attrs) \
313 EXPAND_STR(this->s1str, this->s1len, this->s1attrs, \
314 this->s2str, this->s2len, this->s2attrs, \
315 this->s3str, this->s3len, this->s3attrs) \
316 EXPAND_STR(this->s4str, this->s4len, this->s4attrs, \
317 this->s5str, this->s5len, this->s5attrs, \
318 this->s6str, this->s6len, this->s6attrs) \
319 EXPAND_STR(this->s7str, this->s7len, this->s7attrs, \
320 this->s8str, this->s8len, this->s8attrs, \
321 this->s11str, this->s11len, this->s11attrs) \
322 EXPAND_STR(this->s8str, this->s8len, this->s8attrs, \
323 this->s9str, this->s9len, this->s9attrs, \
324 this->s10str, this->s10len, this->s10attrs) \
325 EXPAND_STR(this->s11str, this->s11len, this->s11attrs, \
326 this->s12str, this->s12len, this->s12attrs, \
327 this->s13str, this->s13len, this->s13attrs) \
330 APPEND_SEQSTR(this->s0str, this->s0len, this->s0attrs) \
331 APPEND_SEQSTR(this->s1str, this->s1len, this->s1attrs) \
332 APPEND_SEQSTR(this->s2str, this->s2len, this->s2attrs) \
333 APPEND_SEQSTR(this->s3str, this->s3len, this->s3attrs) \
334 APPEND_SEQSTR(this->s4str, this->s4len, this->s4attrs) \
335 APPEND_SEQSTR(this->s5str, this->s5len, this->s5attrs) \
336 APPEND_SEQSTR(this->s6str, this->s6len, this->s6attrs) \
337 APPEND_SEQSTR(this->s7str, this->s7len, this->s7attrs) \
338 APPEND_SEQSTR(this->s8str, this->s8len, this->s8attrs) \
339 APPEND_SEQSTR(this->s9str, this->s9len, this->s9attrs) \
340 APPEND_SEQSTR(this->s10str, this->s10len, this->s10attrs) \
341 APPEND_SEQSTR(this->s11str, this->s11len, this->s11attrs) \
342 APPEND_SEQSTR(this->s12str, this->s12len, this->s12attrs) \
343 APPEND_SEQSTR(this->s13str, this->s13len, this->s13attrs) \
356 * In this first clause we initialize all variables. We must explicitly clear
362 this->fp = arg1;
365 this->buf = (char*) alloca(128);
366 this->off = 0;
367 this->done = 0;
370 this->ctx = (off_t) 0;
371 this->marker = (off_t) 0;
372 this->func = (off_t) 0;
373 this->shared = (off_t) 0;
374 this->map = (off_t) 0;
375 this->attrs = 0;
376 this->funcrawnamestr = (off_t) 0;
377 this->hassharedname = 0;
378 this->funcnamelen = 0;
379 this->funcnameattrs = 0;
380 this->script = (off_t) 0;
381 this->scriptattrs = 0;
382 this->scriptnamestr = (off_t) 0;
383 this->scriptnamelen = 0;
384 this->scriptnameattrs = 0;
385 this->position = 0;
386 this->line_ends = (off_t) 0;
387 this->le_attrs = 0;
390 this->bsearch_min = 0;
391 this->bsearch_max = 0;
392 this->ii = 0;
399 /!this->done/
401 this->marker = COPYIN_PTR(this->fp + V8_OFF_FP_CONTEXT);
405 /!this->done && IS_SMI(this->marker) &&
406 SMI_VALUE(this->marker) == V8_FT_ENTRY/
408 this->done = 1;
411 stringof(this->buf);
415 /!this->done && IS_SMI(this->marker) &&
416 SMI_VALUE(this->marker) == V8_FT_ENTRYCONSTRUCT/
418 this->done = 1;
423 stringof(this->buf);
427 /!this->done && IS_SMI(this->marker) &&
428 SMI_VALUE(this->marker) == V8_FT_EXIT/
430 this->done = 1;
433 stringof(this->buf);
437 /!this->done && IS_SMI(this->marker) &&
438 SMI_VALUE(this->marker) == V8_FT_INTERNAL/
440 this->done = 1;
443 stringof(this->buf);
447 /!this->done && IS_SMI(this->marker) &&
448 SMI_VALUE(this->marker) == V8_FT_CONSTRUCT/
450 this->done = 1;
454 stringof(this->buf);
458 /!this->done && IS_SMI(this->marker) &&
459 SMI_VALUE(this->marker) == V8_FT_STUB/
461 this->done = 1;
464 stringof(this->buf);
473 /!this->done/
475 this->func = COPYIN_PTR(this->fp + V8_OFF_FP_FUNC);
476 this->map = V8_MAP_PTR(COPYIN_PTR(this->func + V8_OFF_HEAPOBJ_MAP));
477 this->attrs = COPYIN_UINT8(this->map + V8_OFF_MAP_ATTRS);
481 /!this->done && this->attrs == V8_IT_CODE/
483 this->done = 1;
487 stringof(this->buf);
491 * At this point, we're either looking at a JavaScriptFrame or an
496 /!this->done/
498 this->map = 0;
499 this->attrs = 0;
501 this->shared = COPYIN_PTR(this->func + V8_OFF_FUNC_SHARED);
502 this->funcrawnamestr = COPYIN_PTR(this->shared + V8_OFF_RAW_NAME);
503 this->hassharedname = this->funcrawnamestr !=
508 /!this->done && this->hassharedname/
510 LOAD_STRFIELDS(this->funcrawnamestr, this->funcnamelen,
511 this->funcnameattrs);
515 /!this->done && this->funcnamelen == 0/
518 * This is an anonymous function, but if it was invoked as a method of
526 this->funcrawnamestr = COPYIN_PTR(this->shared + V8_OFF_SHARED_IDENT);
527 LOAD_STRFIELDS(this->funcrawnamestr, this->funcnamelen,
528 this->funcnameattrs);
532 /!this->done && this->funcnamelen == 0/
539 APPEND_V8STR(this->funcrawnamestr, this->funcnamelen, this->funcnameattrs)
546 /!this->done/
548 this->script = COPYIN_PTR(this->shared + V8_OFF_SHARED_SCRIPT);
549 this->map = V8_MAP_PTR(COPYIN_PTR(this->script + V8_OFF_HEAPOBJ_MAP));
550 this->scriptattrs = COPYIN_UINT8(this->map + V8_OFF_MAP_ATTRS);
554 /!this->done && !V8_TYPE_SCRIPT(this->scriptattrs)/
557 this->done = 1;
558 stringof(this->buf);
563 /!this->done/
565 this->scriptnamestr = COPYIN_PTR(this->script + V8_OFF_SCRIPT_NAME);
566 LOAD_STRFIELDS(this->scriptnamestr, this->scriptnamelen,
567 this->scriptnameattrs);
571 /!this->done && this->scriptnamelen != 0/
576 APPEND_V8STR(this->scriptnamestr, this->scriptnamelen, this->scriptnameattrs)
582 /!this->done/
584 this->position = COPYIN_UINT32(this->shared + V8_OFF_SHARED_FUNIDENT);
585 this->line_ends = COPYIN_PTR(this->script + V8_OFF_SCRIPT_LENDS);
586 this->map = V8_MAP_PTR(COPYIN_PTR(this->line_ends + V8_OFF_HEAPOBJ_MAP));
587 this->le_attrs = COPYIN_UINT8(this->map + V8_OFF_MAP_ATTRS);
591 /!this->done && this->le_attrs != V8_IT_FIXEDARRAY && this->position == 0/
594 this->done = 1;
595 stringof(this->buf);
599 /!this->done && this->le_attrs != V8_IT_FIXEDARRAY/
603 * undefined because V8 has not had to compute it yet. In this case we
608 APPEND_NUM(SMI_VALUE(this->position));
610 this->done = 1;
611 stringof(this->buf);
615 * At this point, we've got both a position in the script and an array
616 * describing where each line of the file ends. We can use this to compute the
617 * line number by binary searching the array. (This is also what V8 does when
621 /!this->done/
624 this->bsearch_line = this->position <
625 SMI_VALUE(COPYIN_PTR(this->line_ends + V8_OFF_FA_DATA)) ? 1 : 0;
626 this->bsearch_min = 0;
627 this->bsearch_max = this->bsearch_line != 0 ? 0 :
628 SMI_VALUE(COPYIN_PTR(this->line_ends + V8_OFF_FA_SIZE)) - 1;
638 /!this->done && this->bsearch_max >= 1/ \
640 this->ii = (this->bsearch_min + this->bsearch_max) >> 1; \
644 /!this->done && this->bsearch_max >= 1 && \
645 this->position > SMI_VALUE( \
646 COPYIN_PTR(this->line_ends + V8_OFF_FA_DATA + \
647 this->ii * sizeof (uint32_t)))/ \
649 this->bsearch_min = this->ii + 1; \
653 /!this->done && this->bsearch_max >= 1 && \
654 this->position <= SMI_VALUE( \
655 COPYIN_PTR(this->line_ends + V8_OFF_FA_DATA + \
656 (this->ii - 1) * sizeof (uint32_t)))/ \
658 this->bsearch_max = this->ii - 1; \
678 /!this->done && !this->bsearch_line/
680 this->bsearch_line = this->ii + 1;
684 /!this->done/
689 APPEND_NUM(this->bsearch_line);
691 this->done = 1;
692 stringof(this->buf);