35 lines
859 B
JavaScript
35 lines
859 B
JavaScript
|
// Copyright 2024 the V8 project authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
const Probe =function() {
|
||
|
const ProxyConstructor = Proxy;
|
||
|
const setPrototypeOf = Object.setPrototypeOf;
|
||
|
function probe(id, value) {
|
||
|
let handler = {
|
||
|
};
|
||
|
originalPrototype = value;
|
||
|
newPrototype = new ProxyConstructor(originalPrototype, handler);
|
||
|
setPrototypeOf(value, newPrototype);
|
||
|
}
|
||
|
function probeWithErrorHandling(id, value) {
|
||
|
probe(id, value);
|
||
|
}
|
||
|
return {
|
||
|
probe: probeWithErrorHandling,
|
||
|
};
|
||
|
}();
|
||
|
function f0(a1) {
|
||
|
this.a = a1;
|
||
|
}
|
||
|
const v6 = new f0(1);
|
||
|
new f0(1.5);
|
||
|
function f9(a10) {
|
||
|
Probe.probe("v56", a10);
|
||
|
try{
|
||
|
a10.prototype = a10;
|
||
|
} catch(e) {}
|
||
|
}
|
||
|
f9(f0);
|
||
|
f9(v6);
|