Statistical profiling result from v8.log, (13 ticks, 2 unaccounted, 0 excluded).

 [Shared libraries]:
   ticks  total  nonlib   name
      3   23.1%          /lib32/libm-2.7.so
      1    7.7%          ffffe000-fffff000

 [JavaScript]:
   ticks  total  nonlib   name
      1    7.7%   11.1%  LoadIC: j
      1    7.7%   11.1%  LoadIC: i

 [C++]:
   ticks  total  nonlib   name
      2   15.4%   22.2%  v8::internal::Runtime_Math_exp(v8::internal::Arguments)
      1    7.7%   11.1%  v8::internal::JSObject::LookupOwnRealNamedProperty(v8::internal::String*, v8::internal::LookupResult*)
      1    7.7%   11.1%  v8::internal::HashTable<v8::internal::StringDictionaryShape, v8::internal::String*>::FindEntry(v8::internal::String*)
      1    7.7%   11.1%  exp

 [Summary]:
   ticks  total  nonlib   name
      2   15.4%   22.2%  JavaScript
      5   38.5%   55.6%  C++
      0    0.0%    0.0%  GC
      4   30.8%          Shared libraries
      2   15.4%          Unaccounted

 [C++ entry points]:
   ticks    cpp   total   name
      2   40.0%   15.4%  v8::internal::Runtime_Math_exp(v8::internal::Arguments)
      1   20.0%    7.7%  v8::internal::JSObject::LookupOwnRealNamedProperty(v8::internal::String*, v8::internal::LookupResult*)
      1   20.0%    7.7%  v8::internal::HashTable<v8::internal::StringDictionaryShape, v8::internal::String*>::FindEntry(v8::internal::String*)
      1   20.0%    7.7%  exp

 [Bottom up (heavy) profile]:
  Note: percentage shows a share of a particular caller in the total
  amount of its parent calls.
  Callers occupying less than 1.0% are not shown.

   ticks parent  name
      3   23.1%  /lib32/libm-2.7.so
      3  100.0%    LazyCompile: exp native math.js:41
      3  100.0%      Script: exp.js

      2   15.4%  v8::internal::Runtime_Math_exp(v8::internal::Arguments)
      2  100.0%    LazyCompile: exp native math.js:41
      2  100.0%      Script: exp.js

      2   15.4%  UNKNOWN
      1   50.0%    LazyCompile: exp native math.js:41
      1  100.0%      Script: exp.js

      1    7.7%  v8::internal::JSObject::LookupOwnRealNamedProperty(v8::internal::String*, v8::internal::LookupResult*)
      1  100.0%    Script: exp.js

      1    7.7%  v8::internal::HashTable<v8::internal::StringDictionaryShape, v8::internal::String*>::FindEntry(v8::internal::String*)
      1  100.0%    Script: exp.js

      1    7.7%  ffffe000-fffff000

      1    7.7%  exp
      1  100.0%    LazyCompile: exp native math.js:41
      1  100.0%      Script: exp.js

      1    7.7%  LoadIC: j

      1    7.7%  LoadIC: i

