File tree 3 files changed +27
-2
lines changed
3 files changed +27
-2
lines changed Original file line number Diff line number Diff line change @@ -24,5 +24,5 @@ module.exports = function isBoolean(value) {
24
24
if ( value === null || typeof value !== 'object' ) {
25
25
return false ;
26
26
}
27
- return hasToStringTag && Symbol . toStringTag in value ? tryBooleanObject ( value ) : $toString ( value ) === boolClass ;
27
+ return hasToStringTag ? tryBooleanObject ( value ) : $toString ( value ) === boolClass ;
28
28
} ;
Original file line number Diff line number Diff line change 47
47
"@ljharb/eslint-config" : " ^21.1.1" ,
48
48
"@ljharb/tsconfig" : " ^0.2.3" ,
49
49
"@types/core-js" : " ^2.5.8" ,
50
+ "@types/object-inspect" : " ^1.13.0" ,
50
51
"@types/tape" : " ^5.8.1" ,
51
52
"auto-changelog" : " ^2.5.0" ,
52
53
"core-js" : " ^3.40.0" ,
56
57
"in-publish" : " ^2.0.1" ,
57
58
"npmignore" : " ^0.3.1" ,
58
59
"nyc" : " ^10.3.2" ,
60
+ "object-inspect" : " ^1.13.4" ,
59
61
"safe-publish-latest" : " ^2.0.0" ,
60
62
"tape" : " ^5.9.0" ,
61
63
"typescript" : " next"
Original file line number Diff line number Diff line change 1
1
'use strict' ;
2
2
3
3
var test = require ( 'tape' ) ;
4
- var isBoolean = require ( '../' ) ;
5
4
var hasToStringTag = require ( 'has-tostringtag/shams' ) ( ) ;
5
+ var inspect = require ( 'object-inspect' ) ;
6
+
7
+ var isBoolean = require ( '../' ) ;
6
8
7
9
test ( 'not Booleans' , function ( t ) {
8
10
t . test ( 'primitives' , function ( st ) {
@@ -48,3 +50,24 @@ test('Booleans', function (t) {
48
50
t . ok ( isBoolean ( Object ( false ) ) , 'Object(false) is Boolean' ) ;
49
51
t . end ( ) ;
50
52
} ) ;
53
+
54
+ test ( 'Proxy' , { skip : typeof Proxy !== 'function' || ! hasToStringTag } , function ( t ) {
55
+ /** @type {Record<PropertyKey, unknown> } */
56
+ var target = { } ;
57
+ target [ Symbol . toStringTag ] = 'Boolean' ;
58
+ var fake = new Proxy ( target , { has : function ( ) { return false ; } } ) ;
59
+
60
+ t . equal (
61
+ isBoolean ( target ) ,
62
+ false ,
63
+ inspect ( target ) + ' is not a Boolean'
64
+ ) ;
65
+
66
+ t . equal (
67
+ isBoolean ( fake ) ,
68
+ false ,
69
+ inspect ( fake ) + ' is not a Boolean'
70
+ ) ;
71
+
72
+ t . end ( ) ;
73
+ } ) ;
You can’t perform that action at this time.
0 commit comments