User:SadEagle: Difference between revisions
Line 18: | Line 18: | ||
== KJS and KJS/Frostbyte == | == KJS and KJS/Frostbyte == | ||
* Idea: split off the hash table stuff off from JSObject | * Idea: split off the hash table stuff off from JSObject | ||
** Probably not workable since the prototype even of pure objects | |||
** | can have hashtable properties. Object.prototype doesn't, however, so | ||
we can bypass a lot of stuff. Properties there can only be DontEnum or | |||
default, too. | |||
* Debugger, again | * Debugger, again | ||
** Mostly works, but stepping through ifs is funny --- need to figure out why | ** Mostly works, but stepping through ifs is funny --- need to figure out why | ||
Line 36: | Line 35: | ||
** seems slower, actually | ** seems slower, actually | ||
* Idea, part 2: use the above to setup immediates in the same place as registers. This can simplify the IR a lot and shrink the loop considerably. Also means there is no longer architecture differences in 32-bit and 64-bit needs at the IR level, and the IR gets smaller. | * Idea, part 2: use the above to setup immediates in the same place as registers. This can simplify the IR a lot and shrink the loop considerably. Also means there is no longer architecture differences in 32-bit and 64-bit needs at the IR level, and the IR gets smaller. | ||
** Of course, recursion more expensive. But worth a try? | |||
* BUG: need to flush lazy local copies at function call (or do I do it already?) | * BUG: need to flush lazy local copies at function call (or do I do it already?) | ||
* Alternative/conflict with below: if using a single stack for parameter passing/direct calls, we want to always do stack allocation and then do a deferred tearoff when needed --- this may actually be visible based on refcount | * Alternative/conflict with below: if using a single stack for parameter passing/direct calls, we want to always do stack allocation and then do a deferred tearoff when needed --- this may actually be visible based on refcount | ||
Line 45: | Line 45: | ||
** tearoffs done. | ** tearoffs done. | ||
** With eval operator, if I keep track of lexical depth, may be able to directly route to global object, etc. Needs thought. | ** With eval operator, if I keep track of lexical depth, may be able to directly route to global object, etc. Needs thought. | ||
* | * Fix const | ||
* obscure sequencing thing | * obscure sequencing thing | ||
** seems like an another regression on the TC though --- exception precision? | ** seems like an another regression on the TC though --- exception precision? | ||
Line 54: | Line 53: | ||
** Also probably double-allocator for 32-bit. | ** Also probably double-allocator for 32-bit. | ||
* Do a review pass over API to make sure not BC leaks. | * Do a review pass over API to make sure not BC leaks. | ||
* Double-check global handling, synchronize with JSC | * Double-check global handling, synchronize with JSC | ||
* Consider using packed immediate/register bits. The key observation is that locals are read from an array, too, so we could do something like: | * Consider using packed immediate/register bits. The key observation is that locals are read from an array, too, so we could do something like: |
Revision as of 19:45, 7 August 2008
Misc stuff
- bug #104901 -- max-age for kio-http
- Fix Oxygen scrollbar code to be less of a resource hog
- FYI flash: http://techbase.kde.org/Contribute/Bugsquad/BugDays/KonquerorDay2/flashplugin
nspluginviewer
- Debug recent regressions
FP flash 10 workaround- Fix exiting on host exit, double-check some more to make sure no process leaks
- serviceOwnerChanged
- dfaure: See Kded::slotApplicationRemoved for an example; (the possibly unintuitive bit is "if (oldOwner.isEmpty() || !newOwner.isEmpty()) return;"
Canvas
- Update for createImageData, range changes
- Update error handling?
- setFillColor(double r, double g, double b, double a) extension
KJS and KJS/Frostbyte
- Idea: split off the hash table stuff off from JSObject
- Probably not workable since the prototype even of pure objects
can have hashtable properties. Object.prototype doesn't, however, so we can bypass a lot of stuff. Properties there can only be DontEnum or default, too.
- Debugger, again
- Mostly works, but stepping through ifs is funny --- need to figure out why
- Unbreak CPU guard.
- See if we can keep track of the current function body in the parser. Use that
to help track of things like presence of "arguments"
- With this and eval operator, may be able to get rid of an explicit activation and scope chain entry...
- Type system changes:
- Make int32 immediates apply to int32 values --- add a notion of exact embedding
- Add a notion of value/number dual-use in registers --- use DontMark bit to distinguish which it is
- Idea: have a template for activation in FunctionImp, and then just memcpy, minus the params, on startup
- still need to setup functions separately, though.
- seems slower, actually
- Idea, part 2: use the above to setup immediates in the same place as registers. This can simplify the IR a lot and shrink the loop considerably. Also means there is no longer architecture differences in 32-bit and 64-bit needs at the IR level, and the IR gets smaller.
- Of course, recursion more expensive. But worth a try?
- BUG: need to flush lazy local copies at function call (or do I do it already?)
- Alternative/conflict with below: if using a single stack for parameter passing/direct calls, we want to always do stack allocation and then do a deferred tearoff when needed --- this may actually be visible based on refcount
of the scope chain, except when manually done.
- That's actually done, but I am not sure of how to best combine it with other stuff
- Do segmented/nonmoveable stack allocation --- just have a list of pieces, and work on them one at a time. Older ones can be recycled. This means we never have to refetch the locals array.Also avoids the WARNING WARNING WARNING part.
Do deferred tearoffs.- eval operator/eval tearoffs
- tearoffs done.
- With eval operator, if I keep track of lexical depth, may be able to directly route to global object, etc. Needs thought.
- Fix const
- obscure sequencing thing
- seems like an another regression on the TC though --- exception precision?
merge in the API, etc., from trunk- Do the List performance changes
- Do IR dialectes for 32- and 64-bit -- e.g. PointerCell
- Also probably double-allocator for 32-bit.
- Do a review pass over API to make sure not BC leaks.
- Double-check global handling, synchronize with JSC
- Consider using packed immediate/register bits. The key observation is that locals are read from an array, too, so we could do something like:
arg0 = argsType[(fullOp >> 16) & 1][offsetVal];
- Crazy idea: when going to proper CFG construction, do we even have to linearize?
KHTML - Short-term stuff
- Don't forget the clip:rect(auto, 123, ...) stuff
- Don't forget the leak fixes
- consult with Maciej and Micha
- There was a change in getElementsByClassName case behavior
- Do floating-point font size computation
- Or rather e-mail it to kfm-devel
- Fix the damn image-load-event-thing in iframes
- Go through the canvas testcase again
Fix noscript on DOM ops. Should it just display:none? I guess I should check HTML5- Important, don't know how to fix: bug #163359
- Need to debug various editors
- bug #162745 -- for CSS, we need to strip whitespace from URLs. Ditto for object, I'd think. Perhaps completeURL should do it.
- bug #161587 -- for images, too!
- For objects, empty URLs should probably embed still -- but when? CompleteURL on empty seems like a culprit for the self-embed bugs.
- Inherit params
bug #161196 --- option value --- should be super-quick- JS Redirects
Anchor-go canceling parser bug #159192 --- Wikipedia!More synchrony/timing bug #159279- Ordering with respect to form submissions bug #159932
- Ordering with respect to http bug #132031
- WRT to link clicks bug #120157
- Check: bug #109694 --- likely fixed
window.location value: bug #137176- bug #112756: affects the wrong part?
- Iframe stuff
- Wrong source somehow (!!!): bug #141846
- bug #116406: recursive inclusion issues.
- bug #139066: more of the same?
- Make sure that content* are right for both object and window family
- Default document on empty iframe --- bug #159028
- Load events:
- bug #153830
- On Acid3..
- Load events:
- bug #158036?
- Check: bug #116189?
- Fix the paranoia affecting(?) flickr(?) upload bug #126974
- The XHTML parser mode
- Check the XML parser -- QXML workaround might not be needed, weird whitespace handling and recovery stuff
- Check the implicit node stuff. Only the form one seems correct to me, and that can be done w/o wasting a bit at top-level.
- the libthai thing
- bug #104358
- XHR:
- bug #103250 --- KWallet and pages with textareas.
khtmlImLoad
- Allan's foreign loader patch
- Scale animation provider for GIF --- bug #162614
- Animation stoping
- Better pre-blend cache?
- FredrikH performance goodness?
KHTML - Long term stuff
- Fix adblock performance. At the very least, special case
substring matching to not use QRegExp.
- Consider changing window.frames to be == to window
- CSS Loading stuff
- Spart fixed a bunch of stuff already
- bug #91842, bug #96012, bug #115882, bug #120644, bug #122436
- Focus order handling
- Harri changed -1
- bug #106663, bug #121572, bug #48341, bug #136348
- Keyboard events
- mutable keycode (bug #135227)
- something with shift (bug #133887)
- Namespace stuff
- vtokarev's work will cover much of this
- all the fixes... (bug #123490)
- importNode, adoptNode, autoAdopt quick (bug #100457, relevant to bug #133680?
Event names (see above)bug #133887Experimental patch in git --- talk w/vtokarev, carewolf, etc.
Other long term stuff
- Async loading of nspluginviewer somehow?
Other kdelibs stuff
- Figure out why the maxProcess stuff in kio_http doesn't seem to work.