(t *testing.T)
| 219 | } |
| 220 | |
| 221 | func TestValuePropertyDescriptorAndAtomInt64APIs(t *testing.T) { |
| 222 | useStableOwnerHooksForLegacySubtests(t) |
| 223 | |
| 224 | rt := NewRuntime() |
| 225 | defer rt.Close() |
| 226 | ctx := rt.NewContext() |
| 227 | defer ctx.Close() |
| 228 | |
| 229 | obj := ctx.NewObject() |
| 230 | defer obj.Free() |
| 231 | |
| 232 | v := ctx.NewInt32(7) |
| 233 | defer v.Free() |
| 234 | require.True(t, obj.DefinePropertyValue("x", v, 0)) |
| 235 | x := obj.Get("x") |
| 236 | defer x.Free() |
| 237 | require.Equal(t, int32(7), x.ToInt32()) |
| 238 | |
| 239 | atomX := ctx.NewAtom("x2") |
| 240 | defer atomX.Free() |
| 241 | v2Local := ctx.NewInt32(8) |
| 242 | defer v2Local.Free() |
| 243 | require.True(t, obj.DefinePropertyAtom(atomX, PropertyDescriptor{ |
| 244 | Flags: PropHasValue | PropHasWritable | PropHasConfigurable | PropWritable | PropConfigurable, |
| 245 | Value: v2Local, |
| 246 | })) |
| 247 | x2 := obj.Get("x2") |
| 248 | defer x2.Free() |
| 249 | require.Equal(t, int32(8), x2.ToInt32()) |
| 250 | |
| 251 | v3Local := ctx.NewInt32(11) |
| 252 | defer v3Local.Free() |
| 253 | require.True(t, obj.DefineProperty("x3", PropertyDescriptor{ |
| 254 | Flags: PropHasValue | PropHasWritable | PropHasConfigurable | PropWritable | PropConfigurable, |
| 255 | Value: v3Local, |
| 256 | })) |
| 257 | x3 := obj.Get("x3") |
| 258 | defer x3.Free() |
| 259 | require.Equal(t, int32(11), x3.ToInt32()) |
| 260 | |
| 261 | getter := ctx.Eval(`(function(){ return 42; })`) |
| 262 | defer getter.Free() |
| 263 | setter := ctx.Eval(`(function(v){ this._s = v; })`) |
| 264 | defer setter.Free() |
| 265 | require.True(t, obj.DefinePropertyGetSet("gs", getter, setter, 0)) |
| 266 | |
| 267 | atomGS := ctx.NewAtom("gs2") |
| 268 | defer atomGS.Free() |
| 269 | require.True(t, obj.DefinePropertyAtom(atomGS, PropertyDescriptor{ |
| 270 | Getter: getter, |
| 271 | Setter: setter, |
| 272 | })) |
| 273 | |
| 274 | setVal := ctx.NewInt32(9) |
| 275 | defer setVal.Free() |
| 276 | obj.Set("gs", setVal) |
| 277 | s := obj.Get("_s") |
| 278 | defer s.Free() |
nothing calls this directly
no test coverage detected