Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projeto experimental para interpretar um subconjunto de JavaScript usando PHP. Não implementa a especificação completa do ECMAScript.

<?php

require __DIR__ . '/vendor/autoload.php';

use PhpEcmascript\Engine;

$engine = new Engine();

$result = $engine->run(<<<'JS'
    let total = 0;

    for (let i = 1; i <= limit; i++) {
        total += i;
    }

    `Total: ${total}`
    JS, ['limit' => 4]);

echo $result; // Total: 10
$engine = new Engine();
$engine->with(['price' => 10]);

$total = $engine->run('price * quantity', ['quantity' => 3]);

Suporte atual:

  • literais de número, string, booleano, null, template string e array;
  • declarações let, const e var, inclusive desestruturação de arrays;
  • operadores aritméticos, lógicos, relacionais, bit a bit e de atribuição;
  • blocos, if/else, switch, while, do...while, for e break;
  • spread em arrays e valores fornecidos pelo PHP.

Pendente:

  • funções, classes, módulos, objetos literais, chamadas de métodos.

About

Interpretador de JS em PHP.

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages