DWScript 22.6.28 release

Periodic DWScript release 22.6.28 has been created on the DWScript GitHub.

This release includes a variety of micro-optimizations (many memory-related) for the compiler, runtime and JavaScript codegen, as well as fixes and improvements.

The language syntax has been slightly extended for the Pascal-to-Javascript transpiler to cover the case of read-only external properties. (more…)

Is “inert” the HTML Feature Of The Year?

With Chrome 102 HTMLElement.inert attribute is now active, it is also in the Firefox/Edge/Safari nightlies, so will hopefully become available for those soon.

This inert attribute aims to make interactive HTML inert as a rock.
Yes, it only took 32 years to disable interactivity like in HTML 1.0, hurrah!

To quote MDN:

The HTMLElement property inert is a boolean value that, when present, makes the browser “ignore” user input events for the element, including focus events and events from assistive technologies.

So it is like good old Enabled from the VCL. And this is a great addition to HTML! (more…)

cefHtmlSnapshot 0.7.100 has been released

cefHtmlSnapshot 0.7.100 release is now available on the cefHtmlSnapshot repository.

This version uses CEF 100.0.23 which includes Chromium 100.0.4896.127, and is recommended for production, as it fixes multiple zero-day issues being actively exploited.

The bundled turbojpeg is updated to 2.1.3, though only to keep up as none of the security  and fixes issues applied here.

Finally this version disables the Back/Forward cache, which may not have any effect, but was unnecessary.

DWScript compatible with Delphi 11.1

Just downloaded and installed Delphi 11.1, and all the unit tests passed without a glitch. So I can announce that DWScript is compatible with Delphi 11.1 for Win32 and Win64! You can find links to all the Delphi 11.1 release details on Marco’s blog.

In other news, the tip of the DWScript repository is considered stable, but a round of core changes were made a few days ago. The last stable state just before the round of changes can be found in the DWScript Releases on the GitHub mirror. The next round of changes likely be able to will rip out the stack from the engine, and transition to closures.

Cosmetic upgrades to DelphiCodeCoverage

After rediscovering DelphiCodeCoverage, I had made a few cosmetic and functional upgrades to its HTML Report.
I have now pushed a few more rounds of upgrades for better looks and usability. In case they are not merged or you want to test run future changes, you can check my fork of the repo, though for stability stick to the official repository maintained by ekot1.

Here is a visual summary of the changes, form original state to current one. (more…)

Spotlight on Date/Time parsing and formatting

As a bunch commits were just made, it is a good opportunity for a spotlight on dwsDateTime and TdwsFormatSettings.

The class was initially born out of two needs:

  1. to properly handle per-script date FormatSettings, with multiple scripts running in the same or different threads.
  2. to have date formatting and parsing be unambiguously based on the date format string.

(more…)

Delphi Code Coverage alive and kicking

Recently noticed DelphiCodeCoverage had a new home on GitHub, with several updates that make it stable. I had been it in a previous incarnation to assess DWScript test coverage, and help pick which aspects of the engine were in need of extra tests.

The DWScript tests can be quite heavy on exceptions, sub-processes and multithreading. The tests go after checking all things that should fail do fail as they should. That was a bit too much stress for the previous versions, which would occasionally crash. I am happy to say those issues are gone from the current version of DelphiCodeCoverage!

(more…)

DWScript now compatible with Delphi 11

Just pushed a few changes to the DWScript repository for compatibility with the just released Delphi 11 Alexandria.

The only change required was related to a fix of the Delphi compiler, which now properly has integer overflow checks controlled by $OVERFLOWCHECKS while they were previously controlled by $RANGECHECKS.

I also added support for the Delphi 11 dialect for binary literals (starting with %). DWScript already supported binary literals with the “0b” prefix since 2012 (as in C), I had been hoping the % symbol would not be sacrificed for this purpose, but oh well. (more…)