Opened 6 years ago

Last modified 13 months ago

#744 assigned task

spock: implement non-trivial example and test on all platforms

Reported by: felix Owned by: felix
Priority: major Milestone:
Component: extensions Version: 4.7.x
Keywords: spock Cc:
Estimated difficulty: medium

Description

We need a non-trivial program that does something interesting and works on all browsers (in particular IE). The test-suite does not work everywhere but this is in part caused by it's sheer size. A confirmation about the fact that basic programs work everywhere would be helpful in deciding whether to put more work into spock.

Change History (3)

comment:1 Changed 5 years ago by felix

  • Owner set to felix
  • Status changed from new to assigned

There is a modified implementation in branches/nothrow that doesn't use throw for unwinding (this makes debugging much easier and also seems to be necessary for IE). I'm not sure wether it works fully, my last attempts were not successful.

Anyway, needs to be merged.

comment:2 Changed 5 years ago by felix

Marc Feeley suggests replacing calls to SPOCK.count with code that inlines the test:

By the way, I think performance would improve if you changed the calls:

function foo(k,a1,a2,a3)
{
  SPOCK.check(arguments);
  ...
}

to

function foo(k,a1,a2,a3)
{
  if (--SPOCK.check_count =3D=3D=3D 0) SPOCK.check(foo,k,a1,a2,a3);
  ...
}

This will avoid using "arguments", which causes most JavaScript VMs to =
not optimize the code, and it will poll intermittently.

This should be benchmarked. Also, the performance difference between the throw and nothrow variants must be measured.

comment:3 Changed 13 months ago by sjamaan

  • Estimated difficulty set to medium
Note: See TracTickets for help on using tickets.