aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bun.js/bindings/sqlite/JSSQLStatement.cpp21
-rw-r--r--src/bun.js/bindings/sqlite/sqlite.exports.js4
2 files changed, 8 insertions, 17 deletions
diff --git a/src/bun.js/bindings/sqlite/JSSQLStatement.cpp b/src/bun.js/bindings/sqlite/JSSQLStatement.cpp
index 9e0c4b182..063d328e6 100644
--- a/src/bun.js/bindings/sqlite/JSSQLStatement.cpp
+++ b/src/bun.js/bindings/sqlite/JSSQLStatement.cpp
@@ -146,7 +146,6 @@ public:
uint64_t version;
bool hasExecuted = false;
std::unique_ptr<PropertyNameArray> columnNames;
- mutable WriteBarrier<JSC::JSArray> _columnNames;
mutable WriteBarrier<JSC::JSObject> _prototype;
protected:
@@ -155,7 +154,6 @@ protected:
, stmt(stmt)
, version_db(version_db)
, columnNames(new PropertyNameArray(globalObject.vm(), PropertyNameMode::Strings, PrivateSymbolMode::Exclude))
- , _columnNames(globalObject.vm(), this, nullptr)
, _prototype(globalObject.vm(), this, nullptr) {}
void finishCreation(JSC::VM&);
@@ -1331,19 +1329,15 @@ JSC_DEFINE_CUSTOM_GETTER(jsSqlStatementGetColumnNames, (JSGlobalObject * lexical
auto scope = DECLARE_THROW_SCOPE(vm);
CHECK_THIS
- auto* array = castedThis->_columnNames.get();
- if (!castedThis->hasExecuted || castedThis->need_update() || array == nullptr) {
+ if (!castedThis->hasExecuted || castedThis->need_update()) {
initializeColumnNames(lexicalGlobalObject, castedThis);
-
- if (castedThis->columnNames->size() > 0) {
- array = ownPropertyKeys(lexicalGlobalObject, castedThis->_prototype.get(), PropertyNameMode::Strings, DontEnumPropertiesMode::Exclude, CachedPropertyNamesKind::Keys);
- } else {
- array = JSC::constructEmptyArray(lexicalGlobalObject, nullptr, 0);
- }
-
- castedThis->_columnNames.set(vm, castedThis, array);
}
-
+ JSC::JSArray* array;
+ if (castedThis->columnNames->size() > 0) {
+ array = ownPropertyKeys(lexicalGlobalObject, castedThis->_prototype.get(), PropertyNameMode::Strings, DontEnumPropertiesMode::Exclude, CachedPropertyNamesKind::Keys);
+ } else {
+ array = JSC::constructEmptyArray(lexicalGlobalObject, nullptr, 0);
+ }
return JSC::JSValue::encode(array);
}
@@ -1431,7 +1425,6 @@ void JSSQLStatement::visitChildrenImpl(JSCell* cell, Visitor& visitor)
JSSQLStatement* thisObject = jsCast<JSSQLStatement*>(cell);
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->_columnNames);
visitor.append(thisObject->_prototype);
}
diff --git a/src/bun.js/bindings/sqlite/sqlite.exports.js b/src/bun.js/bindings/sqlite/sqlite.exports.js
index acd28164c..6c1bf803d 100644
--- a/src/bun.js/bindings/sqlite/sqlite.exports.js
+++ b/src/bun.js/bindings/sqlite/sqlite.exports.js
@@ -49,7 +49,6 @@ var controllers;
export class Statement {
constructor(raw) {
this.#raw = raw;
- this.#columns = undefined;
switch (raw.paramsCount) {
case 0: {
@@ -70,7 +69,6 @@ export class Statement {
}
#raw;
- #columns;
get;
all;
@@ -164,7 +162,7 @@ export class Statement {
}
get columnNames() {
- return (this.#columns ||= this.#raw.columns);
+ return this.#raw.columns;
}
get paramsCount() {