details: http://hg.nginx.org/njs/rev/53d2024f6ca3 branches: changeset: 239:53d2024f6ca3 user: Igor Sysoev <i...@sysoev.ru> date: Fri Nov 04 23:45:35 2016 +0300 description: Function expressions did not have prototypes.
diffstat: njs/njs_vm.c | 1 + njs/test/njs_unit_test.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 0 deletions(-) diffs (32 lines): diff -r 109932e1d3c8 -r 53d2024f6ca3 njs/njs_vm.c --- a/njs/njs_vm.c Fri Nov 04 18:25:55 2016 +0300 +++ b/njs/njs_vm.c Fri Nov 04 23:45:35 2016 +0300 @@ -414,6 +414,7 @@ njs_vmcode_function(njs_vm_t *vm, njs_va function = nxt_mem_cache_zalloc(vm->mem_cache_pool, sizeof(njs_function_t)); if (nxt_fast_path(function != NULL)) { + function->object.shared_hash = vm->shared->function_prototype_hash; function->object.__proto__ = &vm->prototypes[NJS_PROTOTYPE_FUNCTION].object; function->args_offset = 1; diff -r 109932e1d3c8 -r 53d2024f6ca3 njs/test/njs_unit_test.c --- a/njs/test/njs_unit_test.c Fri Nov 04 18:25:55 2016 +0300 +++ b/njs/test/njs_unit_test.c Fri Nov 04 23:45:35 2016 +0300 @@ -4167,6 +4167,17 @@ static njs_unit_test_t njs_test[] = "o.constructor === F"), nxt_string("true") }, + { nxt_string("function F() { return }" + "var o = new F();" + "o.__proto__ === F.prototype"), + nxt_string("true") }, + + { nxt_string("function F(){}; typeof F.prototype"), + nxt_string("object") }, + + { nxt_string("var F = function (){}; typeof F.prototype"), + nxt_string("object") }, + { nxt_string("function F() { return Number }" "var o = new (F())(5);" "typeof o +' '+ o"), _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel