| var createBuiltin = $vm.createBuiltin; |
| var loadGetterFromGetterSetter = $vm.loadGetterFromGetterSetter; |
| throw new Error("Bad:" + m); |
| function makePolyProtoObject() { |
| constructor() { this._field = 42; } |
| for (let i = 0; i < 15; ++i) |
| function tryGetByIdText(propertyName) { return `(function (base) { return @tryGetById(base, '${propertyName}'); })`; } |
| let getFoo = createBuiltin(tryGetByIdText("foo")); |
| let getBar = createBuiltin(tryGetByIdText("bar")); |
| let getNonExistentField = createBuiltin(tryGetByIdText("nonExistentField")); |
| let x = makePolyProtoObject(); |
| x.__proto__ = { foo: 42, get bar() { return 22; } }; |
| let barGetter = Object.getOwnPropertyDescriptor(x.__proto__, "bar").get; |
| assert(typeof barGetter === "function"); |
| assert(barGetter() === 22); |
| assert(getFoo(x) === 42); |
| assert(loadGetterFromGetterSetter(getBar(x)) === barGetter); |
| assert(getNonExistentField(x) === undefined); |
| for (let i = 0; i < 1000; ++i) { |