Ignore:
Timestamp:
Jul 24, 2013, 9:02:47 PM (12 years ago)
Author:
[email protected]
Message:

fourthTier: The Math object should not be polymorphic
https://bugs.webkit.org/show_bug.cgi?id=117576

Reviewed by Oliver Hunt.

Fill in the Math object eagerly, to avoid its structure changing during
execution. There are lots of ways to skin this cat; this one seemed
easiest, and justified given the relative hotness of math operations.

20% speedup on DSP-filtrr tests, small speedups on a few Kraken tests.

  • DerivedSources.make:
  • JavaScriptCore.order:
  • create_hash_table:
  • interpreter/CallFrame.h:

(JSC::ExecState::jsonTable): Removed the Math object's static table.

  • runtime/JSObject.cpp:

(JSC::JSObject::putDirectNativeFunctionWithoutTransition):

  • runtime/JSObject.h:
  • runtime/MathObject.cpp:

(JSC::MathObject::finishCreation):

  • runtime/MathObject.h:

(JSC::MathObject::create): Set up the Math object at construction time.

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::~VM):

  • runtime/VM.h: Removed the Math object's static table.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/interpreter/CallFrame.h

    r153218 r153223  
    9393        static const HashTable* globalObjectTable(CallFrame* callFrame) { return callFrame->vm().globalObjectTable; }
    9494        static const HashTable* jsonTable(CallFrame* callFrame) { return callFrame->vm().jsonTable; }
    95         static const HashTable* mathTable(CallFrame* callFrame) { return callFrame->vm().mathTable; }
    9695        static const HashTable* numberConstructorTable(CallFrame* callFrame) { return callFrame->vm().numberConstructorTable; }
    9796        static const HashTable* numberPrototypeTable(CallFrame* callFrame) { return callFrame->vm().numberPrototypeTable; }
Note: See TracChangeset for help on using the changeset viewer.