diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:43:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:43:14 +0000 |
commit | 8dd16259287f58f9273002717ec4d27e97127719 (patch) | |
tree | 3863e62a53829a84037444beab3abd4ed9dfc7d0 /js/src/vm/JSScript.h | |
parent | Releasing progress-linux version 126.0.1-1~progress7.99u1. (diff) | |
download | firefox-8dd16259287f58f9273002717ec4d27e97127719.tar.xz firefox-8dd16259287f58f9273002717ec4d27e97127719.zip |
Merging upstream version 127.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | js/src/vm/JSScript.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/js/src/vm/JSScript.h b/js/src/vm/JSScript.h index 4e44d22304..c46ff65d2d 100644 --- a/js/src/vm/JSScript.h +++ b/js/src/vm/JSScript.h @@ -2040,6 +2040,23 @@ class JSScript : public js::BaseScript { return getString(GET_GCTHING_INDEX(pc)); } + bool atomizeString(JSContext* cx, jsbytecode* pc) { + MOZ_ASSERT(containsPC<js::GCThingIndex>(pc)); + MOZ_ASSERT(js::JOF_OPTYPE((JSOp)*pc) == JOF_STRING); + js::GCThingIndex index = GET_GCTHING_INDEX(pc); + JSString* str = getString(index); + if (str->isAtom()) { + return true; + } + JSAtom* atom = js::AtomizeString(cx, str); + if (!atom) { + return false; + } + js::gc::CellPtrPreWriteBarrier(data_->gcthings()[index]); + data_->gcthings()[index] = JS::GCCellPtr(atom); + return true; + } + JSAtom* getAtom(js::GCThingIndex index) const { return &gcthings()[index].as<JSString>().asAtom(); } |