JSEngine

JSEngine

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

// 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];


Related links