@@ -8,6 +8,7 @@ var Sys = require("./sys");
8
8
var Caml_primitive = require ( "../runtime/caml_primitive" ) ;
9
9
var Caml_array = require ( "../runtime/caml_array" ) ;
10
10
var $$Array = require ( "./array" ) ;
11
+ var Caml_weak = require ( "../runtime/caml_weak" ) ;
11
12
var Caml_curry = require ( "../runtime/caml_curry" ) ;
12
13
13
14
function length ( x ) {
@@ -23,14 +24,14 @@ function fill(ar, ofs, len, x) {
23
24
}
24
25
else {
25
26
for ( var i = ofs , i_finish = ( ofs + len | 0 ) - 1 | 0 ; i <= i_finish ; ++ i ) {
26
- Caml_primitive . caml_weak_set ( ar , i , x ) ;
27
+ Caml_weak . caml_weak_set ( ar , i , x ) ;
27
28
}
28
29
return /* () */ 0 ;
29
30
}
30
31
}
31
32
32
33
function Make ( H ) {
33
- var emptybucket = Caml_primitive . caml_weak_create ( 0 ) ;
34
+ var emptybucket = Caml_weak . caml_weak_create ( 0 ) ;
34
35
var get_index = function ( t , h ) {
35
36
return ( h & Pervasives . max_int ) % t [ /* table */ 0 ] . length ;
36
37
} ;
@@ -66,7 +67,7 @@ function Make(H) {
66
67
return accu ;
67
68
}
68
69
else {
69
- var match = Caml_primitive . caml_weak_get ( b , i ) ;
70
+ var match = Caml_weak . caml_weak_get ( b , i ) ;
70
71
if ( match ) {
71
72
_accu = Caml_curry . app2 ( f , match [ 0 ] , accu ) ;
72
73
_i = i + 1 | 0 ;
@@ -92,7 +93,7 @@ function Make(H) {
92
93
return /* () */ 0 ;
93
94
}
94
95
else {
95
- var match = Caml_primitive . caml_weak_get ( b , i ) ;
96
+ var match = Caml_weak . caml_weak_get ( b , i ) ;
96
97
if ( match ) {
97
98
Caml_curry . app1 ( f , match [ 0 ] ) ;
98
99
_i = i + 1 | 0 ;
@@ -119,7 +120,7 @@ function Make(H) {
119
120
return /* () */ 0 ;
120
121
}
121
122
else {
122
- var match = Caml_primitive . caml_weak_check ( b , i ) ;
123
+ var match = Caml_weak . caml_weak_check ( b , i ) ;
123
124
if ( match !== 0 ) {
124
125
Caml_curry . app3 ( f , b , t [ /* hashes */ 1 ] [ j ] , i ) ;
125
126
_i = i + 1 | 0 ;
@@ -144,7 +145,7 @@ function Make(H) {
144
145
}
145
146
else {
146
147
_accu = accu + (
147
- Caml_primitive . caml_weak_check ( b , i ) ? 1 : 0
148
+ Caml_weak . caml_weak_check ( b , i ) ? 1 : 0
148
149
) | 0 ;
149
150
_i = i + 1 | 0 ;
150
151
continue ;
@@ -175,13 +176,13 @@ function Make(H) {
175
176
var j = _j ;
176
177
var i = _i ;
177
178
if ( j >= prev_len ) {
178
- if ( Caml_primitive . caml_weak_check ( bucket , i ) ) {
179
+ if ( Caml_weak . caml_weak_check ( bucket , i ) ) {
179
180
_i = i + 1 | 0 ;
180
181
continue ;
181
182
182
183
}
183
- else if ( Caml_primitive . caml_weak_check ( bucket , j ) ) {
184
- Caml_primitive . caml_weak_blit ( bucket , j , bucket , i , 1 ) ;
184
+ else if ( Caml_weak . caml_weak_check ( bucket , j ) ) {
185
+ Caml_weak . caml_weak_blit ( bucket , j , bucket , i , 1 ) ;
185
186
hbucket [ i ] = hbucket [ j ] ;
186
187
_j = j - 1 | 0 ;
187
188
_i = i + 1 | 0 ;
@@ -231,9 +232,9 @@ function Make(H) {
231
232
"Weak.Make: hash bucket cannot grow more"
232
233
] ;
233
234
}
234
- var newbucket = Caml_primitive . caml_weak_create ( newsz ) ;
235
+ var newbucket = Caml_weak . caml_weak_create ( newsz ) ;
235
236
var newhashes = Caml_array . caml_make_vect ( newsz , 0 ) ;
236
- Caml_primitive . caml_weak_blit ( bucket , 0 , newbucket , 0 , sz ) ;
237
+ Caml_weak . caml_weak_blit ( bucket , 0 , newbucket , 0 , sz ) ;
237
238
$$Array . blit ( hashes , 0 , newhashes , 0 , sz ) ;
238
239
Caml_curry . app3 ( setter , newbucket , sz , d ) ;
239
240
newhashes [ sz ] = h ;
@@ -254,7 +255,7 @@ function Make(H) {
254
255
var add_weak = ( function ( newt ) {
255
256
return function ( ob , oh , oi ) {
256
257
var setter = function ( nb , ni , _ ) {
257
- return Caml_primitive . caml_weak_blit ( ob , oi , nb , ni , 1 ) ;
258
+ return Caml_weak . caml_weak_blit ( ob , oi , nb , ni , 1 ) ;
258
259
} ;
259
260
var h = oh [ oi ] ;
260
261
return add_aux ( newt , setter , /* None */ 0 , h , get_index ( newt , h ) ) ;
@@ -278,7 +279,7 @@ function Make(H) {
278
279
return 0 ;
279
280
}
280
281
}
281
- else if ( Caml_primitive . caml_weak_check ( bucket , i ) ) {
282
+ else if ( Caml_weak . caml_weak_check ( bucket , i ) ) {
282
283
_i = i + 1 | 0 ;
283
284
continue ;
284
285
@@ -292,7 +293,7 @@ function Make(H) {
292
293
} ;
293
294
var add = function ( t , d ) {
294
295
var h = Caml_curry . app1 ( H [ 1 ] , d ) ;
295
- return add_aux ( t , Caml_primitive . caml_weak_set , /* Some */ [ d ] , h , get_index ( t , h ) ) ;
296
+ return add_aux ( t , Caml_weak . caml_weak_set , /* Some */ [ d ] , h , get_index ( t , h ) ) ;
296
297
} ;
297
298
var find_or = function ( t , d , ifnotfound ) {
298
299
var h = Caml_curry . app1 ( H [ 1 ] , d ) ;
@@ -307,10 +308,10 @@ function Make(H) {
307
308
return Caml_curry . app2 ( ifnotfound , h , index ) ;
308
309
}
309
310
else if ( h === hashes [ i ] ) {
310
- var match = Caml_primitive . caml_weak_get_copy ( bucket , i ) ;
311
+ var match = Caml_weak . caml_weak_get_copy ( bucket , i ) ;
311
312
if ( match ) {
312
313
if ( Caml_curry . app2 ( H [ 0 ] , match [ 0 ] , d ) ) {
313
- var match$1 = Caml_primitive . caml_weak_get ( bucket , i ) ;
314
+ var match$1 = Caml_weak . caml_weak_get ( bucket , i ) ;
314
315
if ( match$1 ) {
315
316
return match$1 [ 0 ] ;
316
317
}
@@ -341,7 +342,7 @@ function Make(H) {
341
342
} ;
342
343
var merge = function ( t , d ) {
343
344
return find_or ( t , d , function ( h , index ) {
344
- add_aux ( t , Caml_primitive . caml_weak_set , /* Some */ [ d ] , h , index ) ;
345
+ add_aux ( t , Caml_weak . caml_weak_set , /* Some */ [ d ] , h , index ) ;
345
346
return d ;
346
347
} ) ;
347
348
} ;
@@ -363,7 +364,7 @@ function Make(H) {
363
364
return ifnotfound ;
364
365
}
365
366
else if ( h === hashes [ i ] ) {
366
- var match = Caml_primitive . caml_weak_get_copy ( bucket , i ) ;
367
+ var match = Caml_weak . caml_weak_get_copy ( bucket , i ) ;
367
368
if ( match ) {
368
369
if ( Caml_curry . app2 ( H [ 0 ] , match [ 0 ] , d ) ) {
369
370
return Caml_curry . app2 ( iffound , bucket , i ) ;
@@ -389,7 +390,7 @@ function Make(H) {
389
390
} ;
390
391
var remove = function ( t , d ) {
391
392
return find_shadow ( t , d , function ( w , i ) {
392
- return Caml_primitive . caml_weak_set ( w , i , /* None */ 0 ) ;
393
+ return Caml_weak . caml_weak_set ( w , i , /* None */ 0 ) ;
393
394
} , /* () */ 0 ) ;
394
395
} ;
395
396
var mem = function ( t , d ) {
@@ -412,10 +413,10 @@ function Make(H) {
412
413
return accu ;
413
414
}
414
415
else if ( h === hashes [ i ] ) {
415
- var match = Caml_primitive . caml_weak_get_copy ( bucket , i ) ;
416
+ var match = Caml_weak . caml_weak_get_copy ( bucket , i ) ;
416
417
if ( match ) {
417
418
if ( Caml_curry . app2 ( H [ 0 ] , match [ 0 ] , d ) ) {
418
- var match$1 = Caml_primitive . caml_weak_get ( bucket , i ) ;
419
+ var match$1 = Caml_weak . caml_weak_get ( bucket , i ) ;
419
420
if ( match$1 ) {
420
421
_accu = /* :: */ [
421
422
match$1 [ 0 ] ,
@@ -482,17 +483,17 @@ function Make(H) {
482
483
] ;
483
484
}
484
485
485
- var create = Caml_primitive . caml_weak_create
486
+ var create = Caml_weak . caml_weak_create
486
487
487
- var set = Caml_primitive . caml_weak_set
488
+ var set = Caml_weak . caml_weak_set
488
489
489
- var get = Caml_primitive . caml_weak_get
490
+ var get = Caml_weak . caml_weak_get
490
491
491
- var get_copy = Caml_primitive . caml_weak_get_copy
492
+ var get_copy = Caml_weak . caml_weak_get_copy
492
493
493
- var check = Caml_primitive . caml_weak_check
494
+ var check = Caml_weak . caml_weak_check
494
495
495
- var blit = Caml_primitive . caml_weak_blit
496
+ var blit = Caml_weak . caml_weak_blit
496
497
497
498
exports . create = create ;
498
499
exports . length = length ;
0 commit comments