mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 21:19:50 +01:00
066e77ae8d
Instead of calling into C++ to use the private symbols, use an ObjectTemplate to create an object that holds the symbols and use them directly from JS land. PR-URL: https://github.com/nodejs/node/pull/45379 Reviewed-By: Chengzhong Wu <legendecas@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
31 lines
741 B
JavaScript
31 lines
741 B
JavaScript
'use strict';
|
|
// Flags: --expose-internals
|
|
|
|
require('../common');
|
|
const assert = require('assert');
|
|
const fixtures = require('../common/fixtures');
|
|
const { internalBinding } = require('internal/test/binding');
|
|
|
|
const {
|
|
privateSymbols: {
|
|
arrow_message_private_symbol,
|
|
},
|
|
} = internalBinding('util');
|
|
|
|
const obj = {};
|
|
assert.strictEqual(obj[arrow_message_private_symbol], undefined);
|
|
|
|
obj[arrow_message_private_symbol] = 'bar';
|
|
assert.strictEqual(obj[arrow_message_private_symbol], 'bar');
|
|
assert.deepStrictEqual(Reflect.ownKeys(obj), []);
|
|
|
|
let arrowMessage;
|
|
|
|
try {
|
|
require(fixtures.path('syntax', 'bad_syntax'));
|
|
} catch (err) {
|
|
arrowMessage = err[arrow_message_private_symbol];
|
|
}
|
|
|
|
assert.match(arrowMessage, /bad_syntax\.js:1/);
|