import { shouldBe } from "./resources/assert.js"; import * as A from "./namespace-object-inline-caching/a.js" import * as B from "./namespace-object-inline-caching/b.js" // unset caching should be disabled for namespace object. { function lookup(ns) { return ns.hello; } noInline(lookup); shouldBe(A.hello, undefined); shouldBe(B.hello, 42); for (let i = 0; i < 1e4; ++i) shouldBe(lookup(A), undefined); shouldBe(lookup(B), 42); } // usual caching should be disabled for namespace object. { function lookup(ns) { return ns.goodbye; } noInline(lookup); shouldBe(A.goodbye, 0); shouldBe(B.goodbye, undefined); for (let i = 0; i < 1e4; ++i) shouldBe(lookup(A), 0); shouldBe(lookup(B), undefined); }