forked from LeenkxTeam/Kmake
149 lines
2.7 KiB
JavaScript
149 lines
2.7 KiB
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.
|
||
|
|
|
||
|
|
// Flags: --fuzzing --turbolev --jit-fuzzing
|
||
|
|
|
||
|
|
this.WScript = new Proxy({}, {
|
||
|
|
get() {
|
||
|
|
switch (name) {
|
||
|
|
case 'Echo':
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
|
||
|
|
var V8OptimizationStatus = {
|
||
|
|
kIsFunction: 1 << 0,
|
||
|
|
};
|
||
|
|
|
||
|
|
function __isPropertyOfType(obj, name, type) {
|
||
|
|
let desc;
|
||
|
|
|
||
|
|
desc = Object.getOwnPropertyDescriptor(obj, name);
|
||
|
|
|
||
|
|
if (!desc) return false;
|
||
|
|
return typeof type === 'undefined' || typeof desc.value === type;
|
||
|
|
}
|
||
|
|
|
||
|
|
function __getProperties(obj, type) {
|
||
|
|
let properties = [];
|
||
|
|
|
||
|
|
for (let name of Object.getOwnPropertyNames(obj)) {
|
||
|
|
if (__isPropertyOfType(obj, name, type)) {
|
||
|
|
properties.push(name);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return properties;
|
||
|
|
}
|
||
|
|
function* __getObjects(root = this, level = 0) {
|
||
|
|
|
||
|
|
let obj_names = __getProperties(root, 'object');
|
||
|
|
for (let obj_name of obj_names) {
|
||
|
|
let obj = root[obj_name];
|
||
|
|
if (obj === root) continue;
|
||
|
|
yield obj;
|
||
|
|
yield* __getObjects(obj, level + 1);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function __getRandomObject(seed) {
|
||
|
|
let objects = [];
|
||
|
|
for (let obj of __getObjects()) {
|
||
|
|
objects.push(obj);
|
||
|
|
}
|
||
|
|
|
||
|
|
return objects[seed % objects.length];
|
||
|
|
}
|
||
|
|
|
||
|
|
function __getRandomProperty(obj, seed) {
|
||
|
|
let properties = __getProperties(obj);
|
||
|
|
return properties[seed % properties.length];
|
||
|
|
}
|
||
|
|
|
||
|
|
function __callRandomFunction(obj, seed, ...args) {
|
||
|
|
let functions = __getProperties(obj);
|
||
|
|
let random_function = functions[0];
|
||
|
|
|
||
|
|
obj[random_function](...args);
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
function __f_3() {
|
||
|
|
return [[]];
|
||
|
|
}
|
||
|
|
|
||
|
|
/* VariableOrObjectMutator: Random mutation */
|
||
|
|
try {
|
||
|
|
|
||
|
|
__v_0, {
|
||
|
|
get: function () {
|
||
|
|
|
||
|
|
if (__v_1 != null && typeof __v_1 == "object") try {
|
||
|
|
Object.defineProperty(__v_1, __v_0, 148676, {
|
||
|
|
});
|
||
|
|
} catch (e) {}
|
||
|
|
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
} catch (e) {}
|
||
|
|
|
||
|
|
try {
|
||
|
|
__v_0 = __f_3();
|
||
|
|
__v_1 = __f_3();
|
||
|
|
;
|
||
|
|
} catch (e) {}
|
||
|
|
|
||
|
|
function __f_4(__v_2, __v_3) {
|
||
|
|
var __v_6 = { deopt: 0 };
|
||
|
|
|
||
|
|
try {
|
||
|
|
|
||
|
|
Object.defineProperty(__v_6, __getRandomProperty(__v_6, 874354), {
|
||
|
|
get: function () {
|
||
|
|
__callRandomFunction(__getRandomObject(501943), 864774, __v_6[1], __getRandomObject());
|
||
|
|
return __getRandomObject();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
} catch (e) {}
|
||
|
|
try {
|
||
|
|
__v_4 = __v_3(__v_2,
|
||
|
|
30, __v_6);
|
||
|
|
;
|
||
|
|
} catch (e) {}
|
||
|
|
|
||
|
|
try {
|
||
|
|
if (__v_0 != null && typeof __v_0 == "object") Object.defineProperty(__v_0, __getRandomProperty(__v_0), {
|
||
|
|
value: __getRandomObject(107254)
|
||
|
|
});
|
||
|
|
} catch (e) {}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
function __f_6(__v_13, __v_14, __v_15, __v_16) {
|
||
|
|
new __v_13(__v_14, __v_15, __v_16);
|
||
|
|
}
|
||
|
|
|
||
|
|
function __f_8(__v_21) {
|
||
|
|
try {
|
||
|
|
__f_4();
|
||
|
|
} catch (e) {}
|
||
|
|
|
||
|
|
__f_4(__v_21, __f_6);
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function __f_9(__v_22, __v_23) {
|
||
|
|
try {
|
||
|
|
__v_23.deopt;
|
||
|
|
} catch (e) {}
|
||
|
|
}
|
||
|
|
|
||
|
|
try {
|
||
|
|
__f_8(__f_9);
|
||
|
|
} catch (e) {}
|