@@ -7,8 +7,11 @@ test(require(`../build/${buildType}/binding.node`));
77test ( require ( `../build/${ buildType } /binding_noexcept.node` ) ) ;
88
99function test ( binding ) {
10+ const externalValue = binding . basic_types_value . createExternal ( ) ;
11+
1012 function isObject ( value ) {
11- return typeof value === 'object' || typeof value === 'function' ;
13+ return ( typeof value === 'object' && value !== externalValue ) ||
14+ ( typeof value === 'function' ) ;
1215 }
1316
1417 function detailedTypeOf ( value ) {
@@ -22,6 +25,9 @@ function test(binding) {
2225 if ( Array . isArray ( value ) )
2326 return 'array' ;
2427
28+ if ( value === externalValue )
29+ return 'external' ;
30+
2531 if ( ! value . constructor )
2632 return type ;
2733
@@ -56,7 +62,8 @@ function test(binding) {
5662 { } ,
5763 function ( ) { } ,
5864 new Promise ( ( resolve , reject ) => { } ) ,
59- new DataView ( new ArrayBuffer ( 12 ) )
65+ new DataView ( new ArrayBuffer ( 12 ) ) ,
66+ externalValue
6067 ] ;
6168
6269 testValueList . forEach ( ( testValue ) => {
@@ -110,6 +117,7 @@ function test(binding) {
110117 typeCheckerTest ( value . isFunction , 'function' ) ;
111118 typeCheckerTest ( value . isPromise , 'promise' ) ;
112119 typeCheckerTest ( value . isDataView , 'dataview' ) ;
120+ typeCheckerTest ( value . isExternal , 'external' ) ;
113121
114122 typeConverterTest ( value . toBoolean , Boolean ) ;
115123 assert . strictEqual ( value . toBoolean ( undefined ) , false ) ;
0 commit comments