More shuffling.
This commit is contained in:
@ -18,6 +18,11 @@ transfer internals-builtins
|
||||
forth definitions internals
|
||||
( Bring a forth to the top of the vocabulary. )
|
||||
: ok ." uEforth" raw-ok ;
|
||||
|
||||
: dummy-type 2drop yield ; ' dummy-type is type
|
||||
: dummy-key yield 0 ; ' dummy-key is key
|
||||
: dummy-key? yield 0 ; ' dummy-key is key?
|
||||
|
||||
transfer forth
|
||||
forth
|
||||
ok
|
||||
|
||||
@ -139,6 +139,9 @@ cases = ReplaceAll(cases, 'DOES(ip)', 'DOES(ip|0)');
|
||||
cases = ReplaceAll(cases, 'PARK;', ''); // TODO
|
||||
cases = ReplaceAll(cases, '; ', ';\n ');
|
||||
|
||||
cases = ReplaceAll(cases, 'tos = ((tos) + (*(tos) == OP_DOCREATE || *(tos) == OP_DODOES ? 2 : 1))',
|
||||
'tos = TOBODY(tos|0)|0');
|
||||
|
||||
code = code.replace('{{boot}}', function() { return boot; });
|
||||
code = code.replace('{{dict}}', function() { return dict; });
|
||||
code = code.replace('{{cases}}', function() { return cases; });
|
||||
|
||||
@ -83,7 +83,7 @@ function TONAME(xt) {
|
||||
? u8[TOLINK(xt)] : TOLINK(xt) - CELL_ALIGNED(u8[TONAMELEN(xt)]);
|
||||
}
|
||||
function TOBODY(xt) {
|
||||
return xt + (i32[xt>>2] === OP_DOCREATE || i32[xt>>2] === OP_DODOES ? 2 : 1);
|
||||
return xt + (i32[xt>>2] === OP_DOCREATE || i32[xt>>2] === OP_DODOES ? 2 : 1) * 4;
|
||||
}
|
||||
|
||||
function DOES(ip) {
|
||||
@ -437,6 +437,7 @@ function VM(stdlib, foreign, heap) {
|
||||
var DOES = foreign.DOES;
|
||||
var DOIMMEDIATE = foreign.DOIMMEDIATE;
|
||||
var UNSMUDGE = foreign.UNSMUDGE;
|
||||
var TOBODY = foreign.TOBODY;
|
||||
var create = foreign.create;
|
||||
var find = foreign.find;
|
||||
var parse = foreign.parse;
|
||||
@ -533,6 +534,7 @@ var ffi = {
|
||||
'COMMA': function(n) { COMMA(n); },
|
||||
'CCOMMA': function(n) { COMMA(n); },
|
||||
'SSMOD': function(sp) { SSMOD(sp); },
|
||||
'TOBODY': function(tos) { return TOBODY(tos); },
|
||||
'DOES': function(ip) { DOES(ip); },
|
||||
'DOIMMEDIATE': function() { DOIMMEDIATE(); },
|
||||
'UNSMUDGE': function() { UNSMUDGE(); },
|
||||
@ -549,6 +551,7 @@ var module = VM(globalObj, ffi, heap);
|
||||
Init();
|
||||
setTimeout(function() {
|
||||
module.run();
|
||||
console.log('yield');
|
||||
}, 10);
|
||||
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user