User:SadEagle

From KDE TechBase

Current priorities

  • Fix namespacing of WTF
  • Backport the comment lexing fix
  • Do the nspluginviewer exit fix
  • Finish up the FrameArray removal, as below and also for the crasher
  • Disabled color for Roman
  • Accel handling?
  • Pick up the getComputedStyle stuff from WC
  • the adblock stuff is in progress, but probably should be trunk-only.
  • I also had mem-use reduction change for KJS, which had the issue of

the global code's lack of body for rewinding. Do we ever run code in GlobalExec, though? We shouldn't

Misc stuff

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.
  • Try to do inline-in-ExecState scopeChainNodes again --- but can they be torn off?
    • May be store in the action? Seems illegal type-wise.
  • 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.
  • 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
  • Iframe stuff
  • 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

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.