From: Dmitry A. Soshnikov on
Seems, the first complete (as author says) implementation of ES5.

http://vserver.rosseaux.net/projects/BESEN/

Written on Object Pascal, there is runnable exe-file (sort of studio
and editor to run the code). I didn't check in completely, but it will
be good to know.
From: kangax on
On 4/7/10 11:56 AM, Dmitry A. Soshnikov wrote:
> Seems, the first complete (as author says) implementation of ES5.
>
> http://vserver.rosseaux.net/projects/BESEN/
>
> Written on Object Pascal, there is runnable exe-file (sort of studio
> and editor to run the code). I didn't check in completely, but it will
> be good to know.

Noticed one glitch:

(function(x){
print('0' in arguments); // throws error but shouldn't
})(1);

And shouldn't these 2 be identical?

print(function(){
"use strict"; return this}.call(void 0)); // object

print(function(){
"use strict"; return this}.call(undefined)); // undefined

....strange as `print(void 0 === undefined)` prints `true`


--
kangax
From: BeRo on
On 8 Apr., 15:58, kangax <kan...(a)gmail.com> wrote:
> On 4/7/10 11:56 AM, Dmitry A. Soshnikov wrote:
>
> > Seems, the first complete (as author says) implementation ofES5.
>
> >http://vserver.rosseaux.net/projects/BESEN/
>
> > Written on Object Pascal, there is runnable exe-file (sort of studio
> > and editor to run the code). I didn't check in completely, but it will
> > be good to know.
>
> Noticed one glitch:
>
> (function(x){
>    print('0' in arguments); // throws error but shouldn't
>
> })(1);
>
> And shouldn't these 2 be identical?
>
> print(function(){
>   "use strict"; return this}.call(void 0)); // object
>
> print(function(){
>    "use strict"; return this}.call(undefined)); // undefined
>
> ...strange as `print(void 0 === undefined)` prints `true`
>
> --
> kangax

I've fixed this now. This both was just a bytecode generator bug in
the register allocator (a small stupid typing error). You can find the
newest version at http://besen.sourceforge.net/ in the SVN.