Developers › Desktop Team blog

JavaScript on a diet

July 14, 2011 · by Kaja SI

Hi!

My name is Kaja and I'm in Desktop QA doing first-line bug testing on Windows.

Here's the newest snapshot featuring numerous Core updates including:

  • Improved handling of coordinates and widths inside the layout engine (see the changelog for more details)
  • <video preload>, a simple form of bandwidth management where the author can give a hint about how much buffering is acceptable
  • Site compatibility fixes
  • Stability fixes
  • Memory fixes

We have also updated Carakan to use an improved, compact object model which increases overall performance, and reduces the engine's memory usage by up to 6-7% (in some cases even more).

The Core team will continue to improve on this, and will post a more detailed explanation on the Core Concerns blog in the future, but here's a quick summary from the Core team for now:

The Carakan engine internally uses automatic classes to keep track of object properties and their types. We've recently expanded the scope and power of these internal classes significantly to also record the layout (or shape) of the objects along with their property types. Carakan is as a result able to reduce the overhead per object, but the richer type information also enables the generation of better JITed code. The task represent the rollout of this improved, compact object model, demonstrating some of the incremental improvements made. Much more to come.


With such a big update to Core, please watch out for regressions and let us know if you see anything interesting.

Known issues
  • Opera may crash when reloading pages with Dragonfly open
  • Intermittent freezing on some sites (such as Facebook)

WARNING: This is a development snapshot: It contains the latest changes, but may also have severe known issues, including crashes, and data loss situations. In fact, it may not work at all.

Download

Changelog

General Core fixes
  • CORE-28724 Update to new IDNA specification (affects how names are converted to Unicode, and other things)
  • CORE-19293 <video preload> support
  • CORE-28530 Compact object representation in Carakan
  • CORE-38791 Scrolling fails midway in print preview for multipage documents when smooth scrolling is enabled
  • CORE-37682 Plugin memory fix
  • CORE-38808 :valid CSS pseudo-selector not applied when input type url auto-prepends http://
  • CORE-28535 querySelectorAll does not throw for an unsupported pseudo-class part of selector if there is a valid part first (jQuery)
  • CORE-38966 SVG animating fill using <animate> goes through the default color rather than starting from the current color
  • CORE-39004 eval() of JSON-like string fails if simple named property is followed by indexed one, as in "({ x: 'a', 0: 'b' })"
  • CORE-37125 Javascript evaluation of objects literal done in the wrong order
  • CORE-38887 Setting selectorText to invalid selector changes selector
  • CORE-35863 "".split(/re/) not returning an empty array
  • CORE-38923 JavaScript toLocaleDateString gives different results than other browsers
  • CORE-38743 Cache fix for html5rocks.com
  • CORE-38998 Slightly tweaked the JIT compiler's code generation when mixing bitwise operations and other arithmetics
  • CORE-33000 Spatial navigation not blocked in print preview
  • CORE-38973 Fixed a regression that caused HTMLCollection.item to return undefined instead of null for out of range indexes
  • CORE-38885 Parsing <object type="moo"> in a document where scripting is disabled will misbehave
  • CORE-38898 Flash video continues to download after tab is closed
  • CORE-38846 HTTPS connections dropping
  • CORE-37703 Feed preview stops on "loading" with installed extension with injected script
  • CORE-16017 Dragonfly: Clean up "unknown" stop reasons
  • CORE-39086 <mark> closes <p> in the parser
  • CORE-30816 Dragonfly: Need a flag to to show URL loads originating from XHR
  • CORE-15815 Dragonfly: Clean up "unknown" script origin
  • CORE-38757 Setting valueAsNumber does not work as expected
  • CORE-39142 Missing reflow when setting outline dynamically
  • CORE-39049 Changing meta viewport via JavaScript doesn't trigger re-layout
  • CORE-38832 Can't retrieve already-present console messages when starting Dragonfly
  • CORE-7754 empty title="" should override parent title
  • CORE-39239 Failed to submit form in an iframe after frameset in another iframe
  • CORE-38121 User JS errors only reported once
  • CORE-23313 .style.textShadow drops color information
  • CORE-39013 Not all alternate stylesheets are discovered/listed in UI
  • CORE-7604 Font family and whitespace fails
  • CORE-39308 Improve handling of selection in text groups
  • CORE-15517 Three-digit hex color value in html tag attribute gets ignored
  • CORE-38946 document.activeElement should point to frame or iframe if child document has focus
  • CORE-37732 !important symbol gets parsed as part of unquoted font family
  • CORE-39338 SVG slideshow performance problem
  • CORE-27257 A webfont that overloads an existing platform font can break later uses of that font-family
  • CORE-39283 SVG memory leak
  • CORE-39260 CSS <family-name> not parsed correctly
  • CORE-14410 Unquoted font-family with invalid characters not dropped

Coordinate handling
  • CORE-28833 inline-block wrap after exceeding 32767px in overflow container at books.google.com
  • CORE-36187 Floats taller than 32768px automatically cleared (affects Gmail)
  • CORE-2520 Positioning offsets => 32767px hide content
  • CORE-30734 Fixed position elements fail to respond to the mouse when scrolled too far horizontally (>10000 px)
  • CORE-38145 Block width limited to 32768px
  • CORE-31943 inline-block has maximum height of 2^15 (The Google Maps Api Reference)
  • CORE-17557 Page too wide, overflow caused by large negative text-indent and negative margin
  • CORE-35349 Float layout problem at tekniskamuseet.se due to large value not handled properly
  • CORE-30455 No content in the table at the bottom of the 'www.tvguide.com' page - very large with makes scrollbar inactive, setting scrollLeft ignored
  • CORE-4766 Setting large value on iframe's height misplaces iframe
  • CORE-14494 Large values and truncation - disappearing scrollbar horizontal
  • CORE-3472 Large values for left placement on absolutely positioned element fails
  • CORE-32481 Margin and large left placement value causes horizontal scrollbar for absolutely positioned element
  • CORE-33625 Huge margin (>1000px) at RSS preview of forum.de.selfhtml.org
  • CORE-24303 Limited page width (too wide a table, overlap)
  • CORE-14492 Large values and truncation - disappearing scrollbar vertical (img)
  • CORE-29066 IMG can't be taller than 32767px (affects Y!Mail)
  • CORE-13433 Setting DOM element.scrollLeft ignored in some cases (scrollable div with table inside)
  • CORE-4171 Inner table with large percentage width expands outer table
  • CORE-39236 Input box beside button with large text-indent value disappears on receiving focus or typing into it
  • CORE-203 TD with percentage width should override TD with large pixel width
  • CORE-19546 Content pushed down in inline-block with ~2000+ <br> children
  • CORE-19857 Marquee width overflow
  • CORE-38246 Margin miscalculation
  • CORE-15794 Huge replaced inline-block child of inline-table not redrawn after obscuring window/dialog is dismissed
  • CORE-7534 getComputedStyle retreives incorrect initial value of max-width and max-height properties
  • CORE-6066 offsetHeight value limit
  • CORE-38144 Tables width limited to ~32768px
  • DSK-340579 Margin Bottom can't exceed ~32841px

Compatibility
  • CORE-39261 Scrolling prevented on Studenttorget.no
  • CORE-37975 Combination of text-align:right/center and negative text-indent introduces scrollbar in overflow container
  • CORE-31526 Moving element with box-shadow fails to paint correctly
  • CORE-24134 Should strip whitespace from contents of SCRIPT type attribute
  • CORE-37472 Box-shadow can introduce scrollbars
  • CORE-16900 Scrollbars recieve clicks on CSS positioned elements above them
  • CORE-38109 getPropertyPriority for shorthand properties
  • CORE-38334 ScrollToRect not working properly with border
  • CORE-38559 Overflow value from body propagates to viewport when root element has overflow != visible
  • CORE-9793 font-size: small on form elements produces larger text whilst it shouldn't
  • CORE-38158 Redraw issue when adding same CSS file twice
  • CORE-38254 New Yahoo! Mail chat doesn't load (generated hidden content for DOM-inserted iframe prevents rendering updates to the DOM inside the iframe itself)
  • CORE-38357 Margin is cleared due to combination of embedded content and min-height
  • CORE-38904 Replacing one of two references to the same externam CSS file disables the other

Stability
  • CORE-24058 XPath crash at walgreens.com and other sites
  • CORE-37171 Crash when running extractContents() on range ended at offset zero into a comment
  • CORE-39045 SVG font crash
  • CORE-38382 documentedit crash
  • CORE-38927 Freeze when removing the last element from nested body with documentedit
  • CORE-38765 DOM/documentedit crash
  • CORE-38963 Crash after focusing then unfocusing VIDEO element and pressing keys
  • CORE-39156 Crash on opening link in new tab from cross-network warning
  • CORE-38915 Crash with nested <option> elements
  • CORE-39198 JS crash
  • CORE-39315 DOM crash
  • CORE-38793 Crash on going back to normal view after script removes iframe while document is in print preview
  • CORE-35414 Crash with SVG images that include CSS stylesheets via @import
  • CORE-39008 Form crash
  • CORE-38443 Opera freezes with a big 'link_queue_myopera.dat'
  • CORE-38864 Freeze at Google Maps due to value returned by window.self.innerHeight in an iframe with display:none

Readers' comments

Comments left by My Opera members under the original post: the first 50, as archived.

  • robinkearney14. July 2011, 10:39

    1st !

    Yay... hope this fixes the "micro freezing" issues experienced with 12... nice changelog. Oooh, exciting ... yum.

  • Andries Fikkertacfikkert14. July 2011, 10:41

    From happy Tuesday to happy Thursday.
  • marbross14. July 2011, 10:42

    Nice changelog smile
  • Anton DiazAntonDiaz14. July 2011, 10:46

    > CORE-38791 Scrolling fails midway in print preview for multipage documents when smooth scrolling is enabled

    Impossible is nothing!
  • flm14. July 2011, 10:47

    Old crashes (on removing "+" button in speeddial and on closing 4+ tabs in stack) are still there. :/
  • FransFrenzie14. July 2011, 10:50

    Originally posted by desktopteam:

    <video preload>, a simple form of bandwidth management where the author can give a hint about how much buffering is acceptable


    What about a user preference in the matter? (especially not preloading when the author says it should occur) Or is that relegated to UserJS/extensions?
  • Obese MauriceObeseMaurice14. July 2011, 10:53

    Originally posted by flm:

    Old crashes (on removing "+" button in speeddial and on closing 4+ tabs in stack) are still there. :/



    As you can see, there are only CORE fixes. But yeah, that bug is still here and it's annoying.
  • olli14. July 2011, 11:01

    Originally posted by maxkaspar:

    still no browserjs



    wfm, looked in http://www.opera.com/docs/browserjs/ ?
  • Anton DiazAntonDiaz14. July 2011, 11:04

    > CORE-28833 inline-block wrap after exceeding 32767px in overflow container at books.google.com

    OMG! Test passed at last!
    http://antondiaz.narod2.ru/bug-32K-width.htm
  • Rianav AntaresKerenSkyy14. July 2011, 11:08

    Thank you. Testing now.
  • Franck ARTAUDFrancky308414. July 2011, 11:08

    Welcome Kaja and thanks a lot for this snapshot with an impressive changelog !

    Merci smile
  • Lucalucaviozzi14. July 2011, 11:09

    mhmhmhm xp 32bit it freezes continuosly... :|
    Restarted, cleared, done all but same problem :|

    edit: impossible to use this build for me it freezes always and always (the pages not the program). Back to the stable one.
  • Sparda5714. July 2011, 11:10

    For the moment, I got some troubles with Twitter and 01net.
    Win 7 x64, anyone can confirm ?
  • mulB14. July 2011, 11:14

    I still have sometimes black or white horizontal lines in pictures if Opera is in zoom mode. In my case, Opera is set to 150% by default.

    Win7 64Bit
  • Serpher14. July 2011, 11:17

    RAM consumption drop down by 50 MB.


    Mod edit: No requests, please. Take a look at the FAQ.
  • helsten214. July 2011, 11:29

    Originally posted by lucaviozzi:

    mhmhmhm xp 32bit it freezes continuosly... :|
    Restarted, cleared, done all but same problem :|

    edit: impossible to use this build for me it freezes always and always (the pages not the program). Back to the stable one.



    Same here. The GPU is at 100%, but nothing is rendered in the tab.
    Have to kill Opera in Task Manager. Happened several times within the first 5 minutes, so I am back on the previous snapshot.

    Win7-x64

    EDIT:
    Example: happens every time on this page (http://www.orientering.se/):
    Image and video hosting by TinyPic
  • СергейMerser14. July 2011, 11:34

    DSK-342478
    Site http://jsfiddle.net for development and demonstration of html / css / js code ceased to function. Workspaces available.

    For example: http://jsfiddle.net/azproduction/W2XgH/

    http://jsfiddle.net/EDtaT/7/

    Incidentally, the second example illustrates the problem with the rounding of fractional percent in Opera. Still hope for fix.
  • sabisan14. July 2011, 11:40

    Changelog up

    Testing...
  • barbara0714. July 2011, 11:49

    Thanks, Kaja...Carakan & Vega updates look promising.

    Wa-HOOOO! wink
  • zogster14. July 2011, 12:08

    For me it is fast and lightweight. I guess Wahoo will destroy everything in browsers tests bigsmile when it's finished.
  • MaximSailorMax14. July 2011, 12:12

    Coordinate handling: Do you plan fix shifted cell-selection in Google Docs Spreadsheets? (the farther the cell, the greater the shift) Or this is Google's bug? Or this is unknown bug? smile

    thank you.
  • jrichard32614. July 2011, 12:14

    Multiple freezes on pages has forced me back to build 1017.
    Facebook crashes especially. Uses 99% CPU.

    Windows XP-SP3 flash 10.3.181.34, no extensions, no widgets
  • MaximSailorMax14. July 2011, 12:20

    + when you will update memguard for Wahoo? I have few sites with Opera not responding, but can't report about it...
  • Ola P. Kleivenolak14. July 2011, 12:22

    Originally posted by SailorMax:

    Coordinate handling: Do you plan fix shifted cell-selection in Google Docs Spreadsheets? (the farther the cell, the greater the shift) Or this is Google's bug? Or this is unknown bug? smile

    thank you.


    Known, and Google's smile Not related to this fix at all.
  • Ad von Reekena3ano14. July 2011, 12:25

    sad
    Reading the core fixes I really had hoped that the Copy Paste bug (submitted as DSK-334971) would be solved. I was hoping for a core fix release.
    At least I presume that this bug
    (see http://www.vonreeken.demon.nl/test/opera11/CopyPasteOP11_10.htm )
    requires a core fix. But correct me if I am wrong.

    It is very annoying when copying text from text fields in, in my case, Atlassian JIRA Issue Tracker.
    Many lines are prepended with a blank that needs to be deleted after pasting.
  • Siddhartha14. July 2011, 12:26

    "hangs" with 100% CPU usage when I click on the "messages" button in facebook

    win7x64sp1
  • İlker Şenilker-3714. July 2011, 12:29

    yeah wink
  • netmain14. July 2011, 12:31

    thanks for the snapshot, great work

    Originally posted by Siddhartha:

    "hangs" with 100% CPU usage when I click on the "messages" button in facebook

    win7x64sp1



    confirmed w7 32 bits
  • maxkaspar14. July 2011, 12:32

    Originally posted by olli:

    Originally posted by maxkaspar:

    still no browserjs



    wfm, looked in http://www.opera.com/docs/browserjs/ ?


    there was some strange behaviour. it was set in preferences,browser javascript=1. i changed it to 2 and restarted the browser and it changed back to 0. i set it up again to 2, but this time didn't restart opera. it works now.
  • koimark14. July 2011, 12:44

    Originally posted by netmain:

    netmain # 14. July 2011, 14:31
    thanks for the snapshot, great work

    Originally posted by Siddhartha:
    "hangs" with 100% CPU usage when I click on the "messages" button in facebook

    win7x64sp1

    confirmed w7 32 bits



    Cannot confirm W7 Pro 64-bit SP1.

    UPDATE: Now I was browsing some facebook pictures and Opera stopped responding. I must close process by task manager. Memory usage doesn't grow or change but program just doesn't accept any input i tried.
  • ouzowtfouzoWTF14. July 2011, 12:44

    omg I love the bug fixing stuff in this changelog.
  • redfalcon14. July 2011, 12:47

    netvibes.com doesn't work for me. No content is shown and I can't switch between the tabs.
  • aplan14. July 2011, 12:52

    Wow!

    But I have 2 problems:
    1. Cannot login to http://habrahabr.ru/ via wand. It post login&pass to input field and push login-button, but nothing happen.

    2. Cannot login to Facebook. After input password Opera freeze. I need to kill them at task manager.

    I use w7 x64. Clean install.
  • barbara0714. July 2011, 12:54

    Wow, really fast rendering with this build on OSX.

    Noticed a bad layout here still, at CP. Middle text column is too narrow.
  • SteveKong14. July 2011, 12:58

    Originally posted by maxkaspar:

    there was some strange behaviour. it was set in preferences,browser javascript=1. i changed it to 2 and restarted the browser and it changed back to 0.


    Confirmed (MacOS X)
  • Bhikkhu PesalaPesala14. July 2011, 12:59

    PeaceKeeper Result 657 points
    Opera 11.50 = 3077
  • barbara0714. July 2011, 13:00

    I'm getting tiny, tiny fonts when replying in Gmail.
    (OSX)
  • Obese MauriceObeseMaurice14. July 2011, 13:07

    Originally posted by Pesala:

    PeaceKeeper Result 657 points
    Opera 11.50 = 3077



    PeaceKeeper Result 18300 points
    Opera 11.50 = 17400

    p
  • Michael A. Puls IIburnout42614. July 2011, 13:10

    Originally posted by koimark:

    UPDATE: Now I was browsing some facebook pictures and Opera stopped responding.



    It did this for me too. But, after a minute or so, Opera finally became responsive again.
  • xeon054114. July 2011, 13:12

    after cleaning cache opera 12 don't have any crash on facebook
  • youngjr14. July 2011, 13:13

    Originally posted by maxkaspar:

    Originally posted by olli:
    Originally posted by maxkaspar:still no browserjs

    wfm, looked in http://www.opera.com/docs/browserjs/ ?


    there was some strange behaviour. it was set in preferences,browser javascript=1. i changed it to 2 and restarted the browser and it changed back to 0. i set it up again to 2, but this time didn't restart opera. it works now.



    In my case, it was set in preferences, broswer javascript=1. I changed it to 2 and restarted the browser and it canged back to 0 when there is no broswer.js file. I copied the browser.js file, and setting is OK.

    Win 7 x64
  • berend ytsmaytsmabeer14. July 2011, 13:17

    Originally posted by youngjr:

    Originally posted by maxkaspar:
    Originally posted by olli:
    Originally posted by maxkaspar:still no browserjs

    wfm, looked in http://www.opera.com/docs/browserjs/ ?


    there was some strange behaviour. it was set in preferences,browser javascript=1. i changed it to 2 and restarted the browser and it changed back to 0. i set it up again to 2, but this time didn't restart opera. it works now.


    In my case, it was set in preferences, broswer javascript=1. I changed it to 2 and restarted the browser and it canged back to 0 when there is no broswer.js file. I copied the browser.js file, and setting is OK.

    Win 7 x64


    You need to set it to 1 then let Opera look for update.
    Than the browser.js file will be downloaded and setting changes to 2.
    No need to restart
  • GTSSGela201014. July 2011, 13:18

    I like Kaja smile
  • QuHno14. July 2011, 13:23

    I installed this over the last snapshot and the browser.js was not updated. I had to check manually to get the new one.

    Intended or bug?
  • Haavardhaavard14. July 2011, 13:30

    Originally posted by Sparda57:

    For the moment, I got some troubles with Twitter and 01net.

    Please be more specific when reporting problems. You should always report the exact nature of the problem, and any steps required to reproduce it.
  • minho14. July 2011, 13:37

    I love this changelog. love
    Testing! up
  • Gousti FruitGoustiFruit14. July 2011, 13:37

    Argh, too bad, first site I visit is broken (I checked the usual extensions suspects, they are not the cause): netvibes.com
  • exzentrik14. July 2011, 13:38

    Completely messed up headline boxes on http://www.gbase.ch/
  • Fr0sT14. July 2011, 13:43

    Version 12.00 pre-alpha
    Build 1020

    I somehow got both "Empty page" and "Speed dial" tabs.
    http://img535.imageshack.us/img535/9080/screenshot27827562.png
    After that almost any tab action leads to crash.

    ==

    Awesome and huge changelog! Thanks Kaja!
  • aplan14. July 2011, 13:46

    Originally posted by xeon0541:

    after cleaning cache opera 12 don't have any crash on facebook


    opera freeze for me, not response. I have to kill task.

About this article

Published inDesktop Team blog
DateJuly 14, 2011
AuthorKaja SI
TagsSticky
OriginalInternet Archive