blob: 62e58767ea593ca413a19d283303bd29cc793ace [file]
// Copyright 2026 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
function makeInstanceFieldInitializerContext() {
class Target {
instanceField = (() => {
const instanceInitLocalCaptured = {kind: 'instance-init-local-captured'};
const instanceInitLocalDead = {data: new Array(128).fill(0)};
(function discardedInstanceInitLocalDead() {
return instanceInitLocalDead;
})();
return function readInstanceInitLocal() {
return instanceInitLocalCaptured;
};
})();
}
return new Target();
}
function makeStaticFieldInitializerContext() {
class Target {
static staticField = (() => {
const staticInitLocalCaptured = {kind: 'static-init-local-captured'};
const staticInitLocalDead = {data: new Array(128).fill(0)};
(function discardedStaticInitLocalDead() {
return staticInitLocalDead;
})();
return function readStaticInitLocal() {
return staticInitLocalCaptured;
};
})();
}
return Target;
}
globalThis.classInstanceInitializerContext = makeInstanceFieldInitializerContext();
globalThis.classStaticInitializerContext = makeStaticFieldInitializerContext();