26.02.10

Working on the JS engine, Episode III: offered without comment

#define WORKAROUND(cx_, saver_)                                               \
    Workaround WORKAROUND_PASTE(w_, __LINE__)((cx_), (saver_))
#define WORKAROUND_PASTE(a_, b_) WORKAROUND_PASTE2(a_, b_)
#define WORKAROUND_PASTE2(a_, b_) a_ ## b_ /* having fun yet? */
#define SAVER(cx_, saver_)                                                    \
    AutoValueRooter saver_(cx_);                                              \
    WORKAROUND((cx_), (saver_));

2 Comments »

  1. Yo dawg! We heard you like workarounds!

    Comment by Justin Dolske — 26.02.10 @ 22:27

  2. The good news is that this code is part of a patch which doesn’t seem to do well performance-wise (not even mentioning its other obvious drawbacks), so it’s probably something I’ll never have to look at again.

    Comment by Jeff — 26.02.10 @ 22:58

RSS feed for comments on this post. TrackBack URI

Leave a comment

HTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>