@@ -7,8 +7,11 @@ test(require(`../build/${buildType}/binding.node`));
7
7
test ( require ( `../build/${ buildType } /binding_noexcept.node` ) ) ;
8
8
9
9
function test ( binding ) {
10
+ const externalValue = binding . basic_types_value . createExternal ( ) ;
11
+
10
12
function isObject ( value ) {
11
- return typeof value === 'object' || typeof value === 'function' ;
13
+ return ( typeof value === 'object' && value !== externalValue ) ||
14
+ ( typeof value === 'function' ) ;
12
15
}
13
16
14
17
function detailedTypeOf ( value ) {
@@ -22,6 +25,9 @@ function test(binding) {
22
25
if ( Array . isArray ( value ) )
23
26
return 'array' ;
24
27
28
+ if ( value === externalValue )
29
+ return 'external' ;
30
+
25
31
if ( ! value . constructor )
26
32
return type ;
27
33
@@ -56,7 +62,8 @@ function test(binding) {
56
62
{ } ,
57
63
function ( ) { } ,
58
64
new Promise ( ( resolve , reject ) => { } ) ,
59
- new DataView ( new ArrayBuffer ( 12 ) )
65
+ new DataView ( new ArrayBuffer ( 12 ) ) ,
66
+ externalValue
60
67
] ;
61
68
62
69
testValueList . forEach ( ( testValue ) => {
@@ -110,6 +117,7 @@ function test(binding) {
110
117
typeCheckerTest ( value . isFunction , 'function' ) ;
111
118
typeCheckerTest ( value . isPromise , 'promise' ) ;
112
119
typeCheckerTest ( value . isDataView , 'dataview' ) ;
120
+ typeCheckerTest ( value . isExternal , 'external' ) ;
113
121
114
122
typeConverterTest ( value . toBoolean , Boolean ) ;
115
123
assert . strictEqual ( value . toBoolean ( undefined ) , false ) ;
0 commit comments