Archive: October 2011

Console + UI + Script debugging release

As you've seen before, quite some work has gone into Opera Dragonfly's UI lately. We have now released these changes on the default path, so everyone should be able to see them. Here are some more things that we have improved:

Debug what you submit in the console

Before, when you placed a debugger; statement in the body of for example function a, you didn't hit that statement when you called a() from Opera Dragonfly's console. The reason was that it would have made things difficult in the interface. If you - while stopped - submitted a() again, it would get pretty hard to reflect this state in the user interface. The solution now is to let you debug anything that you type in the console, but once you're stopped, Dragonfly goes back to the old behavior so you won't be stopped again.

That means you can now submit something like

(function(my_arg){debugger;})("let's have an argument")
and you'll be stopped right away to see your arguments.

Instant debugging from the console in Opera Dragonfly

Stepping improvements

When clicking through that not too exciting callstack above you won't notice, but updates in this view are now smooth. The view is not scrolled when stepping from line to line unless it has too. This was contributed by Rafał Chłodnicki, many thanks!

Bugfixes

Here is the list of bugs that were fixed with this release. More details are available in the changelog.

  • DFL-1855 Accessing or setting a property named "values" in the command line throws an error
  • DFL-2520 Exception when clicking some areas in Session storage UI after text selection
  • DFL-2555 Exception when switching to Utilities and then Errors very fast
  • DFL-2585 console.group("hello") doesn't work, throws, leaves console broken
  • DFL-2575 Exception while using autocomplete during stepping
  • DFL-2596 console.group() throws
  • DFL-2580 Go to line in Resources is broken
  • DFL-2545 for(var i = 0; i< 100; i ++) { console.log(i); } is slow in the console
  • DFL-2570 The HTTP interface of DFL does not handle U+2028 and U+2029 correctly
  • DFL-2572 "invalid character escape sequence" when autocompleting RegExp
  • DFL-2581 Don't show console scripts in the script dropdown
  • DFL-1568 Stepping should not scroll script view if target line is visible
  • DFL-2534 Styling of checkbox labels should be changed to not look disabled when not hovered
  • DFL-2549 debugger; won't work when submitted via console
  • DFL-2561 Console is not scrolled to bottom when re-opening
  • DFL-2569 Arrow on overlays doesn't point to the middle of pressed button
  • DFL-2556 Style and icons update
  • DFL-2490 remove dependency on document.document

New experimental with Console fixes and UI tweaks

We have a new build up on the experimental branch.

https://dragonfly.opera.com/app/experimental/

The main focus this time has been to improve some of the performance and functionality aspects of the Console.

Rendering output to the Console has now been considerably optimised. For example, this innocent-looking piece of code used to take about 3 seconds (depending on your specific hardware/OS) to render all the output:

for (var i = 0; i < 100; i++) { console.log(i); }

With our latest performance enhancements, the output is displayed almost instantly.

We have also added the ability to trigger breakpoints directly from the Console. If you have a breakpoint set in f(), you can now trigger it by calling the method from the Console's command line:

>>> f()

But not all new improvements are hidden under the hood. This experimental release also features a few UI tweaks.

A small comparison of the old and new Opera Dragonfly button design and grouping

Overall, the grey icons have now been made a tad lighter, buttons have been given a bit more padding, and related buttons are now grouped together. This should give a much clearer, more pleasant debugging experience.

There are lots more little bug fixes and changes in this release - see the changelogs.