src: fix `napi_check_object_type_tag()` · nodejs/node@b4c75a9 · GitHub
Skip to content

Commit b4c75a9

Browse files
daeyeondanielleadams
authored andcommitted
src: fix napi_check_object_type_tag()
This fixes a comparison failure occurring when the upper value of a type tag is 0, or a type tag value is 0. Signed-off-by: Daeyeon Jeong daeyeon.dev@gmail.com PR-URL: #43788 Fixes: #43786 Reviewed-By: Michael Dawson <midawson@redhat.com> Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
1 parent 8c8c97d commit b4c75a9

3 files changed

Lines changed: 24 additions & 4 deletions

File tree

src/js_native_api_v8.cc

Lines changed: 10 additions & 2 deletions

test/js-native-api/test_object/test.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,14 +163,23 @@ assert.strictEqual(newObject.test_string, 'test string');
163163
// Verify that objects can be type-tagged and type-tag-checked.
164164
const obj1 = test_object.TypeTaggedInstance(0);
165165
const obj2 = test_object.TypeTaggedInstance(1);
166+
const obj3 = test_object.TypeTaggedInstance(2);
167+
const obj4 = test_object.TypeTaggedInstance(3);
166168

167169
// Verify that type tags are correctly accepted.
168170
assert.strictEqual(test_object.CheckTypeTag(0, obj1), true);
169171
assert.strictEqual(test_object.CheckTypeTag(1, obj2), true);
172+
assert.strictEqual(test_object.CheckTypeTag(2, obj3), true);
173+
assert.strictEqual(test_object.CheckTypeTag(3, obj4), true);
170174

171175
// Verify that wrongly tagged objects are rejected.
172176
assert.strictEqual(test_object.CheckTypeTag(0, obj2), false);
173177
assert.strictEqual(test_object.CheckTypeTag(1, obj1), false);
178+
assert.strictEqual(test_object.CheckTypeTag(0, obj3), false);
179+
assert.strictEqual(test_object.CheckTypeTag(1, obj4), false);
180+
assert.strictEqual(test_object.CheckTypeTag(2, obj4), false);
181+
assert.strictEqual(test_object.CheckTypeTag(3, obj3), false);
182+
assert.strictEqual(test_object.CheckTypeTag(4, obj3), false);
174183

175184
// Verify that untagged objects are rejected.
176185
assert.strictEqual(test_object.CheckTypeTag(0, {}), false);

test/js-native-api/test_object/test_object.c

Lines changed: 5 additions & 2 deletions

0 commit comments

Comments
 (0)