0.1.3 • Published 8 years ago

jsig2 v0.1.3

Weekly downloads
-
License
ISC
Repository
-
Last release
8 years ago

jsig2

From scratch type-checker

progress

  • type check constructor
  • type check method definition
  • type check new Foo()
  • type check method calls
  • ? support module system
  • create binary with pretty errors.

later

  • define type definitions for npm modules
  • support more JavaScript features.

Hello world example

There is a small hello world example that shows inference.

'use strict';

function foo(x) {
    return x * 10;
}

foo('Hello, world!');
raynos at raynos-Dell-Precision-M3800  ~/projects/jsig2 on master*
$ jsig ./examples/hello.js 

examples/hello.js
Found error: jsig.sub-type.type-class-mismatch
@4: Got unexpected type class. Expected Number but got String

2. function foo(x) {
3.     return x * 10;
4. }

Expected : Number
Actual   : String

Found (1) error

More examples

raynos at raynos-Dell-Precision-M3800  ~/projects/jsig2 on master*
$ jsig examples/2-main.js 
No type errors

There is a 2-main.js that shows a small program that type checks

This includes the module system and the definition files.

Even more examples

There are a lot of tests that show examples

raynos at raynos-Dell-Precision-M3800  ~/projects/jsig2 on master*
$ git ls-files | grep test | grep 'hjs'
test/batch-client-calls/bad-assign-result-of-method-to-wrong-type.hjs
test/batch-client-calls/bad-call-method-with-wrong-argument.hjs
test/batch-client-calls/bad-calling-method-on-primitive.hjs
test/batch-client-calls/bad-calling-method-on-wrong-object.hjs
test/batch-client-calls/bad-calling-method-with-extra-args.hjs
...
0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago