/
githubmirror
/
deno
Обзор
Документация
Войти
/
githubmirror
/
deno
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
tests/napi/symbol_test.js
61 строка
2 KB
Bartek Iwańczuk
test(napi): add more coverage for advanced features (#32963)
25 мар 2026, 15:30
Не верифицирован
25 мар 2026, 15:30
34f7b23
Код
Авторство
О чём код?
// Copyright 2018-2026 the Deno authors. MIT license. import { assert, assertEquals, loadTestLibrary } from "./common.js"; const testSymbol = loadTestLibrary(); Deno.test("napi symbol1", () => { const sym = testSymbol.symbolNew("test"); assertEquals(sym.toString(), "Symbol(test)"); const myObj = {}; const fooSym = testSymbol.symbolNew("foo"); const otherSym = testSymbol.symbolNew("bar"); myObj.foo = "bar"; myObj[fooSym] = "baz"; myObj[otherSym] = "bing"; assertEquals(myObj.foo, "bar"); assertEquals(myObj[fooSym], "baz"); assertEquals(myObj[otherSym], "bing"); }); Deno.test("napi symbol2", () => { const sym = testSymbol.symbolNew("test"); assertEquals(sym.toString(), "Symbol(test)"); const myObj = {}; const fooSym = testSymbol.symbolNew("foo"); myObj.foo = "bar"; myObj[fooSym] = "baz"; assertEquals(Object.keys(myObj), ["foo"]); assertEquals(Object.getOwnPropertyNames(myObj), ["foo"]); assertEquals(Object.getOwnPropertySymbols(myObj), [fooSym]); }); Deno.test("napi symbol3", () => { assert(testSymbol.symbolNew() !== testSymbol.symbolNew()); assert(testSymbol.symbolNew("foo") !== testSymbol.symbolNew("foo")); assert(testSymbol.symbolNew("foo") !== testSymbol.symbolNew("bar")); const foo1 = testSymbol.symbolNew("foo"); const foo2 = testSymbol.symbolNew("foo"); const object = { [foo1]: 1, [foo2]: 2, }; assertEquals(object[foo1], 1); assertEquals(object[foo2], 2); }); Deno.test("napi symbol_for", () => { const sym1 = testSymbol.symbolFor("shared"); const sym2 = testSymbol.symbolFor("shared"); // symbol_for with the same key returns the same symbol (like Symbol.for) assert(sym1 === sym2); assert(sym1 === Symbol.for("shared")); // Different keys produce different symbols const sym3 = testSymbol.symbolFor("other"); assert(sym1 !== sym3); });