JSEngine
JavaScript engine for Delphi.
- uses Microsoft ChakraCore JavaScript engine
- supports Windows 32 and Windows 64
- available for Delphi/C++Builder 6 - 12 and Lazarus 2.2.6
- source code included in registered version
- distributing library in applications is royalty free
Download and order
Order JSEngine license $80 USD (license for one developer)
Order JSEngine multi-license $240 USD (license for all developers in company)
Order JSEngine year upgrades $40 USD (registered users only)
Order JSEngine year upgrades multi-license $120 USD (registered multi-license users only)
Examples
ECMAScript 2015 (ES6) examples
ECMAScript 2016 examples
ECMAScript 2017 examples
Web Assembly examples
// block
{
const a = 1 // block-scoped constant
let b = 2 // block-scoped variable
}
// template literals
function complexToString(a, b) {
return `${a} + ${b}i`
}
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 => value + 1)
const increment = value => 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];