mirror of
https://github.com/nodejs/node.git
synced 2026-11-09 15:11:11 -05:00
This adds RegExp or error constructor arguments to the remaining places where it is missing in preparation for the commit that will enforce the presence of at least two arguments. PR-URL: https://github.com/nodejs/node/pull/12270 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
43 lines
1.7 KiB
JavaScript
43 lines
1.7 KiB
JavaScript
'use strict';
|
|
const common = require('../../common');
|
|
const assert = require('assert');
|
|
|
|
// Testing api calls for a constructor that defines properties
|
|
const TestConstructor = require(`./build/${common.buildType}/test_constructor`);
|
|
const test_object = new TestConstructor();
|
|
|
|
assert.strictEqual(test_object.echo('hello'), 'hello');
|
|
|
|
test_object.readwriteValue = 1;
|
|
assert.strictEqual(test_object.readwriteValue, 1);
|
|
test_object.readwriteValue = 2;
|
|
assert.strictEqual(test_object.readwriteValue, 2);
|
|
|
|
assert.throws(() => { test_object.readonlyValue = 3; }, TypeError);
|
|
|
|
assert.ok(test_object.hiddenValue);
|
|
|
|
// Properties with napi_enumerable attribute should be enumerable.
|
|
const propertyNames = [];
|
|
for (const name in test_object) {
|
|
propertyNames.push(name);
|
|
}
|
|
assert.ok(propertyNames.indexOf('echo') >= 0);
|
|
assert.ok(propertyNames.indexOf('readwriteValue') >= 0);
|
|
assert.ok(propertyNames.indexOf('readonlyValue') >= 0);
|
|
assert.ok(propertyNames.indexOf('hiddenValue') < 0);
|
|
assert.ok(propertyNames.indexOf('readwriteAccessor1') < 0);
|
|
assert.ok(propertyNames.indexOf('readwriteAccessor2') < 0);
|
|
assert.ok(propertyNames.indexOf('readonlyAccessor1') < 0);
|
|
assert.ok(propertyNames.indexOf('readonlyAccessor2') < 0);
|
|
|
|
// The napi_writable attribute should be ignored for accessors.
|
|
test_object.readwriteAccessor1 = 1;
|
|
assert.strictEqual(test_object.readwriteAccessor1, 1);
|
|
assert.strictEqual(test_object.readonlyAccessor1, 1);
|
|
assert.throws(() => { test_object.readonlyAccessor1 = 3; }, TypeError);
|
|
test_object.readwriteAccessor2 = 2;
|
|
assert.strictEqual(test_object.readwriteAccessor2, 2);
|
|
assert.strictEqual(test_object.readonlyAccessor2, 2);
|
|
assert.throws(() => { test_object.readonlyAccessor2 = 3; }, TypeError);
|