nodejs/deps/v8/test/mjsunit/maglev/extras-cped.js

40 lines
907 B
JavaScript
Raw Permalink Normal View History

deps: V8: backport 7857eb34db42 Original commit message: Reland^2 "Add ContinuationPreservedEmbedderData builtins to extras binding" This reverts commit cb1277e97a0ed32fd893be9f4e927f6e8b6c566c. > Original change's description: > > Add ContinuationPreservedEmbedderData builtins to extras binding > > > > Node.js and Deno wish to use CPED for AsyncLocalStorage and APM, which > > needs a high performance implementation. These builtins allow JavaScript > > to handle CPED performantly. > > > > Change-Id: I7577be80818524baa52791dfce57d442d7c0c933 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5638129 > > Commit-Queue: snek <snek@chromium.org> > > Reviewed-by: Darius Mercadier <dmercadier@chromium.org> > > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#94607} > > Change-Id: Ief390f0b99891c8de83b4c794180440f91cbaf1f > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5649024 > Auto-Submit: Shu-yu Guo <syg@chromium.org> > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Cr-Commit-Position: refs/heads/main@{#94608} Change-Id: I4943071ffe192084e83bfe3113cfe9c92ef31465 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5677045 Reviewed-by: Darius Mercadier <dmercadier@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: snek <snek@chromium.org> Cr-Commit-Position: refs/heads/main@{#94866} Refs: v8/v8@7857eb3 PR-URL: https://github.com/nodejs/node/pull/53997 Refs: https://github.com/v8/v8/commit/7857eb34db42f339b337c6bdfb0d10deb14862f3 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
2024-07-26 07:35:44 -07:00
// 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: --allow-natives-syntax
const {
getExtrasBindingObject,
getContinuationPreservedEmbedderDataViaAPIForTesting,
} = d8;
const {
getContinuationPreservedEmbedderData,
setContinuationPreservedEmbedderData,
} = getExtrasBindingObject();
function testOpt(v) {
setContinuationPreservedEmbedderData(v);
return getContinuationPreservedEmbedderData();
}
const runTestOpt = (v) => {
const data = testOpt(v);
assertEquals(data, v);
assertEquals(getContinuationPreservedEmbedderDataViaAPIForTesting(), v);
};
%PrepareFunctionForOptimization(testOpt);
runTestOpt(5);
runTestOpt(5.5);
runTestOpt({});
%OptimizeMaglevOnNextCall(testOpt);
runTestOpt(5);
runTestOpt(5.5);
runTestOpt({});
assertTrue(isMaglevved(testOpt));