Skip to content

Commit d4a6de4

Browse files
committed
make fewer assumptions about exported items, falsy values can now be exported
1 parent 68bd576 commit d4a6de4

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

jsbits/export.js

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
function h$exportValue(fp1a,fp1b,fp2a,fp2b,o) {
2-
var e = { fp1a: fp1a
3-
, fp1b: fp1b
4-
, fp2a: fp2a
5-
, fp2b: fp2b
6-
, root: o
7-
, _key: -1
8-
};
9-
h$retain(e);
10-
return e;
2+
var e = { fp1a: fp1a
3+
, fp1b: fp1b
4+
, fp2a: fp2a
5+
, fp2b: fp2b
6+
, released: false
7+
, root: o
8+
, _key: -1
9+
};
10+
h$retain(e);
11+
return e;
1112
}
1213

1314
function h$derefExport(fp1a,fp1b,fp2a,fp2b,e) {
14-
if(!e || typeof e !== 'object') return null;
15-
if(!e.root) return null;
16-
if(fp1a !== e.fp1a || fp1b !== e.fp1b ||
17-
fp2a !== e.fp2a || fp2b !== e.fp2b) return null;
18-
return e.root;
15+
if(!e || typeof e !== 'object') return null;
16+
if(e.released) return null;
17+
if(fp1a !== e.fp1a || fp1b !== e.fp1b ||
18+
fp2a !== e.fp2a || fp2b !== e.fp2b) return null;
19+
return e.root;
1920
}
2021

2122
function h$releaseExport(e) {
22-
h$release(e);
23-
e.root = null;
23+
h$release(e);
24+
e.released = true;
25+
e.root = null;
2426
}

0 commit comments

Comments
 (0)