Skip to content
This repository was archived by the owner on May 14, 2024. It is now read-only.

Commit 9d69b5f

Browse files
authored
Merge pull request #630 from greatcare/629-instanceof
Replace instanceof check with duck-typing in Filter#toBer mixin
2 parents 8b70279 + 1a09e62 commit 9d69b5f

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

lib/filters/filter.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,10 @@
22

33
// var assert = require('assert')
44

5-
var asn1 = require('asn1')
6-
75
var Protocol = require('../protocol')
86

97
/// --- Globals
108

11-
var BerWriter = asn1.BerWriter
12-
139
var TYPES = {
1410
and: Protocol.FILTER_AND,
1511
or: Protocol.FILTER_OR,
@@ -38,9 +34,18 @@ function isFilter (filter) {
3834
return false
3935
}
4036

37+
function isBerWriter (ber) {
38+
return Boolean(
39+
ber &&
40+
typeof (ber) === 'object' &&
41+
typeof (ber.startSequence) === 'function' &&
42+
typeof (ber.endSequence) === 'function'
43+
)
44+
}
45+
4146
function mixin (target) {
4247
target.prototype.toBer = function toBer (ber) {
43-
if (!ber || !(ber instanceof BerWriter)) { throw new TypeError('ber (BerWriter) required') }
48+
if (isBerWriter(ber) === false) { throw new TypeError('ber (BerWriter) required') }
4449

4550
ber.startSequence(TYPES[this.type])
4651
ber = this._toBer(ber)

0 commit comments

Comments
 (0)