Commit 5e48363
authored
Fix prototype chain traversing (#4458)
After the introduction of the Proxy builtin object there was
a possibility to traverse the prototype chain with an invalid object.
The prototype was freed before it's data/properties were queried resulting
in accessing invalid information.
By forcing the allocator to always do a gc (`--mem-stres-test=on` build option)
it was possible to trigger the issue without complicated tests.
New internal method:
* `ecma_op_object_get_prototype_of` which always returns the prototype
of an object and the return value must be freed (if it is valid).
Updated prototype chain traversing in:
* `jerry_object_get_property_names`
* `ecma_builtin_object_prototype_lookup_getter_setter`
* `ecma_op_function_has_instance`
* `ecma_op_function_get_super_constructor`
* `ecma_op_object_is_prototype_of`
* `ecma_op_object_enumerate`
Removed method `ecma_proxy_object_prototype_to_cp`
JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.usz@partner.samsung.com1 parent abedab5 commit 5e48363
File tree
8 files changed
+189
-169
lines changed- jerry-core
- api
- ecma
- builtin-objects
- operations
- tests/jerry/es.next
8 files changed
+189
-169
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3884 | 3884 | | |
3885 | 3885 | | |
3886 | 3886 | | |
| 3887 | + | |
| 3888 | + | |
3887 | 3889 | | |
3888 | 3890 | | |
3889 | 3891 | | |
| |||
3892 | 3894 | | |
3893 | 3895 | | |
3894 | 3896 | | |
| 3897 | + | |
3895 | 3898 | | |
3896 | 3899 | | |
3897 | 3900 | | |
| |||
3942 | 3945 | | |
3943 | 3946 | | |
3944 | 3947 | | |
| 3948 | + | |
3945 | 3949 | | |
3946 | 3950 | | |
3947 | 3951 | | |
| |||
4008 | 4012 | | |
4009 | 4013 | | |
4010 | 4014 | | |
4011 | | - | |
4012 | 4015 | | |
4013 | | - | |
| 4016 | + | |
4014 | 4017 | | |
4015 | | - | |
4016 | | - | |
4017 | | - | |
4018 | | - | |
| 4018 | + | |
| 4019 | + | |
4019 | 4020 | | |
4020 | | - | |
4021 | | - | |
4022 | | - | |
4023 | | - | |
4024 | | - | |
| 4021 | + | |
4025 | 4022 | | |
4026 | | - | |
4027 | | - | |
4028 | | - | |
4029 | | - | |
4030 | | - | |
4031 | | - | |
4032 | | - | |
| 4023 | + | |
| 4024 | + | |
| 4025 | + | |
4033 | 4026 | | |
4034 | 4027 | | |
4035 | | - | |
| 4028 | + | |
| 4029 | + | |
| 4030 | + | |
4036 | 4031 | | |
4037 | | - | |
| 4032 | + | |
| 4033 | + | |
4038 | 4034 | | |
4039 | 4035 | | |
4040 | | - | |
| 4036 | + | |
4041 | 4037 | | |
4042 | 4038 | | |
| 4039 | + | |
| 4040 | + | |
4043 | 4041 | | |
4044 | 4042 | | |
4045 | 4043 | | |
| |||
Lines changed: 12 additions & 21 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
324 | 324 | | |
325 | 325 | | |
326 | 326 | | |
327 | | - | |
328 | | - | |
329 | | - | |
330 | 327 | | |
331 | 328 | | |
| 329 | + | |
| 330 | + | |
332 | 331 | | |
333 | 332 | | |
334 | 333 | | |
| |||
339 | 338 | | |
340 | 339 | | |
341 | 340 | | |
| 341 | + | |
342 | 342 | | |
343 | 343 | | |
344 | 344 | | |
| |||
360 | 360 | | |
361 | 361 | | |
362 | 362 | | |
| 363 | + | |
363 | 364 | | |
364 | 365 | | |
365 | 366 | | |
366 | 367 | | |
367 | | - | |
368 | | - | |
369 | | - | |
370 | | - | |
371 | | - | |
372 | | - | |
373 | | - | |
374 | | - | |
375 | | - | |
376 | | - | |
| 368 | + | |
| 369 | + | |
377 | 370 | | |
378 | | - | |
379 | | - | |
380 | | - | |
381 | | - | |
| 371 | + | |
382 | 372 | | |
383 | | - | |
| 373 | + | |
384 | 374 | | |
385 | | - | |
386 | | - | |
| 375 | + | |
387 | 376 | | |
| 377 | + | |
388 | 378 | | |
389 | 379 | | |
390 | 380 | | |
391 | | - | |
| 381 | + | |
| 382 | + | |
392 | 383 | | |
393 | 384 | | |
394 | 385 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
900 | 900 | | |
901 | 901 | | |
902 | 902 | | |
| 903 | + | |
| 904 | + | |
903 | 905 | | |
904 | 906 | | |
905 | | - | |
906 | | - | |
907 | | - | |
908 | | - | |
909 | | - | |
910 | | - | |
911 | | - | |
912 | | - | |
913 | | - | |
914 | | - | |
| 907 | + | |
| 908 | + | |
915 | 909 | | |
916 | | - | |
917 | | - | |
918 | | - | |
919 | | - | |
920 | | - | |
921 | | - | |
922 | | - | |
923 | | - | |
924 | | - | |
925 | | - | |
926 | | - | |
| 910 | + | |
927 | 911 | | |
928 | 912 | | |
929 | 913 | | |
930 | 914 | | |
931 | 915 | | |
932 | 916 | | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
933 | 921 | | |
934 | | - | |
935 | | - | |
936 | | - | |
| 922 | + | |
937 | 923 | | |
| 924 | + | |
938 | 925 | | |
939 | 926 | | |
940 | 927 | | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
941 | 931 | | |
942 | 932 | | |
943 | 933 | | |
| |||
957 | 947 | | |
958 | 948 | | |
959 | 949 | | |
960 | | - | |
| 950 | + | |
961 | 951 | | |
962 | | - | |
963 | | - | |
| 952 | + | |
964 | 953 | | |
965 | | - | |
966 | | - | |
967 | | - | |
968 | | - | |
969 | | - | |
970 | | - | |
971 | | - | |
972 | | - | |
973 | | - | |
974 | | - | |
975 | | - | |
976 | | - | |
977 | | - | |
978 | | - | |
979 | | - | |
980 | | - | |
981 | | - | |
982 | | - | |
983 | | - | |
984 | | - | |
985 | | - | |
986 | | - | |
987 | | - | |
| 954 | + | |
988 | 955 | | |
989 | | - | |
990 | | - | |
991 | | - | |
| 956 | + | |
992 | 957 | | |
993 | 958 | | |
994 | 959 | | |
| |||
0 commit comments