Winsoft JSEngine 3.3 D6-D10.3 Rio Patched DCU

JavaScript engine for Delphi.

uses Microsoft ChakraCore JavaScript engine
supports Windows 32 and Windows 64
available for Delphi/C++ Builder 6 – 10.3 and Lazarus 1.8.4
source code included in registered version
distributing library in applications is royalty free

ECMAScript 2015 (ES6) examples

// block
{
const a = 1 // block-scoped constant
let b = 2 // block-scoped variable
}

// template literals
function complexToString(a, b) {
return <code>${a} + ${b}i</code>
}
complexToString(1, 2)

// multi-line strings
let html = `
<div>
  Hello</div>
`

// destructing assignment
const [a, , c] = [1, 2, 3, 4]
const {a, c} = {a: 1, b: 2, c: 3, d: 4}

// class
class Person {
constructor(name) {
this.name = name
}

hello() {
return 'Hello, ' + this.name + '!'
}
}

const erik = new Person('Erik')
erik.name
erik.hello()

// inheritance
class Student extends Person {
hello() {
return 'Hello, student ' + this.name + '!'
}
}

const patrik = new Student('Patrik')
patrik.hello()

// arrow functions
[1, 2, 3].map(value =&gt; value + 1)

const increment = value =&gt; value + 1
increment(1)

// for of
let sum = 0
for (const element of [1, 2, 3])
sum += element

// default parameters
function hello(name = 'Erik') {
return 'Hello, ' + name + '!'
}

// rest parameters
function restParams(first, …rest) {
return rest
}

// spread operator
Math.max(1, 2, 3)
Math.max(…[1, 2, 3])

const a = [1, 2, 3]
const b = [4, 5, 6]
const c = […a, …b]

ECMAScript 2016 examples

2 ** 3 // exponentiation operator

ECMAScript 2017 examples

Object.values({a: 1, b: 2});
Object.entries({a: 1, b: 2});

Web Assembly examples

var memory = new WebAssembly.Memory({initial: 1, maximum: 10});
var array = new Uint32Array(memory.buffer);

array[10] = 1;
array[10]; 

DOWNLOAD