1. 11 Nov, 2007 1 commit
    • darin@apple.com's avatar
      JavaScriptCore: · ee752e7d
      darin@apple.com authored
              Reviewed by Sam.
      
              - http://bugs.webkit.org/show_bug.cgi?id=15924
                next round of changes to JSRegExp (formerly PCRE)
      
              This is a combination of converting to C++, tweaking the API, and adding
              some additional optimizations.
      
              Future steps will involve getting rid of the use of UTF-8 completely
              (we'll use UTF-16 exclusively instead), eliminating more source files,
              and some more speed-ups.
      
              SunSpider says the current round is an 0.9% speed-up overall, and a
              5.3% speed-up for regexp.
      
              * JavaScriptCore.exp: Updated for new entry points.
      
              * JavaScriptCore.pri:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.vcproj/dftables/dftables.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * JavaScriptCoreSources.bkl:
              * jscore.bkl:
              Updated for new source file names and ForwardingHeaders.
      
              * kjs/regexp.cpp:
              (KJS::RegExp::RegExp): Changed to use the error message without calling
              strdup on it and to pass the new types and options.
              (KJS::RegExp::~RegExp): Removed the now-unneeded free of the error message.
              (KJS::RegExp::match): Pass the new types and options.
              * kjs/regexp.h: Update type of m_constructionError.
      
              * pcre/AUTHORS: Update to reflect the status of the project -- we don't include
              the Google parts, and this isn't the PCRE library, per se.
              * pcre/COPYING: Ditto.
      
              * pcre/dftables.cpp: Copied from JavaScriptCore/pcre/dftables.c.
              (main): Removed unneeded ctype_digit.
      
              * pcre/pcre.h: Convert to C++, tweak API a bit. Use UChar instead of JSRegExpChar.
      
              * pcre/pcre_compile.cpp: Copied from JavaScriptCore/pcre/pcre_compile.c.
              Moved a lot of private stuff used only within this file here from pcre_internal.h.
              Renumbered the error codes.
              (error_text): Use a single string with embedded nulls for the error text (I got
              this idea from newer versions of PCRE).
              (check_escape): Changed return type to be enum instead of int. Replaced ctype_digit
              uses with isASCIIDigit.
              (is_counted_repeat): Ditto.
              (read_repeat_counts): Ditto.
              (first_significant_code): Ditto.
              (find_fixedlength): Ditto.
              (could_be_empty_branch): Ditto.
              (compile_branch): Ditto. Also removed some code that handles changing options.
              JavaScript doesn't have any of the features that allow options to change.
              (compile_regex): Updated for change to options parameter.
              (is_anchored): Ditto.
              (find_firstassertedchar): Ditto.
              (jsRegExpCompile): Changed to take separate flags instead of an options int.
              Also changed to call new/delete instead of pcre_malloc/free.
              (jsRegExpFree): Ditto.
      
              * pcre/pcre_exec.cpp: Copied from JavaScriptCore/pcre/pcre_exec.c.
              Added a case that uses computed goto for the opcode loop, but did not turn it on.
              Changed the RMATCH macro to handle returns more efficiently by putting the where
              pointer in the new frame instead of the old one, allowing us to branch to the
              return with a single statement. Switched to new/delete from pcre_malloc/free.
              Changed many RRETURN callers to not set the return value since it's already
              set correctly. Replaced the rrc variable with an is_match variable. Values other
              than "match" and "no match" are now handled differently. This allows us to remove
              the code to check for those cases in various rules.
              (match): All the case statements use a macro BEGIN_OPCODE instead. And all the
              continue statements, or break statements that break out of the outer case use
              a macro NEXT_OPCODE instead. Replaced a few if statements with assertions.
              (jsRegExpExecute): Use new/delete instead of pcre_malloc/free. Removed unused
              start_match field from the match block.
      
              * pcre/pcre_internal.h: Moved the last few configuration macros from pcre-config.h
              in here. Removed various unused types. Converted from JSRegExpChar to UChar.
              Eliminated pcre_malloc/free. Replaced the opcode enum with a macro that can be
              used in multiple places. Unfortunately we lose the comments for each opcode; we
              should find a place to put those back. Removed ctype_digit.
      
              * pcre/pcre_maketables.cpp: Copied from JavaScriptCore/pcre/pcre_maketables.c.
              (pcre_maketables): Got rid of the conditional code that allows this to be compiled
              in -- it's only used for dftables now (and soon may be obsolete entirely).
              Changed code for cbit_digit to not use isdigit, and took the "_" case out of the
              loop. Removed ctype_digit.
      
              * pcre/pcre_ord2utf8.cpp: Copied from JavaScriptCore/pcre/pcre_ord2utf8.c.
      
              * pcre/pcre_tables.cpp: Copied from JavaScriptCore/pcre/pcre_tables.c.
              Moved _pcre_OP_lengths out of here into pcre_exec.cpp.
      
              * pcre/pcre_ucp_searchfuncs.cpp: Copied from JavaScriptCore/pcre/pcre_ucp_searchfuncs.c.
              Updated for other file name changes.
      
              * pcre/pcre_xclass.cpp: Copied from JavaScriptCore/pcre/pcre_xclass.c.
      
              * pcre/ucpinternal.h: Updated header.
      
              * pcre/ucptable.cpp: Copied from JavaScriptCore/pcre/ucptable.c.
      
              * wtf/ASCIICType.h: (WTF::isASCIIDigit): Removed a branch by changing from && to
              & for this operation. Also added an overload that takes an int because that's
              useful for PCRE. Later we could optimize for int and overload other functions in
              this file; stuck to this simple one for now.
      
              * wtf/unicode/icu/UnicodeIcu.h: Removed unused isUpper.
              * wtf/unicode/qt4/UnicodeQt4.h: Ditto.
      
              * pcre/LICENCE: Removed.
              * pcre/pcre-config.h: Removed.
              * wtf/FastMallocPCRE.cpp: Removed.
      
              * pcre/dftables.c: Renamed to cpp.
              * pcre/pcre_compile.c: Ditto.
              * pcre/pcre_exec.c: Ditto.
              * pcre/pcre_maketables.c: Ditto.
              * pcre/pcre_ord2utf8.c: Ditto.
              * pcre/pcre_tables.c: Ditto.
              * pcre/pcre_ucp_searchfuncs.c: Ditto.
              * pcre/pcre_xclass.c: Ditto.
              * pcre/ucptable.c: Ditto.
      
      WebCore:
      
              Reviewed by Sam.
      
              - updated for JSRegExp function changes
      
              * platform/RegularExpression.cpp:
              (WebCore::RegularExpression::Private::compile):
              (WebCore::RegularExpression::match):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27686 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ee752e7d
  2. 07 Nov, 2007 1 commit
  3. 05 Nov, 2007 2 commits
  4. 26 Oct, 2007 1 commit
  5. 22 Oct, 2007 1 commit
    • darin's avatar
      JavaScriptCore: · f860d02f
      darin authored
              Reviewed by Maciej.
      
              - http://bugs.webkit.org/show_bug.cgi?id=15606
                make cut-off for sparse vs. dense arrays smarter for speed with large arrays
      
              Makes the morph test in SunSpider 26% faster, and the overall
              benchmark 3% faster.
      
              This also fixes some small problems we had with the distinction
              between nonexistent and undefined values in arrays.
      
              * kjs/array_instance.h: Tweaked formatting and naming.
              * kjs/array_instance.cpp: Copied from kjs/array_object.cpp.
              (KJS::storageSize): Added. Computes the size of the storage given a vector length.
              (KJS::increasedVectorLength): Added. Implements the rule for resizing the vector.
              (KJS::isDenseEnoughForVector): Added.
              (KJS::ArrayInstance::ArrayInstance): Initialize the new fields.
              (KJS::ArrayInstance::~ArrayInstance): Since m_storage is now never 0, delete it.
              (KJS::ArrayInstance::getItem): Updated for name changes.
              (KJS::ArrayInstance::lengthGetter): Ditto.
              (KJS::ArrayInstance::inlineGetOwnPropertySlot): Added. Allows both versions of
              getOwnPropertySlot to share more code.
              (KJS::ArrayInstance::getOwnPropertySlot): Just refactored, no code change.
              (KJS::ArrayInstance::put): Added logic for extending the vector as long as the
              array is dense enough. Also keep m_numValuesInVector up to date.
              (KJS::ArrayInstance::deleteProperty): Added code to keep m_numValuesInVector
              up to date.
              (KJS::ArrayInstance::getPropertyNames): Fixed bug where this would omit names
              for array indices with undefined values.
              (KJS::ArrayInstance::increaseVectorLength): Renamed from resizeStorage. Also
              simplified to only handle getting larger.
              (KJS::ArrayInstance::setLength): Added code to update m_numValuesInVector, to
              zero out the unused part of the vector and to delete the map if it's no longer
              needed.
              (KJS::ArrayInstance::mark): Tweaked formatting.
              (KJS::compareByStringForQSort): Ditto.
              (KJS::ArrayInstance::sort): Ditto.
              (KJS::CompareWithCompareFunctionArguments::CompareWithCompareFunctionArguments):
              Ditto.
              (KJS::compareWithCompareFunctionForQSort): Ditto.
              (KJS::ArrayInstance::compactForSorting): Fixed bug where this would turn
              undefined values into nonexistent values in some cases.
      
              * kjs/array_object.h: Removed MAX_ARRAY_INDEX.
              * kjs/array_object.cpp: Removed ArrayInstance. Moved to a separate file.
      
              * JavaScriptCore.pri: Added array_instance.cpp.
              * JavaScriptCore.xcodeproj/project.pbxproj: Ditto.
              * kjs/AllInOneFile.cpp: Ditto.
      
      LayoutTests:
      
              * fast/js/kde/resources/Array.js: Added tests to cover missing value behavior
              (not the same as undefined values in arrays). This matches the ECMA JavaScript
              specification, but doesn't exactly match Firefox.
              * fast/js/kde/Array-expected.txt: Updated with results.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@26881 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f860d02f
  6. 17 Oct, 2007 1 commit
  7. 23 Sep, 2007 1 commit
    • zecke's avatar
      /: · 2752405f
      zecke authored
      2007-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
      
              Rubber stamped by Adam.
      
              Renamed files from *Gdk to *Gtk (see #14732) using the
              work of Juan A. Suarez Romero as a base.
      
              GDK -> GTK
      
              * WebKit.pri:
              * WebKit.pro:
      
      JavaScriptCore:
      2007-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
      
              Rubber stamped by Adam.
      
              Renamed files from *Gdk to *Gtk (see #14732) using the
              work of Juan A. Suarez Romero as a base.
      
              GDK -> GTK 
      
              * JavaScriptCore.pri:
              * kjs/testkjs.pro:
              * pcre/dftables.pro:
              * wtf/Platform.h: PLATFORM(GDK) to PLATFORM(GTK)
      
      WebCore:
      2007-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
      
              Rubber stamped by Adam.
      
              Renamed files from *Gdk to *Gtk (see #14732) using the
              work of Juan A. Suarez Romero as a base.
      
              GDK -> GTK
      
              * Projects/gdk/webcore-gdk.bkl:
              * WebCore.pro:
              * WebCoreSources.bkl:
              * loader/gdk: Removed.
              * loader/gdk/DocumentLoaderGdk.cpp: Removed.
              * loader/gtk: Added.
              * loader/gtk/DocumentLoaderGdk.cpp: Removed.
              * loader/gtk/DocumentLoaderGtk.cpp: Added.
              * page/FrameView.cpp:
              * page/FrameView.h:
              * page/gdk: Removed.
              * page/gdk/DragControllerGdk.cpp: Removed.
              * page/gdk/EventHandlerGdk.cpp: Removed.
              * page/gdk/FrameGdk.cpp: Removed.
              * page/gtk: Added.
              * page/gtk/DragControllerGdk.cpp: Removed.
              * page/gtk/DragControllerGtk.cpp: Added.
              * page/gtk/EventHandlerGdk.cpp: Removed.
              * page/gtk/EventHandlerGtk.cpp: Added.
              (WebCore::EventHandler::createDraggingClipboard):
              * page/gtk/FrameGdk.cpp: Removed.
              * page/gtk/FrameGtk.cpp: Added.
              * platform/ContextMenuItem.h:
              * platform/Cursor.h:
              * platform/DragData.h:
              * platform/DragImage.h:
              * platform/FontData.h:
              * platform/NotImplemented.h:
              * platform/PlatformKeyboardEvent.h:
              * platform/PlatformMenuDescription.h:
              * platform/PlatformMouseEvent.h:
              * platform/PlatformWheelEvent.h:
              * platform/ScrollView.h:
              * platform/Widget.h:
              * platform/gdk: Removed.
              * platform/gdk/ClipboardGdk.cpp: Removed.
              * platform/gdk/ClipboardGdk.h: Removed.
              * platform/gdk/ContextMenuGdk.cpp: Removed.
              * platform/gdk/ContextMenuItemGdk.cpp: Removed.
              * platform/gdk/CookieJarGdk.cpp: Removed.
              * platform/gdk/CursorGdk.cpp: Removed.
              * platform/gdk/DragDataGdk.cpp: Removed.
              * platform/gdk/DragImageGdk.cpp: Removed.
              * platform/gdk/FileChooserGdk.cpp: Removed.
              * platform/gdk/FileSystemGdk.cpp: Removed.
              * platform/gdk/FontCacheGdk.cpp: Removed.
              * platform/gdk/FontDataGdk.cpp: Removed.
              * platform/gdk/FontGdk.cpp: Removed.
              * platform/gdk/FontPlatformData.h: Removed.
              * platform/gdk/FontPlatformDataGdk.cpp: Removed.
              * platform/gdk/GlyphPageTreeNodeGdk.cpp: Removed.
              * platform/gdk/KeyEventGdk.cpp: Removed.
              * platform/gdk/KeyboardCodes.h: Removed.
              * platform/gdk/LocalizedStringsGdk.cpp: Removed.
              * platform/gdk/LoggingGdk.cpp: Removed.
              * platform/gdk/MIMETypeRegistryGdk.cpp: Removed.
              * platform/gdk/MouseEventGdk.cpp: Removed.
              * platform/gdk/PasteboardGdk.cpp: Removed.
              * platform/gdk/PlatformScreenGdk.cpp: Removed.
              * platform/gdk/PlatformScrollBar.h: Removed.
              * platform/gdk/PlatformScrollBarGdk.cpp: Removed.
              * platform/gdk/PopupMenuGdk.cpp: Removed.
              * platform/gdk/RenderThemeGdk.cpp: Removed.
              * platform/gdk/RenderThemeGdk.h: Removed.
              * platform/gdk/ScrollViewGdk.cpp: Removed.
              * platform/gdk/SearchPopupMenuGdk.cpp: Removed.
              * platform/gdk/SharedTimerLinux.cpp: Removed.
              * platform/gdk/SoundGdk.cpp: Removed.
              * platform/gdk/SystemTimeLinux.cpp: Removed.
              * platform/gdk/TemporaryLinkStubs.cpp: Removed.
              * platform/gdk/WheelEventGdk.cpp: Removed.
              * platform/gdk/WidgetGdk.cpp: Removed.
              * platform/graphics/GraphicsContext.h:
              * platform/graphics/cairo/GraphicsContextCairo.cpp:
              (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
              (WebCore::GraphicsContext::setPlatformFont):
              * platform/graphics/gdk: Removed.
              * platform/graphics/gdk/IconGdk.cpp: Removed.
              * platform/graphics/gdk/ImageGdk.cpp: Removed.
              * platform/graphics/gtk: Added.
              * platform/graphics/gtk/IconGdk.cpp: Removed.
              * platform/graphics/gtk/IconGtk.cpp: Added.
              * platform/graphics/gtk/ImageGdk.cpp: Removed.
              * platform/graphics/gtk/ImageGtk.cpp: Added.
              * platform/gtk: Added.
              * platform/gtk/ClipboardGdk.cpp: Removed.
              * platform/gtk/ClipboardGdk.h: Removed.
              * platform/gtk/ClipboardGtk.cpp: Added.
              (WebCore::ClipboardGtk::ClipboardGtk):
              (WebCore::ClipboardGtk::~ClipboardGtk):
              (WebCore::ClipboardGtk::clearData):
              (WebCore::ClipboardGtk::clearAllData):
              (WebCore::ClipboardGtk::getData):
              (WebCore::ClipboardGtk::setData):
              (WebCore::ClipboardGtk::types):
              (WebCore::ClipboardGtk::dragLocation):
              (WebCore::ClipboardGtk::dragImage):
              (WebCore::ClipboardGtk::setDragImage):
              (WebCore::ClipboardGtk::dragImageElement):
              (WebCore::ClipboardGtk::setDragImageElement):
              (WebCore::ClipboardGtk::createDragImage):
              (WebCore::ClipboardGtk::declareAndWriteDragImage):
              (WebCore::ClipboardGtk::writeURL):
              (WebCore::ClipboardGtk::writeRange):
              (WebCore::ClipboardGtk::hasData):
              * platform/gtk/ClipboardGtk.h: Added.
              * platform/gtk/ContextMenuGdk.cpp: Removed.
              * platform/gtk/ContextMenuGtk.cpp: Added.
              * platform/gtk/ContextMenuItemGdk.cpp: Removed.
              * platform/gtk/ContextMenuItemGtk.cpp: Added.
              * platform/gtk/CookieJarGdk.cpp: Removed.
              * platform/gtk/CookieJarGtk.cpp: Added.
              * platform/gtk/CursorGdk.cpp: Removed.
              * platform/gtk/CursorGtk.cpp: Added.
              * platform/gtk/DragDataGdk.cpp: Removed.
              * platform/gtk/DragDataGtk.cpp: Added.
              * platform/gtk/DragImageGdk.cpp: Removed.
              * platform/gtk/DragImageGtk.cpp: Added.
              * platform/gtk/FileChooserGdk.cpp: Removed.
              * platform/gtk/FileChooserGtk.cpp: Added.
              * platform/gtk/FileSystemGdk.cpp: Removed.
              * platform/gtk/FileSystemGtk.cpp: Added.
              * platform/gtk/FontCacheGdk.cpp: Removed.
              * platform/gtk/FontCacheGtk.cpp: Added.
              * platform/gtk/FontDataGdk.cpp: Removed.
              * platform/gtk/FontDataGtk.cpp: Added.
              * platform/gtk/FontGdk.cpp: Removed.
              * platform/gtk/FontGtk.cpp: Added.
              * platform/gtk/FontPlatformDataGdk.cpp: Removed.
              * platform/gtk/FontPlatformDataGtk.cpp: Added.
              * platform/gtk/GlyphPageTreeNodeGdk.cpp: Removed.
              * platform/gtk/GlyphPageTreeNodeGtk.cpp: Added.
              * platform/gtk/KeyEventGdk.cpp: Removed.
              * platform/gtk/KeyEventGtk.cpp: Added.
              * platform/gtk/LocalizedStringsGdk.cpp: Removed.
              * platform/gtk/LocalizedStringsGtk.cpp: Added.
              * platform/gtk/LoggingGdk.cpp: Removed.
              * platform/gtk/LoggingGtk.cpp: Added.
              * platform/gtk/MIMETypeRegistryGdk.cpp: Removed.
              * platform/gtk/MIMETypeRegistryGtk.cpp: Added.
              * platform/gtk/MouseEventGdk.cpp: Removed.
              * platform/gtk/MouseEventGtk.cpp: Added.
              * platform/gtk/PasteboardGdk.cpp: Removed.
              * platform/gtk/PasteboardGtk.cpp: Added.
              * platform/gtk/PlatformScreenGdk.cpp: Removed.
              * platform/gtk/PlatformScreenGtk.cpp: Added.
              * platform/gtk/PlatformScrollBarGdk.cpp: Removed.
              * platform/gtk/PlatformScrollBarGtk.cpp: Added.
              * platform/gtk/PopupMenuGdk.cpp: Removed.
              * platform/gtk/PopupMenuGtk.cpp: Added.
              * platform/gtk/RenderThemeGdk.cpp: Removed.
              * platform/gtk/RenderThemeGdk.h: Removed.
              * platform/gtk/RenderThemeGtk.cpp: Added.
              (WebCore::theme):
              (WebCore::RenderThemeGtk::RenderThemeGtk):
              (WebCore::RenderThemeGtk::close):
              (WebCore::RenderThemeGtk::addIntrinsicMargins):
              (WebCore::RenderThemeGtk::supportsFocus):
              (WebCore::RenderThemeGtk::determineState):
              (WebCore::RenderThemeGtk::determineShadow):
              (WebCore::RenderThemeGtk::getThemeData):
              (WebCore::RenderThemeGtk::setCheckboxSize):
              (WebCore::RenderThemeGtk::paintCheckbox):
              (WebCore::RenderThemeGtk::setRadioSize):
              (WebCore::RenderThemeGtk::paintRadio):
              (WebCore::RenderThemeGtk::paintButton):
              (WebCore::RenderThemeGtk::adjustTextFieldStyle):
              (WebCore::RenderThemeGtk::paintTextField):
              (WebCore::RenderThemeGtk::paintTextArea):
              (WebCore::RenderThemeGtk::adjustButtonStyle):
              (WebCore::RenderThemeGtk::systemFont):
              (WebCore::RenderThemeGtk::gtkButton):
              (WebCore::RenderThemeGtk::gtkCheckbox):
              (WebCore::RenderThemeGtk::gtkRadioButton):
              (WebCore::RenderThemeGtk::gtkWindowContainer):
              * platform/gtk/RenderThemeGtk.h: Added.
              * platform/gtk/ScrollViewGdk.cpp: Removed.
              * platform/gtk/ScrollViewGtk.cpp: Added.
              * platform/gtk/SearchPopupMenuGdk.cpp: Removed.
              * platform/gtk/SearchPopupMenuGtk.cpp: Added.
              * platform/gtk/SoundGdk.cpp: Removed.
              * platform/gtk/SoundGtk.cpp: Added.
              * platform/gtk/WheelEventGdk.cpp: Removed.
              * platform/gtk/WheelEventGtk.cpp: Added.
              * platform/gtk/WidgetGdk.cpp: Removed.
              * platform/gtk/WidgetGtk.cpp: Added.
              * platform/network/ResourceHandle.h:
      
      WebKitTools:
      2007-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
      
              Rubber stamped by Adam.
      
              * GdkLauncher: Removed.
              * GdkLauncher/Bakefiles.bkgen: Removed.
              * GdkLauncher/ENV: Removed.
              * GdkLauncher/GdkLauncher.pro: Removed.
              * GdkLauncher/gdklauncher.bkl: Removed.
              * GdkLauncher/main.cpp: Removed.
              * GdkLauncher/mk: Removed.
              * GdkLauncher/simple.svg: Removed.
              * GdkLauncher/text.html: Removed.
              * GtkLauncher: Added.
              * GtkLauncher/GdkLauncher.pro: Removed.
              * GtkLauncher/GtkLauncher.pro: Added.
              * GtkLauncher/main.cpp:
              (updateWindowTitle):
              (main):
              * Scripts/build-webkit:
              * Scripts/regenerate-makefiles:
              * Scripts/run-javascriptcore-tests:
              * Scripts/run-launcher:
              * Scripts/run-webkit-tests:
              * Scripts/webkitdirs.pm:
      
      
      
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@25703 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2752405f
  8. 27 Jul, 2007 3 commits
  9. 18 Jul, 2007 1 commit
  10. 20 Jun, 2007 3 commits
  11. 03 May, 2007 1 commit
  12. 18 Mar, 2007 1 commit
    • mjs's avatar
      JavaScriptCore: · 23fc88db
      mjs authored
              Reviewed by Mark.
              
              - avoid static construction (and global variable access) in a smarter, more portable way,
              to later enable MUTLI_THREAD mode to work on other platforms and compilers.
              
              * kjs/CommonIdentifiers.cpp: Added. New class to hold all the shared identifiers.
              (KJS::CommonIdentifiers::CommonIdentifiers):
              (KJS::CommonIdentifiers::shared):
              * kjs/CommonIdentifiers.h: Added.
      
              * kjs/ExecState.h:
              (KJS::ExecState::propertyNames): Hand the CommonIdentifiers instance here for easy access.
              (KJS::ExecState::ExecState):
      
              * API/JSObjectRef.cpp:
              (JSObjectMakeConstructor):
              * CMakeLists.txt:
              * JavaScriptCore.exp:
              * JavaScriptCore.pri:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * JavaScriptCoreSources.bkl:
              * bindings/runtime_array.cpp:
              (RuntimeArray::getOwnPropertySlot):
              (RuntimeArray::put):
              * bindings/runtime_method.cpp:
              (RuntimeMethod::getOwnPropertySlot):
              * kjs/array_object.cpp:
              (ArrayInstance::getOwnPropertySlot):
              (ArrayInstance::put):
              (ArrayInstance::deleteProperty):
              (ArrayProtoFunc::ArrayProtoFunc):
              (ArrayProtoFunc::callAsFunction):
              (ArrayObjectImp::ArrayObjectImp):
              * kjs/bool_object.cpp:
              (BooleanPrototype::BooleanPrototype):
              (BooleanProtoFunc::BooleanProtoFunc):
              (BooleanProtoFunc::callAsFunction):
              (BooleanObjectImp::BooleanObjectImp):
              * kjs/completion.h:
              (KJS::Completion::Completion):
              * kjs/date_object.cpp:
              (KJS::DateProtoFunc::DateProtoFunc):
              (KJS::DateObjectImp::DateObjectImp):
              (KJS::DateObjectFuncImp::DateObjectFuncImp):
              * kjs/error_object.cpp:
              (ErrorPrototype::ErrorPrototype):
              (ErrorProtoFunc::ErrorProtoFunc):
              (ErrorProtoFunc::callAsFunction):
              (ErrorObjectImp::ErrorObjectImp):
              (ErrorObjectImp::construct):
              (NativeErrorPrototype::NativeErrorPrototype):
              (NativeErrorImp::NativeErrorImp):
              (NativeErrorImp::construct):
              (NativeErrorImp::callAsFunction):
              * kjs/function.cpp:
              (KJS::FunctionImp::getOwnPropertySlot):
              (KJS::FunctionImp::put):
              (KJS::FunctionImp::deleteProperty):
              (KJS::FunctionImp::getParameterName):
              (KJS::DeclaredFunctionImp::construct):
              (KJS::IndexToNameMap::unMap):
              (KJS::Arguments::Arguments):
              (KJS::ActivationImp::getOwnPropertySlot):
              (KJS::ActivationImp::deleteProperty):
              (KJS::GlobalFuncImp::GlobalFuncImp):
              * kjs/function_object.cpp:
              (FunctionPrototype::FunctionPrototype):
              (FunctionProtoFunc::FunctionProtoFunc):
              (FunctionProtoFunc::callAsFunction):
              (FunctionObjectImp::FunctionObjectImp):
              (FunctionObjectImp::construct):
              * kjs/grammar.y:
              * kjs/identifier.cpp:
              * kjs/identifier.h:
              * kjs/interpreter.cpp:
              (KJS::Interpreter::init):
              (KJS::Interpreter::initGlobalObject):
              * kjs/interpreter.h:
              * kjs/lookup.h:
              * kjs/math_object.cpp:
              (MathFuncImp::MathFuncImp):
              * kjs/nodes.cpp:
              (ArrayNode::evaluate):
              (FuncDeclNode::processFuncDecl):
              (FuncExprNode::evaluate):
              * kjs/number_object.cpp:
              (NumberPrototype::NumberPrototype):
              (NumberProtoFunc::NumberProtoFunc):
              (NumberObjectImp::NumberObjectImp):
              * kjs/object.cpp:
              (KJS::JSObject::put):
              (KJS::JSObject::defaultValue):
              (KJS::JSObject::hasInstance):
              * kjs/object.h:
              (KJS::JSObject::getOwnPropertySlot):
              * kjs/object_object.cpp:
              (ObjectPrototype::ObjectPrototype):
              (ObjectProtoFunc::ObjectProtoFunc):
              (ObjectObjectImp::ObjectObjectImp):
              * kjs/regexp_object.cpp:
              (RegExpPrototype::RegExpPrototype):
              (RegExpProtoFunc::RegExpProtoFunc):
              (RegExpObjectImp::RegExpObjectImp):
              * kjs/string_object.cpp:
              (KJS::StringInstance::getOwnPropertySlot):
              (KJS::StringInstance::put):
              (KJS::StringInstance::deleteProperty):
              (KJS::StringPrototype::StringPrototype):
              (KJS::StringProtoFunc::StringProtoFunc):
              (KJS::StringProtoFunc::callAsFunction):
              (KJS::StringObjectImp::StringObjectImp):
              (KJS::StringObjectFuncImp::StringObjectFuncImp):
              * kjs/testkjs.cpp:
              (TestFunctionImp::TestFunctionImp):
      
      WebCore:
      
              Reviewed by Mark.
      
              - avoid static construction (and global variable access) in a smarter, more portable way,
              to later enable MUTLI_THREAD mode to work on other platforms and compilers.
              
              * bindings/js/JSCustomXPathNSResolver.cpp:
              (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
              * bindings/js/JSHTMLInputElementBase.cpp:
              (WebCore::JSHTMLInputElementBaseFunction::JSHTMLInputElementBaseFunction):
              * bindings/js/JSHTMLOptionElementConstructor.cpp:
              (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
              * bindings/js/JSXMLHttpRequest.cpp:
              (KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
              * bindings/js/JSXSLTProcessor.cpp:
              (KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
              * bindings/js/kjs_dom.cpp:
              (KJS::DOMNamedNodeMap::getOwnPropertySlot):
              (KJS::DOMNamedNodesCollection::getOwnPropertySlot):
              * bindings/js/kjs_events.cpp:
              (KJS::JSAbstractEventListener::handleEvent):
              * bindings/js/kjs_html.cpp:
              (KJS::HTMLElementFunction::HTMLElementFunction):
              (KJS::JSHTMLCollection::getOwnPropertySlot):
              * bindings/js/kjs_window.cpp:
              (KJS::ScheduledAction::execute):
              * bindings/objc/WebScriptObject.mm:
              * bindings/scripts/CodeGeneratorJS.pm:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20310 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      23fc88db
  13. 30 Jan, 2007 1 commit
  14. 18 Jan, 2007 1 commit
  15. 20 Dec, 2006 1 commit
  16. 09 Dec, 2006 2 commits