File tree Expand file tree Collapse file tree 5 files changed +216
-174
lines changed Expand file tree Collapse file tree 5 files changed +216
-174
lines changed Original file line number Diff line number Diff line change 1
1
2
2
3
- import * as Primitive_lazy from "./Primitive_lazy .js" ;
3
+ import * as Primitive_exceptions from "./Primitive_exceptions .js" ;
4
4
5
- let make = Primitive_lazy . from_fun ;
5
+ function is_val ( l ) {
6
+ return l . LAZY_DONE ;
7
+ }
6
8
7
- let get = Primitive_lazy . force ;
9
+ let Undefined = /* @__PURE__ */ Primitive_exceptions . create ( "Stdlib_Lazy.Undefined" ) ;
8
10
9
- let isEvaluated = Primitive_lazy . is_val ;
11
+ function forward_with_closure ( blk , closure ) {
12
+ let result = closure ( ) ;
13
+ blk . VAL = result ;
14
+ blk . LAZY_DONE = true ;
15
+ return result ;
16
+ }
10
17
11
- let Undefined = Primitive_lazy . Undefined ;
18
+ function raise_undefined ( ) {
19
+ throw {
20
+ RE_EXN_ID : Undefined ,
21
+ Error : new Error ( )
22
+ } ;
23
+ }
12
24
13
- let force = Primitive_lazy . force ;
25
+ function force ( lzv ) {
26
+ if ( lzv . LAZY_DONE ) {
27
+ return lzv . VAL ;
28
+ } else {
29
+ let closure = lzv . VAL ;
30
+ lzv . VAL = raise_undefined ;
31
+ try {
32
+ return forward_with_closure ( lzv , closure ) ;
33
+ } catch ( e ) {
34
+ lzv . VAL = ( ) => {
35
+ throw e ;
36
+ } ;
37
+ throw e ;
38
+ }
39
+ }
40
+ }
14
41
15
- let force_val = Primitive_lazy . force_val ;
42
+ function force_val ( lzv ) {
43
+ if ( lzv . LAZY_DONE ) {
44
+ return lzv . VAL ;
45
+ } else {
46
+ let closure = lzv . VAL ;
47
+ lzv . VAL = raise_undefined ;
48
+ return forward_with_closure ( lzv , closure ) ;
49
+ }
50
+ }
51
+
52
+ function from_fun ( closure ) {
53
+ return {
54
+ LAZY_DONE : false ,
55
+ VAL : closure
56
+ } ;
57
+ }
58
+
59
+ function from_val ( value ) {
60
+ return {
61
+ LAZY_DONE : true ,
62
+ VAL : value
63
+ } ;
64
+ }
16
65
17
- let from_fun = Primitive_lazy . from_fun ;
66
+ let make = from_fun ;
18
67
19
- let from_val = Primitive_lazy . from_val ;
68
+ let get = force ;
20
69
21
- let is_val = Primitive_lazy . is_val ;
70
+ let isEvaluated = is_val ;
22
71
23
72
export {
24
73
make ,
Original file line number Diff line number Diff line change 1
1
'use strict' ;
2
2
3
- let Primitive_lazy = require ( "./Primitive_lazy .js" ) ;
3
+ let Primitive_exceptions = require ( "./Primitive_exceptions .js" ) ;
4
4
5
- let make = Primitive_lazy . from_fun ;
5
+ function is_val ( l ) {
6
+ return l . LAZY_DONE ;
7
+ }
6
8
7
- let get = Primitive_lazy . force ;
9
+ let Undefined = /* @__PURE__ */ Primitive_exceptions . create ( "Stdlib_Lazy.Undefined" ) ;
8
10
9
- let isEvaluated = Primitive_lazy . is_val ;
11
+ function forward_with_closure ( blk , closure ) {
12
+ let result = closure ( ) ;
13
+ blk . VAL = result ;
14
+ blk . LAZY_DONE = true ;
15
+ return result ;
16
+ }
10
17
11
- let Undefined = Primitive_lazy . Undefined ;
18
+ function raise_undefined ( ) {
19
+ throw {
20
+ RE_EXN_ID : Undefined ,
21
+ Error : new Error ( )
22
+ } ;
23
+ }
12
24
13
- let force = Primitive_lazy . force ;
25
+ function force ( lzv ) {
26
+ if ( lzv . LAZY_DONE ) {
27
+ return lzv . VAL ;
28
+ } else {
29
+ let closure = lzv . VAL ;
30
+ lzv . VAL = raise_undefined ;
31
+ try {
32
+ return forward_with_closure ( lzv , closure ) ;
33
+ } catch ( e ) {
34
+ lzv . VAL = ( ) => {
35
+ throw e ;
36
+ } ;
37
+ throw e ;
38
+ }
39
+ }
40
+ }
14
41
15
- let force_val = Primitive_lazy . force_val ;
42
+ function force_val ( lzv ) {
43
+ if ( lzv . LAZY_DONE ) {
44
+ return lzv . VAL ;
45
+ } else {
46
+ let closure = lzv . VAL ;
47
+ lzv . VAL = raise_undefined ;
48
+ return forward_with_closure ( lzv , closure ) ;
49
+ }
50
+ }
16
51
17
- let from_fun = Primitive_lazy . from_fun ;
52
+ function from_fun ( closure ) {
53
+ return {
54
+ LAZY_DONE : false ,
55
+ VAL : closure
56
+ } ;
57
+ }
18
58
19
- let from_val = Primitive_lazy . from_val ;
59
+ function from_val ( value ) {
60
+ return {
61
+ LAZY_DONE : true ,
62
+ VAL : value
63
+ } ;
64
+ }
20
65
21
- let is_val = Primitive_lazy . is_val ;
66
+ let make = from_fun ;
67
+
68
+ let get = force ;
69
+
70
+ let isEvaluated = is_val ;
22
71
23
72
exports . make = make ;
24
73
exports . get = get ;
Load Diff This file was deleted.
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments