Skip to content

Commit 5c63b8d

Browse files
jmikoladerickr
authored andcommitted
PHPC-838: Preserve scope when serializing Javascript to BSON
1 parent 9eb4a80 commit 5c63b8d

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

src/bson.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -983,10 +983,10 @@ void object_to_bson(zval *object, php_phongo_bson_flags_t flags, const char *key
983983
if (instanceof_function(Z_OBJCE_P(object), php_phongo_javascript_ce TSRMLS_CC)) {
984984
if (php_phongo_javascript_has_scope(object TSRMLS_CC)) {
985985
mongoc_log(MONGOC_LOG_LEVEL_TRACE, MONGOC_LOG_DOMAIN, "encoding Javascript with scope");
986-
bson_append_code(bson, key, key_len, php_phongo_javascript_get_code(object TSRMLS_CC));
986+
bson_append_code_with_scope(bson, key, key_len, php_phongo_javascript_get_code(object TSRMLS_CC), php_phongo_javascript_get_scope(object TSRMLS_CC));
987987
} else {
988988
mongoc_log(MONGOC_LOG_LEVEL_TRACE, MONGOC_LOG_DOMAIN, "encoding Javascript without scope");
989-
bson_append_code_with_scope(bson, key, key_len, php_phongo_javascript_get_code(object TSRMLS_CC), php_phongo_javascript_get_scope(object TSRMLS_CC));
989+
bson_append_code(bson, key, key_len, php_phongo_javascript_get_code(object TSRMLS_CC));
990990
}
991991
return;
992992
}

tests/bson/bson-javascript-jsonserialize-004.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ var_dump(toPHP(fromJSON($json)));
1616
===DONE===
1717
<?php exit(0); ?>
1818
--EXPECTF--
19-
{ "foo" : { "$code" : "function foo(bar) { return bar; }" } }
19+
{ "foo" : { "$code" : "function foo(bar) { return bar; }", "$scope" : { "foo" : 42 } } }
2020
{"foo":{"$code":"function foo(bar) { return bar; }","$scope":{"foo":42}}}
2121
object(stdClass)#%d (%d) {
2222
["foo"]=>

0 commit comments

Comments
 (0)