Revision 674314

Go back to digest for 17th June 2007

Features in KDE Base

Maks Orlovich committed changes in /trunk/KDE/kdelibs/kjs:

Merge blizzard branch back to trunk (mostly thanks to Harri doing all the hard work!)

This has 3 main changes:
1. Rework label handling. It makes the runtime code much simpler, which should make it easier to implement, uhm, alternate forms of execution. It also fixes some fairly obscure bugs. (Anyone use 2 labels on the same statement? Thought not)

2. Optimizes handling of var statements to take advantage of locals info writes.
(Note that this passes chyde's const testcase but doesn't behave quite the same. OTOH, it should be pretty much identical to mozilla in case when mozilla doesn't barf on stuff when parsing -- and const is a spidermonkey extension, after all)

3. Bring back Reference, in a property-slot integration fashion, supporting operations such as direct/in-place writes. Most importantly, it makes some code much more elegant and consistent, e.g. the ForInNode doesn't copy-paste code from about 4 classes any more.

There should be some measurable but not exciting improvements in performance from this batch of stuff, but I don't want to go lookup the numbers.

File Changes

Added 2 files
  • /trunk/KDE/kdelibs/kjs
  •   /semantic_checker.cpp
  •   /semantic_checker.h
Modified 24 files
  • /trunk/KDE/kdelibs/kjs
  •   /array_object.cpp
  •   /CMakeLists.txt
  •   /CommonIdentifiers.h
  •   /completion.h
  •   /Context.cpp
  •   /context.h
  •   /function.cpp
  •   /function.h
  •   /grammar.cpp
  •   /grammar.h
  •   /grammar.y
  •   /identifier.h
  •   /internal.cpp
  •   /internal.h
  •   /makenodes.h
  •   /nodes.cpp
  •   /nodes.h
  •   /nodes2string.cpp
  •   /object.h
  •   /Parser.cpp
  •   /Parser.h
  •   /property_map.cpp
  •   /property_map.h
  •   /property_slot.h
26 files changed in total