summaryrefslogtreecommitdiff
path: root/test/built-ins/Object
diff options
context:
space:
mode:
Diffstat (limited to 'test/built-ins/Object')
-rw-r--r--test/built-ins/Object/create/15.2.3.5-4-315.js69
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-100.js39
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-101.js65
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-102.js55
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-103.js49
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-104.js55
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-106.js49
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-107.js57
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-108.js57
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-109.js69
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-110.js73
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-114-b.js30
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-114.js33
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-12.js50
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-120.js27
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-13.js50
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-14.js50
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-15.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-16.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-18.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-19.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-195.js27
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-2.js43
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-200.js34
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-204.js55
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-205.js69
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-206.js34
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-207.js58
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-208.js35
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-209.js61
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-21.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-210.js31
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-211.js31
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-212.js33
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-213.js46
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-214.js46
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-215.js35
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-216.js40
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-217.js40
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-218.js45
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-219.js40
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-220.js42
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-221.js35
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-222.js39
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-223.js40
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-224.js42
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-225.js40
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-226.js40
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-227.js51
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-228.js48
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-229.js48
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-230.js44
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-231.js33
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-232.js39
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-233.js44
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-234.js46
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-235.js46
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-236.js44
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-237.js47
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-238.js46
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-239.js44
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-24.js47
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-240.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-241.js50
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-242.js50
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-243.js29
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-244.js54
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-245.js48
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-246.js34
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-247.js30
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-248.js29
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-249.js30
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-250.js30
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-251.js29
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-252.js30
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-253.js38
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-254.js41
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-255.js33
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-256.js37
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-257.js50
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-258.js29
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-259.js41
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-260.js43
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-261.js48
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-262.js67
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-266.js36
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-267.js55
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-268.js55
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-269.js36
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-270.js42
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-271.js42
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-272.js44
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-273.js42
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-274.js63
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-275.js47
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-276.js50
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-277.js50
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-278.js41
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-279.js53
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-28.js29
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-281.js39
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-282.js54
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-283.js56
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-284.js56
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-285.js56
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-288.js60
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-289.js60
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-290.js41
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-291.js53
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-292.js57
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-293.js39
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-294.js54
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-295.js56
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-296.js56
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-297.js56
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-298.js62
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-299.js64
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-30.js30
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-300.js58
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-301.js58
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-302.js37
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-303.js49
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-304.js73
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-305.js51
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-306.js57
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-307.js55
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-308.js55
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-309.js53
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-31.js33
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-310.js71
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-311.js61
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-312.js59
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-313.js57
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-33.js35
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-35.js43
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-36.js42
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-37.js45
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-38-1.js37
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-38.js21
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-39.js35
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-40.js65
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-41.js29
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-42.js31
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-43.js31
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-45.js40
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-46.js40
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-47.js29
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-48.js27
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-49.js29
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-5.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-50.js27
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-51.js29
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-52.js27
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-53.js31
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-54.js31
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-55.js29
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-56.js31
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-59.js35
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-60.js39
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-61.js33
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-62.js35
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-63.js33
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-64.js33
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-65.js44
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-66-1.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-66.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-68.js50
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-70.js39
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-71.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-72.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-73.js35
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-74.js35
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-76.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-77.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-78.js37
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-79.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-80.js35
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-81.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-82.js35
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-83.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-84-1.js41
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-84.js37
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-85.js50
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-86-1.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-86.js39
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-87.js54
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-88.js75
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-89.js52
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-90.js57
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-91.js66
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-92.js58
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-1.js81
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-2.js81
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-3.js89
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-4.js88
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-93.js41
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-94.js27
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-95.js37
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-96.js37
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-97.js37
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-98.js37
-rw-r--r--test/built-ins/Object/defineProperties/15.2.3.7-6-a-99.js37
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-100.js25
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-101.js21
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-102.js21
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-103.js29
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-104.js31
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-105.js37
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-106.js45
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-107.js51
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-108.js47
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-109.js55
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-110.js43
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-112.js47
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-113.js39
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-114.js47
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-115.js67
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-124.js23
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-190.js45
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-191.js37
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-194.js51
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-195.js72
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-199.js24
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-200.js28
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-201.js28
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-202.js28
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-203.js28
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-204.js30
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-205.js31
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-207.js35
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-208.js35
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-209.js63
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-210.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-211.js49
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-212.js32
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-213.js63
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-214.js44
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-215.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-216.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-218.js32
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-219.js32
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-220.js21
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-221.js44
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-222.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-223.js44
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-224.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-225.js44
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-226.js24
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-227.js44
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-228.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-229.js21
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-230.js51
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-231.js61
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-232.js25
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-233.js33
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-234.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-235.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-236.js21
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-237.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-238.js48
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-239.js50
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-240.js46
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-241.js42
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-242-1.js28
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-242.js27
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-243-1.js32
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-243-2.js43
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-243.js38
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-244.js43
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-245.js43
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-246.js39
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-247.js40
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-248.js44
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-249.js40
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-250.js39
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-251.js38
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-252.js50
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-253.js50
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-257.js41
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-258.js24
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-259.js24
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-260.js24
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-261.js24
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-262.js24
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-263.js24
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-264.js28
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-265.js39
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-266.js33
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-267.js35
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-268.js35
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-269.js27
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-270.js35
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-271.js37
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-272.js35
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-273.js61
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-277.js30
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-278.js41
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-279.js61
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-280.js30
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-281.js44
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-282.js44
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-283.js44
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-284.js44
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-285.js56
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-286.js48
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-287.js50
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-288.js50
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-289-1.js52
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-289.js34
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-290-1.js48
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-290.js43
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-291-1.js52
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-291.js47
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-292-1.js36
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-292-2.js40
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-292.js32
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-293-1.js34
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-293-2.js56
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-293-3.js37
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-293-4.js39
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-293.js48
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-294-1.js57
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-294.js48
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-295-1.js54
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-295.js48
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-296-1.js53
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-296.js48
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-297-1.js61
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-297.js56
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-298-1.js64
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-298.js58
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-299-1.js55
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-299.js50
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-300-1.js55
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-300.js50
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-301-1.js36
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-301.js34
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-302-1.js47
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-302.js43
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-303.js47
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-304.js32
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-305.js48
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-306.js48
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-307.js48
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-308.js48
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-309.js56
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-310.js58
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-311.js50
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-312.js49
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-313-1.js32
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-313.js32
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-314-1.js41
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-314.js41
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-315-1.js66
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-315.js61
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-316-1.js42
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-316.js42
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-317-1.js52
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-317.js47
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-318-1.js45
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-318.js47
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-319-1.js46
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-319.js45
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-320-1.js43
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-320.js45
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-321-1.js66
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-321.js61
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-322-1.js51
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-322.js51
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-323-1.js56
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-323.js51
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-324-1.js49
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-324.js50
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-333-1.js34
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-333-2.js34
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-333-3.js38
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-333-6.js34
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-333-7.js34
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-333-8.js38
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-354-1.js34
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-354-10.js34
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-354-11.js34
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-354-12.js38
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-354-13.js43
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-354-2.js34
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-354-3.js38
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-354-4.js43
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-360-7.js67
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-38.js34
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-41.js30
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-45.js28
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-47.js28
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-48.js28
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-49.js28
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-50.js28
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-51.js30
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-52.js20
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-53.js31
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-531-1.js67
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-531-10.js69
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-531-11.js69
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-531-12.js73
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-531-13.js80
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-531-2.js69
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-531-3.js73
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-531-4.js80
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-538-1.js81
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-538-2.js87
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-538-3.js90
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-538-5.js84
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-538-6.js85
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-538-7.js89
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-538.js81
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-540-1.js93
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-540-2.js93
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-540-3.js98
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-540-6.js95
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-540-7.js95
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-540-8.js97
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-547-1.js85
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-547-2.js89
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-547-3.js86
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-547-4.js89
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-55.js39
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-56.js39
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-57.js63
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-58.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-59.js39
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-60.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-61.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-62.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-64.js33
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-65.js32
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-66.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-67.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-68.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-69.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-70.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-71.js24
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-72.js26
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-73.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-74.js24
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-75.js39
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-76.js47
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-77.js25
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-78.js33
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-79.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-80.js22
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-81.js23
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-1.js43
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-10.js57
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-11.js57
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-12.js55
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-13.js43
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-14.js45
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-15.js37
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-16.js45
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-17.js45
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-18.js37
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-19.js55
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-2.js45
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-20.js57
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-21.js55
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-22.js57
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-23.js57
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-24.js55
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-3.js37
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-4.js45
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-5.js45
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-6.js37
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-7.js55
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-8.js57
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82-9.js55
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-82.js23
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-83.js37
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-84.js37
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-86.js40
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-87.js40
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-88.js33
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-89.js46
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-90.js33
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-91.js40
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-92.js33
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-93.js40
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-94.js36
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-95.js44
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-96.js35
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-97.js51
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-98.js54
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-99.js54
-rw-r--r--test/built-ins/Object/freeze/15.2.3.9-2-b-i-1.js43
-rw-r--r--test/built-ins/Object/freeze/15.2.3.9-2-b-i-2.js85
-rw-r--r--test/built-ins/Object/freeze/15.2.3.9-2-c-1.js43
-rw-r--r--test/built-ins/Object/freeze/15.2.3.9-2-c-3.js89
-rw-r--r--test/built-ins/Object/freeze/15.2.3.9-2-c-4.js111
-rw-r--r--test/built-ins/Object/seal/15.2.3.8-2-b-1.js41
-rw-r--r--test/built-ins/Object/seal/15.2.3.8-2-b-2.js55
-rw-r--r--test/built-ins/Object/seal/15.2.3.8-2-b-3.js80
-rw-r--r--test/built-ins/Object/seal/15.2.3.8-2-b-4.js82
499 files changed, 12046 insertions, 10446 deletions
diff --git a/test/built-ins/Object/create/15.2.3.5-4-315.js b/test/built-ins/Object/create/15.2.3.5-4-315.js
index da1c85787..0cbd828eb 100644
--- a/test/built-ins/Object/create/15.2.3.5-4-315.js
+++ b/test/built-ins/Object/create/15.2.3.5-4-315.js
@@ -9,37 +9,44 @@ es5id: 15.2.3.5-4-315
description: >
Object.create - all properties in 'Properties' are enumerable
(data property and accessor property) (15.2.3.7 step 7)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var newObj = {};
- function getFunc() {
- return 10;
- }
- function setFunc(value) {
- newObj.setVerifyHelpProp = value;
- }
-
- newObj = Object.create({}, {
- foo1: {
- value: 200,
- enumerable: true,
- writable: true,
- configurable: true
- },
- foo2: {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- }
- });
- return dataPropertyAttributesAreCorrect(newObj, "foo1", 200, true, true, true) &&
- accessorPropertyAttributesAreCorrect(newObj, "foo2", getFunc, setFunc, "setVerifyHelpProp", true, true);
+var newObj = {};
+function getFunc() {
+ return 10;
+}
+function setFunc(value) {
+ newObj.setVerifyHelpProp = value;
+}
+
+newObj = Object.create({}, {
+ foo1: {
+ value: 200,
+ enumerable: true,
+ writable: true,
+ configurable: true
+ },
+ foo2: {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(newObj, "foo1", 200);
+
+verifyWritable(newObj, "foo1");
+
+verifyEnumerable(newObj, "foo1");
+
+verifyConfigurable(newObj, "foo1");
+
+verifyEqualTo(newObj, "foo2", getFunc());
+
+verifyWritable(newObj, "foo2", "setVerifyHelpProp");
+
+verifyEnumerable(newObj, "foo2");
+
+verifyConfigurable(newObj, "foo2");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-100.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-100.js
index a718b2b73..de537e96a 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-100.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-100.js
@@ -9,28 +9,29 @@ es5id: 15.2.3.7-6-a-100
description: >
Object.defineProperties - 'P' is data property, several attributes
values of P and properties are different (8.12.9 step 12)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 100,
- writable: true,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ value: 100,
+ writable: true,
+ configurable: true
+});
- Object.defineProperties(obj, {
- foo: {
- value: 200,
- writable: false,
- configurable: false
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 200, false, false, false);
+Object.defineProperties(obj, {
+ foo: {
+ value: 200,
+ writable: false,
+ configurable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", 200);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-101.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-101.js
index 7654595d0..2dfc8694a 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-101.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-101.js
@@ -10,38 +10,39 @@ description: >
Object.defineProperties - 'P' is accessor property, both
properties.[[Get]] and P.[[Get]] are two different values (8.12.9
step 12)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- function get_func() {
- return 10;
- }
- function set_func(value) {
- obj.setVerifyHelpProp = value;
- }
-
- Object.defineProperty(obj, "foo", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
-
- function get_func2() {
- return 20;
- }
-
- Object.defineProperties(obj, {
- foo: {
- get: get_func2
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", get_func2, set_func, "setVerifyHelpProp", true, true);
+
+var obj = {};
+
+function get_func() {
+ return 10;
+}
+function set_func(value) {
+ obj.setVerifyHelpProp = value;
+}
+
+Object.defineProperty(obj, "foo", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+
+function get_func2() {
+ return 20;
+}
+
+Object.defineProperties(obj, {
+ foo: {
+ get: get_func2
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", get_func2());
+
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-102.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-102.js
index 3a7e732c3..9f646a3c6 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-102.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-102.js
@@ -9,34 +9,33 @@ es5id: 15.2.3.7-6-a-102
description: >
Object.defineProperties - 'P' is accessor property, P.[[Get]] is
present and properties.[[Get]] is undefined (8.12.9 step 12)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- function get_func() {
- return 10;
- }
- function set_func(value) {
- obj.setVerifyHelpProp = value;
- }
-
- Object.defineProperty(obj, "foo", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperties(obj, {
- foo: {
- get: undefined
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", true, true);
+
+var obj = {};
+
+function get_func() {
+ return 10;
+}
+function set_func(value) {
+ obj.setVerifyHelpProp = value;
+}
+
+Object.defineProperty(obj, "foo", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperties(obj, {
+ foo: {
+ get: undefined
}
-runTestCase(testcase);
+});
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-103.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-103.js
index 472d1a254..f3be9fd86 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-103.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-103.js
@@ -9,35 +9,36 @@ es5id: 15.2.3.7-6-a-103
description: >
Object.defineProperties - 'P' is accessor property, P.[[Get]] is
undefined and properties.[[Get]] is normal value (8.12.9 step 12)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function set_func(value) {
- obj.setVerifyHelpProp = value;
- }
+function set_func(value) {
+ obj.setVerifyHelpProp = value;
+}
- Object.defineProperty(obj, "foo", {
- get: undefined,
- set: set_func,
- enumerable: true,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ get: undefined,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
- function get_func() {
- return 10;
- }
+function get_func() {
+ return 10;
+}
- Object.defineProperties(obj, {
- foo: {
- get: get_func
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", true, true);
+Object.defineProperties(obj, {
+ foo: {
+ get: get_func
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", get_func());
+
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-104.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-104.js
index c24473b8d..69d114689 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-104.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-104.js
@@ -10,39 +10,40 @@ description: >
Object.defineProperties - 'P' is accessor property, both
properties.[[Set]] and P.[[Set]] are two different values (8.12.9
step 12)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function get_func() {
- return 10;
- }
+function get_func() {
+ return 10;
+}
- function set_func() {
- return 10;
- }
+function set_func() {
+ return 10;
+}
- Object.defineProperty(obj, "foo", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
- function set_func2(value) {
- obj.setVerifyHelpProp = value;
- }
+function set_func2(value) {
+ obj.setVerifyHelpProp = value;
+}
- Object.defineProperties(obj, {
- foo: {
- set: set_func2
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func2, "setVerifyHelpProp", true, true);
+Object.defineProperties(obj, {
+ foo: {
+ set: set_func2
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", get_func());
+
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-106.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-106.js
index c8c5ae6f3..1381d45cc 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-106.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-106.js
@@ -9,35 +9,36 @@ es5id: 15.2.3.7-6-a-106
description: >
Object.defineProperties - 'P' is accessor property, P.[[Set]] is
undefined and properties.[[Set]] is normal value (8.12.9 step 12)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function get_func() {
- return 10;
- }
+function get_func() {
+ return 10;
+}
- Object.defineProperty(obj, "foo", {
- get: get_func,
- set: undefined,
- enumerable: true,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ get: get_func,
+ set: undefined,
+ enumerable: true,
+ configurable: true
+});
- function set_func(value) {
- obj.setVerifyHelpProp = value;
- }
+function set_func(value) {
+ obj.setVerifyHelpProp = value;
+}
- Object.defineProperties(obj, {
- foo: {
- set: set_func
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", true, true);
+Object.defineProperties(obj, {
+ foo: {
+ set: set_func
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", get_func());
+
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-107.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-107.js
index ccbed0fcd..bdd1f2214 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-107.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-107.js
@@ -9,34 +9,35 @@ es5id: 15.2.3.7-6-a-107
description: >
Object.defineProperties - 'P' is accessor property, P.enumerable
and properties.enumerable are different values (8.12.9 step 12)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- function get_func() {
- return 10;
- }
- function set_func(value) {
- obj.setVerifyHelpProp = value;
- }
-
- Object.defineProperty(obj, "foo", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperties(obj, {
- foo: {
- enumerable: false
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", false, true);
+
+var obj = {};
+
+function get_func() {
+ return 10;
+}
+function set_func(value) {
+ obj.setVerifyHelpProp = value;
+}
+
+Object.defineProperty(obj, "foo", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperties(obj, {
+ foo: {
+ enumerable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", get_func());
+
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-108.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-108.js
index 7218d10ec..75a7f95af 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-108.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-108.js
@@ -9,34 +9,35 @@ es5id: 15.2.3.7-6-a-108
description: >
Object.defineProperties - 'P' is accessor property, P.configurable
is true and properties.configurable is false
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- function get_func() {
- return 10;
- }
- function set_func(value) {
- obj.setVerifyHelpProp = value;
- }
-
- Object.defineProperty(obj, "foo", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperties(obj, {
- foo: {
- configurable: false
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", true, false);
+
+var obj = {};
+
+function get_func() {
+ return 10;
+}
+function set_func(value) {
+ obj.setVerifyHelpProp = value;
+}
+
+Object.defineProperty(obj, "foo", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperties(obj, {
+ foo: {
+ configurable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", get_func());
+
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-109.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-109.js
index 43e641b78..80da3599a 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-109.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-109.js
@@ -10,40 +10,41 @@ description: >
Object.defineProperties - 'P' is accessor property, several
attributes values of P and properties are different (8.12.9 step
12)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- function get_func1() {
- return 10;
- }
- function set_func1() { }
-
- Object.defineProperty(obj, "foo", {
- get: get_func1,
- set: set_func1,
- configurable: true
- });
-
- function get_func2() {
- return 20;
- }
- function set_func2(value) {
- obj.setVerifyHelpProp = value;
- }
-
- Object.defineProperties(obj, {
- foo: {
- get: get_func2,
- set: set_func2,
- configurable: false
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", get_func2, set_func2, "setVerifyHelpProp", false, false);
+
+var obj = {};
+
+function get_func1() {
+ return 10;
+}
+function set_func1() { }
+
+Object.defineProperty(obj, "foo", {
+ get: get_func1,
+ set: set_func1,
+ configurable: true
+});
+
+function get_func2() {
+ return 20;
+}
+function set_func2(value) {
+ obj.setVerifyHelpProp = value;
+}
+
+Object.defineProperties(obj, {
+ foo: {
+ get: get_func2,
+ set: set_func2,
+ configurable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", get_func2());
+
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-110.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-110.js
index 46cf1e038..839f77cc4 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-110.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-110.js
@@ -9,40 +9,47 @@ es5id: 15.2.3.7-6-a-110
description: >
Object.defineProperties - all own properties (data property and
accessor property)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- function get_func() {
- return 10;
- }
- function set_func(value) {
- obj.setVerifyHelpProp = value;
- }
-
- var properties = {
- foo1: {
- value: 200,
- enumerable: true,
- writable: true,
- configurable: true
- },
- foo2: {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- }
- };
-
- Object.defineProperties(obj, properties);
- return dataPropertyAttributesAreCorrect(obj, "foo1", 200, true, true, true) && accessorPropertyAttributesAreCorrect(obj, "foo2", get_func, set_func, "setVerifyHelpProp", true, true);
+var obj = {};
+
+function get_func() {
+ return 10;
+}
+function set_func(value) {
+ obj.setVerifyHelpProp = value;
+}
+
+var properties = {
+ foo1: {
+ value: 200,
+ enumerable: true,
+ writable: true,
+ configurable: true
+ },
+ foo2: {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
}
-runTestCase(testcase);
+};
+
+Object.defineProperties(obj, properties);
+verifyEqualTo(obj, "foo1", 200);
+
+verifyWritable(obj, "foo1");
+
+verifyEnumerable(obj, "foo1");
+
+verifyConfigurable(obj, "foo1");
+verifyEqualTo(obj, "foo2", get_func());
+
+verifyWritable(obj, "foo2", "setVerifyHelpProp");
+
+verifyEnumerable(obj, "foo2");
+
+verifyConfigurable(obj, "foo2");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-114-b.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-114-b.js
new file mode 100644
index 000000000..fe859b48b
--- /dev/null
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-114-b.js
@@ -0,0 +1,30 @@
+// Copyright (c) 2012 Ecma International. All rights reserved.
+// Ecma International makes this code available under the terms and conditions set
+// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+// "Use Terms"). Any redistribution of this code must retain the above
+// copyright and this notice and otherwise comply with the Use Terms.
+
+/*---
+es5id: 15.2.3.7-6-a-114-b
+description: >
+ Object.defineProperties - 'O' is an Array, 'P' is the length
+ property of 'O', the [[Value]] field of 'desc' is absent, test
+ every field in 'desc' is absent (15.4.5.1 step 3.a.i)
+includes: [propertyHelper.js]
+---*/
+
+var arr = [];
+
+Object.defineProperties(arr, { length: {} });
+
+if (arr.length !== 0) {
+ $ERROR("Expected arr.length to be 0, actually " + arr.length);
+}
+
+verifyEqualTo(arr, "length", 0);
+
+verifyWritable(arr, "length", "length", 1);
+
+verifyNotEnumerable(arr, "length");
+
+verifyNotConfigurable(arr, "length");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-114.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-114.js
index beb373ec9..a3fb021d4 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-114.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-114.js
@@ -10,32 +10,23 @@ description: >
Object.defineProperties - 'O' is an Array, 'P' is the length
property of 'O', the [[Value]] field of 'desc' is absent, test
every field in 'desc' is absent (15.4.5.1 step 3.a.i)
-includes: [runTestCase.js]
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperties(arr, { length: {} });
+Object.defineProperties(arr, { length: {} });
- var verifyValue = false;
- verifyValue = (arr.length === 0);
+if (arr.length !== 0) {
+ $ERROR("Expected arr.length to be 0, actually " + arr.length);
+}
- var verifyWritable = false;
- arr.length = 2;
- verifyWritable = (arr.length === 2);
+arr.length = 2;
- var verifyEnumerable = false;
- for (var p in arr) {
- if (p === "length") {
- verifyEnumerable = true;
- }
- }
+verifyEqualTo(arr, "length", 2);
- var verifyConfigurable = false;
- delete arr.length;
- verifyConfigurable = arr.hasOwnProperty("length");
+verifyWritable(arr, "length", "length", 5);
- return verifyValue && verifyWritable && !verifyEnumerable && verifyConfigurable;
- }
-runTestCase(testcase);
+verifyNotEnumerable(arr, "length");
+
+verifyNotConfigurable(arr, "length");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-12.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-12.js
index dd84a5faa..baace58ec 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-12.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-12.js
@@ -10,29 +10,35 @@ description: >
Object.defineProperties - 'O' is a Function object which
implements its own [[GetOwnProperty]] method to get 'P' (8.12.9
step 1 )
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var fun = function () { };
-
- Object.defineProperty(fun, "prop", {
- value: 11,
- configurable: false
- });
-
- try {
- Object.defineProperties(fun, {
- prop: {
- value: 12,
- configurable: true
- }
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(fun, "prop", 11, false, false, false);
+var fun = function () { };
+
+Object.defineProperty(fun, "prop", {
+ value: 11,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(fun, {
+ prop: {
+ value: 12,
+ configurable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(fun, "prop", 11);
+
+ verifyNotWritable(fun, "prop");
+
+ verifyNotEnumerable(fun, "prop");
+
+ verifyNotConfigurable(fun, "prop");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-120.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-120.js
index 39e13d920..f13c04cd0 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-120.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-120.js
@@ -11,23 +11,20 @@ description: >
property of 'O', the [[Value]] field of 'desc' is absent, test
updating the [[Writable]] attribute of the length property from
true to false (15.4.5.1 step 3.a.i)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
+var arr = [];
- var arr = [];
+Object.defineProperties(arr, {
+ length: { writable: false }
+});
- try {
- Object.defineProperties(arr, {
- length: { writable: false }
- });
+verifyEqualTo(arr, "length", 0);
+
+verifyNotWritable(arr, "length");
+
+verifyNotEnumerable(arr, "length");
+
+verifyNotConfigurable(arr, "length");
- return dataPropertyAttributesAreCorrect(arr, "length", 0, false, false, false);
- } catch (e) {
- return false;
- }
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-13.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-13.js
index 0310a6ef9..7025f2fdb 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-13.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-13.js
@@ -9,29 +9,35 @@ es5id: 15.2.3.7-6-a-13
description: >
Object.defineProperties - 'O' is an Array object which implements
its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 )
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- Object.defineProperty(arr, "prop", {
- value: 11,
- configurable: false
- });
-
- try {
- Object.defineProperties(arr, {
- prop: {
- value: 12,
- configurable: true
- }
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arr, "prop", 11, false, false, false);
+var arr = [];
+
+Object.defineProperty(arr, "prop", {
+ value: 11,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(arr, {
+ prop: {
+ value: 12,
+ configurable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "prop", 11);
+
+ verifyNotWritable(arr, "prop");
+
+ verifyNotEnumerable(arr, "prop");
+
+ verifyNotConfigurable(arr, "prop");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-14.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-14.js
index b094ee9ef..b99a23cdd 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-14.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-14.js
@@ -9,29 +9,35 @@ es5id: 15.2.3.7-6-a-14
description: >
Object.defineProperties - 'O' is a String object which implements
its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 )
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var str = new String();
-
- Object.defineProperty(str, "prop", {
- value: 11,
- configurable: false
- });
-
- try {
- Object.defineProperties(str, {
- prop: {
- value: 12,
- configurable: true
- }
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(str, "prop", 11, false, false, false);
+var str = new String();
+
+Object.defineProperty(str, "prop", {
+ value: 11,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(str, {
+ prop: {
+ value: 12,
+ configurable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(str, "prop", 11);
+
+ verifyNotWritable(str, "prop");
+
+ verifyNotEnumerable(str, "prop");
+
+ verifyNotConfigurable(str, "prop");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-15.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-15.js
index 09c6d877d..8f2d5b325 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-15.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-15.js
@@ -9,30 +9,36 @@ es5id: 15.2.3.7-6-a-15
description: >
Object.defineProperties - 'O' is a Boolean object which implements
its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 )
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = new Boolean(false);
-
- Object.defineProperty(obj, "prop", {
- value: 11,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- prop: {
- value: 12,
- configurable: true
- }
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "prop", 11, false, false, false);
+
+var obj = new Boolean(false);
+
+Object.defineProperty(obj, "prop", {
+ value: 11,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(obj, {
+ prop: {
+ value: 12,
+ configurable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "prop", 11);
+
+ verifyNotWritable(obj, "prop");
+
+ verifyNotEnumerable(obj, "prop");
+
+ verifyNotConfigurable(obj, "prop");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-16.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-16.js
index 47ec1565c..d6dfa319a 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-16.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-16.js
@@ -9,30 +9,36 @@ es5id: 15.2.3.7-6-a-16
description: >
Object.defineProperties - 'O' is a Number object which implements
its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 )
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = new Number(-9);
-
- Object.defineProperty(obj, "prop", {
- value: 11,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- prop: {
- value: 12,
- configurable: true
- }
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "prop", 11, false, false, false);
+
+var obj = new Number(-9);
+
+Object.defineProperty(obj, "prop", {
+ value: 11,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(obj, {
+ prop: {
+ value: 12,
+ configurable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "prop", 11);
+
+ verifyNotWritable(obj, "prop");
+
+ verifyNotEnumerable(obj, "prop");
+
+ verifyNotConfigurable(obj, "prop");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-18.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-18.js
index f645b3f8d..0ae37cf31 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-18.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-18.js
@@ -9,30 +9,36 @@ es5id: 15.2.3.7-6-a-18
description: >
Object.defineProperties - 'O' is a Date object which implements
its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 )
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = new Date();
-
- Object.defineProperty(obj, "prop", {
- value: 11,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- prop: {
- value: 12,
- configurable: true
- }
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "prop", 11, false, false, false);
+
+var obj = new Date();
+
+Object.defineProperty(obj, "prop", {
+ value: 11,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(obj, {
+ prop: {
+ value: 12,
+ configurable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "prop", 11);
+
+ verifyNotWritable(obj, "prop");
+
+ verifyNotEnumerable(obj, "prop");
+
+ verifyNotConfigurable(obj, "prop");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-19.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-19.js
index d6251e983..0b31aaa75 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-19.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-19.js
@@ -9,30 +9,36 @@ es5id: 15.2.3.7-6-a-19
description: >
Object.defineProperties - 'O' is a RegExp object which implements
its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 )
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = new RegExp();
-
- Object.defineProperty(obj, "prop", {
- value: 11,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- prop: {
- value: 12,
- configurable: true
- }
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "prop", 11, false, false, false);
+
+var obj = new RegExp();
+
+Object.defineProperty(obj, "prop", {
+ value: 11,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(obj, {
+ prop: {
+ value: 12,
+ configurable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "prop", 11);
+
+ verifyNotWritable(obj, "prop");
+
+ verifyNotEnumerable(obj, "prop");
+
+ verifyNotConfigurable(obj, "prop");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-195.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-195.js
index 6bd51acb3..f7ed70376 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-195.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-195.js
@@ -11,20 +11,21 @@ description: >
named property, 'P' property doesn't exist in 'O', test 'P' is
defined as data property when 'desc' is generic descriptor
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperties(arr, {
- "0": {
- enumerable: true
- }
- });
-
- return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, true, false);
+Object.defineProperties(arr, {
+ "0": {
+ enumerable: true
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arr, "0", undefined);
+
+verifyNotWritable(arr, "0");
+
+verifyEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-2.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-2.js
index 8622375b5..af582925c 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-2.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-2.js
@@ -9,30 +9,31 @@ es5id: 15.2.3.7-6-a-2
description: >
Object.defineProperties - 'P' is inherited data property (8.12.9
step 1 )
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var proto = {};
- Object.defineProperty(proto, "prop", {
- value: 11,
- configurable: false
- });
- var Con = function () { };
- Con.prototype = proto;
+var proto = {};
+Object.defineProperty(proto, "prop", {
+ value: 11,
+ configurable: false
+});
+var Con = function () { };
+Con.prototype = proto;
- var obj = new Con();
+var obj = new Con();
- Object.defineProperties(obj, {
- prop: {
- value: 12,
- configurable: true
- }
- });
+Object.defineProperties(obj, {
+ prop: {
+ value: 12,
+ configurable: true
+ }
+});
- return dataPropertyAttributesAreCorrect(obj, "prop", 12, false, false, true);
+verifyEqualTo(obj, "prop", 12);
+
+verifyNotWritable(obj, "prop");
+
+verifyNotEnumerable(obj, "prop");
+
+verifyConfigurable(obj, "prop");
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-200.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-200.js
index 63bcb0544..62cd8a77b 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-200.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-200.js
@@ -10,23 +10,25 @@ description: >
Object.defineProperties - 'O' is an Array, 'P' is an array index
named property, 'desc' is data descriptor, test updating all
attribute values of 'P' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [1]; // default value of attributes: writable: true, configurable: true, enumerable: true
+var arr = [1]; // default value of attributes: writable: true, configurable: true, enumerable: true
- Object.defineProperties(arr, {
- "0": {
- value: 1001,
- writable: false,
- enumerable: false,
- configurable: false
- }
- });
-
- return dataPropertyAttributesAreCorrect(arr, "0", 1001, false, false, false);
+Object.defineProperties(arr, {
+ "0": {
+ value: 1001,
+ writable: false,
+ enumerable: false,
+ configurable: false
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arr, "0", 1001);
+
+verifyNotWritable(arr, "0");
+
+verifyNotEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-204.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-204.js
index 54b0004f0..2947909b4 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-204.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-204.js
@@ -12,33 +12,34 @@ description: >
[[Configurable]] of 'P' property in 'Attributes' is set as false
value if [[Configurable]] is absent in accessor descriptor 'desc'
(15.4.5.1 step 4.c)
-includes: [runTestCase.js]
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
- var beforeDeleted = false;
- var afterDeleted = false;
- arr.verifySetter = 100;
-
- Object.defineProperties(arr, {
- "0": {
- set: function (value) {
- arr.verifySetter = value;
- },
- get: function () {
- return arr.verifySetter;
- },
- enumerable: true
- }
- });
-
- beforeDeleted = arr.hasOwnProperty("0");
- delete arr[0];
- afterDeleted = arr.hasOwnProperty("0");
-
- arr[0] = 101;
-
- return beforeDeleted && afterDeleted && arr[0] === 101 && arr.verifySetter === 101;
+var arr = [];
+arr.verifySetter = 100;
+
+Object.defineProperties(arr, {
+ "0": {
+ set: function (value) {
+ arr.verifySetter = value;
+ },
+ get: function () {
+ return arr.verifySetter;
+ },
+ enumerable: true
}
-runTestCase(testcase);
+});
+
+if (!Object.prototype.hasOwnProperty.call(arr, "0")) {
+ $ERROR("Expected hasOwnProperty to return true.");
+}
+
+arr[0] = 101;
+
+verifyEqualTo(arr, 0, 101);
+
+if (arr.verifySetter !== 101) {
+ $ERROR('Expected arr.verifySetter === 101, actually ' + arr.verifySetter);
+}
+
+verifyNotConfigurable(arr, 0);
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-205.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-205.js
index 8fa5be67a..469379518 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-205.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-205.js
@@ -10,40 +10,41 @@ description: >
Object.defineProperties - 'O' is an Array, 'P' is an array index
named property, 'desc' is accessor descriptor, test updating all
attribute values of 'P' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- Object.defineProperties(arr, {
- "0": {
- get: function () {
- return 11;
- },
- set: function () { },
- configurable: true,
- enumerable: true
- }
- });
-
- var setFun = function (value) {
- arr.setVerifyHelpProp = value;
- };
- var getFun = function () {
- return 14;
- };
- Object.defineProperties(arr, {
- "0": {
- get: getFun,
- set: setFun,
- configurable: false,
- enumerable: false
- }
- });
-
- return accessorPropertyAttributesAreCorrect(arr, "0", getFun, setFun, "setVerifyHelpProp", false, false);
+var arr = [];
+
+Object.defineProperties(arr, {
+ "0": {
+ get: function () {
+ return 11;
+ },
+ set: function () { },
+ configurable: true,
+ enumerable: true
+ }
+});
+
+var setFun = function (value) {
+ arr.setVerifyHelpProp = value;
+};
+var getFun = function () {
+ return 14;
+};
+Object.defineProperties(arr, {
+ "0": {
+ get: getFun,
+ set: setFun,
+ configurable: false,
+ enumerable: false
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arr, "0", getFun());
+
+verifyWritable(arr, "0", "setVerifyHelpProp");
+
+verifyNotEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-206.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-206.js
index 150ed4111..a34b317d1 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-206.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-206.js
@@ -10,23 +10,21 @@ description: >
Object.defineProperties - 'O' is an Array, 'P' is an array index
named property, 'P' makes no change if every field in 'desc' is
absent (name is data property) (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- arr[0] = 101; // default value of attributes: writable: true, configurable: true, enumerable: true
-
- try {
- Object.defineProperties(arr, {
- "0": {}
- });
- return dataPropertyAttributesAreCorrect(arr, "0", 101, true, true, true);
- } catch (e) {
- return false;
- }
- }
-runTestCase(testcase);
+var arr = [];
+
+arr[0] = 101; // default value of attributes: writable: true, configurable: true, enumerable: true
+
+
+Object.defineProperties(arr, {
+ "0": {}
+});
+verifyEqualTo(arr, "0", 101);
+
+verifyWritable(arr, "0");
+
+verifyEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-207.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-207.js
index 406e09285..ffa8d6cc8 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-207.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-207.js
@@ -10,35 +10,33 @@ description: >
Object.defineProperties - 'O' is an Array, 'P' is an array index
named property, 'P' makes no change if every field in 'desc' is
absent (name is accessor property) (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- function get_func() {
- return 11;
- }
- function set_func(value) {
- arr.setVerifyHelpProp = value;
- }
-
- Object.defineProperty(arr, "0", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
-
- try {
- Object.defineProperties(arr, {
- "0": {}
- });
- return accessorPropertyAttributesAreCorrect(arr, "0", get_func, set_func, "setVerifyHelpProp", true, true);
- } catch (e) {
- return false;
- }
- }
-runTestCase(testcase);
+var arr = [];
+
+function get_func() {
+ return 11;
+}
+function set_func(value) {
+ arr.setVerifyHelpProp = value;
+}
+
+Object.defineProperty(arr, "0", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperties(arr, {
+ "0": {}
+});
+verifyEqualTo(arr, "0", get_func());
+
+verifyWritable(arr, "0", "setVerifyHelpProp");
+
+verifyEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-208.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-208.js
index a0bc75abc..ffb7ac7ba 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-208.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-208.js
@@ -11,25 +11,26 @@ description: >
named property, 'P' makes no change if the value of every field in
'desc' is the same value as the corresponding field in 'P'(desc is
data property) (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- arr[0] = 100; // default value of attributes: writable: true, configurable: true, enumerable: true
+arr[0] = 100; // default value of attributes: writable: true, configurable: true, enumerable: true
- Object.defineProperties(arr, {
- "0": {
- value: 100,
- writable: true,
- enumerable: true,
- configurable: true
- }
- });
-
- return dataPropertyAttributesAreCorrect(arr, "0", 100, true, true, true);
+Object.defineProperties(arr, {
+ "0": {
+ value: 100,
+ writable: true,
+ enumerable: true,
+ configurable: true
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arr, "0", 100);
+
+verifyWritable(arr, "0");
+
+verifyEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-209.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-209.js
index 5ba2fa5dd..1905dc0dc 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-209.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-209.js
@@ -11,35 +11,36 @@ description: >
named property, 'P' makes no change if the value of every field in
'desc' is the same value as the corresponding field in 'P'(desc is
accessor property) (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
- var get_func = function () {
- return "100";
- };
- var set_func = function (value) {
- arr.setVerifyHelpProp = value;
- };
-
- var descObj = {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- };
-
- var properties = {
- "0": descObj
- };
-
- Object.defineProperty(arr, "0", descObj);
-
- Object.defineProperties(arr, properties);
-
- return accessorPropertyAttributesAreCorrect(arr, "0", get_func, set_func, "setVerifyHelpProp", true, true);
- }
-runTestCase(testcase);
+var arr = [];
+var get_func = function () {
+ return "100";
+};
+var set_func = function (value) {
+ arr.setVerifyHelpProp = value;
+};
+
+var descObj = {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+};
+
+var properties = {
+ "0": descObj
+};
+
+Object.defineProperty(arr, "0", descObj);
+
+Object.defineProperties(arr, properties);
+
+verifyEqualTo(arr, "0", get_func());
+
+verifyWritable(arr, "0", "setVerifyHelpProp");
+
+verifyEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-21.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-21.js
index d87892727..2c51a3334 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-21.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-21.js
@@ -9,30 +9,36 @@ es5id: 15.2.3.7-6-a-21
description: >
Object.defineProperties - 'O' is an Error object which implements
its own [[GetOwnProperty]] method to get 'P' (8.12.9 step 1 )
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = new Error();
-
- Object.defineProperty(obj, "prop", {
- value: 11,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- prop: {
- value: 12,
- configurable: true
- }
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "prop", 11, false, false, false);
+
+var obj = new Error();
+
+Object.defineProperty(obj, "prop", {
+ value: 11,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(obj, {
+ prop: {
+ value: 12,
+ configurable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "prop", 11);
+
+ verifyNotWritable(obj, "prop");
+
+ verifyNotEnumerable(obj, "prop");
+
+ verifyNotConfigurable(obj, "prop");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-210.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-210.js
index a3ae0fcab..b228c5a31 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-210.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-210.js
@@ -11,23 +11,24 @@ description: >
index property, both the [[Value]] field of 'desc' and the
[[Value]] attribute value of 'name' are undefined (15.4.5.1 step
4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "0", {
- value: undefined
- });
+Object.defineProperty(arr, "0", {
+ value: undefined
+});
- Object.defineProperties(arr, {
- "0": {
- value: undefined
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, false, false);
+Object.defineProperties(arr, {
+ "0": {
+ value: undefined
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", undefined);
+
+verifyNotWritable(arr, "0");
+
+verifyNotEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-211.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-211.js
index e732b47ac..a12e69115 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-211.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-211.js
@@ -10,23 +10,24 @@ description: >
Object.defineProperties - 'O' is an Array, 'name' is an array
index property, both the [[Value]] field of 'desc' and the
[[Value]] attribute value of 'name' are null (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "0", {
- value: null
- });
+Object.defineProperty(arr, "0", {
+ value: null
+});
- Object.defineProperties(arr, {
- "0": {
- value: null
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", null, false, false, false);
+Object.defineProperties(arr, {
+ "0": {
+ value: null
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", null);
+
+verifyNotWritable(arr, "0");
+
+verifyNotEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-212.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-212.js
index 9bec4223e..29020dd93 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-212.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-212.js
@@ -10,24 +10,25 @@ description: >
Object.defineProperties - 'O' is an Array, 'name' is an array
index property, both the [[Value]] field of 'desc' and the
[[Value]] attribute value of 'name' are NaN (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "0", {
- value: NaN
- });
+Object.defineProperty(arr, "0", {
+ value: NaN
+});
- Object.defineProperties(arr, {
- "0": {
- value: NaN
- }
- });
-
- return dataPropertyAttributesAreCorrect(arr, "0", NaN, false, false, false);
+Object.defineProperties(arr, {
+ "0": {
+ value: NaN
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arr, "0", NaN);
+
+verifyNotWritable(arr, "0");
+
+verifyNotEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-213.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-213.js
index 23b3b1ff0..7e3d97463 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-213.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-213.js
@@ -10,27 +10,33 @@ description: >
Object.defineProperties - 'O' is an Array, 'name' is an array
index property, the [[Value]] field of 'desc' is +0, and the
[[Value]] attribute value of 'name' is -0 (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- Object.defineProperty(arr, "0", {
- value: -0
- });
-
- try {
- Object.defineProperties(arr, {
- "0": {
- value: +0
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "0", -0, false, false, false);
+var arr = [];
+
+Object.defineProperty(arr, "0", {
+ value: -0
+});
+
+try {
+ Object.defineProperties(arr, {
+ "0": {
+ value: +0
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "0", -0);
+
+ verifyNotWritable(arr, "0");
+
+ verifyNotEnumerable(arr, "0");
+
+ verifyNotConfigurable(arr, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-214.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-214.js
index f6c82c521..0476b149f 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-214.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-214.js
@@ -10,27 +10,33 @@ description: >
Object.defineProperties - 'O' is an Array, 'name' is an array
index property, the [[Value]] field of 'desc' is -0, and the
[[Value]] attribute value of 'name' is +0 (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- Object.defineProperty(arr, "0", {
- value: +0
- });
-
- try {
- Object.defineProperties(arr, {
- "0": {
- value: -0
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "0", +0, false, false, false);
+var arr = [];
+
+Object.defineProperty(arr, "0", {
+ value: +0
+});
+
+try {
+ Object.defineProperties(arr, {
+ "0": {
+ value: -0
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "0", +0);
+
+ verifyNotWritable(arr, "0");
+
+ verifyNotEnumerable(arr, "0");
+
+ verifyNotConfigurable(arr, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-215.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-215.js
index 84b491581..7241d777d 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-215.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-215.js
@@ -11,27 +11,24 @@ description: >
index property, the [[Value]] field of 'desc' and the [[Value]]
attribute value of 'name' are two numbers with same vaule
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "0", {
- value: 101
- });
+Object.defineProperty(arr, "0", {
+ value: 101
+});
- try {
- Object.defineProperties(arr, {
- "0": {
- value: 101
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", 101, false, false, false);
- } catch (e) {
- return false;
- }
+Object.defineProperties(arr, {
+ "0": {
+ value: 101
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", 101);
+
+verifyNotWritable(arr, "0");
+
+verifyNotEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-216.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-216.js
index d31ab7a42..6b7064c9a 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-216.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-216.js
@@ -11,27 +11,25 @@ description: >
index property, the [[Value]] field of 'desc' and the [[Value]]
attribute value of 'name' are two strings which have same length
and same characters in corresponding positions (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- Object.defineProperty(arr, "0", {
- value: "abcd"
- });
-
- try {
- Object.defineProperties(arr, {
- "0": {
- value: "abcd"
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", "abcd", false, false, false);
- } catch (e) {
- return false;
- }
+var arr = [];
+
+Object.defineProperty(arr, "0", {
+ value: "abcd"
+});
+
+Object.defineProperties(arr, {
+ "0": {
+ value: "abcd"
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", "abcd");
+
+verifyNotWritable(arr, "0");
+
+verifyNotEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-217.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-217.js
index 828b92555..7e29d6ac6 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-217.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-217.js
@@ -11,27 +11,25 @@ description: >
index property, the [[Value]] field of 'desc' and the [[Value]]
attribute value of 'name' are two booleans with same value
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- Object.defineProperty(arr, "0", {
- value: true
- });
-
- try {
- Object.defineProperties(arr, {
- "0": {
- value: true
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", true, false, false, false);
- } catch (e) {
- return false;
- }
+var arr = [];
+
+Object.defineProperty(arr, "0", {
+ value: true
+});
+
+Object.defineProperties(arr, {
+ "0": {
+ value: true
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", true);
+
+verifyNotWritable(arr, "0");
+
+verifyNotEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-218.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-218.js
index 79613d2e0..a354697c5 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-218.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-218.js
@@ -11,29 +11,28 @@ description: >
index property, the [[Value]] field of 'desc' and the [[Value]]
attribute value of 'name' are two objects which refer to the same
object (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- var obj1 = { length: 10 };
- Object.defineProperty(arr, "0", {
- value: obj1
- });
-
- var properties = {
- "0": {
- value: obj1
- }
- };
- try {
- Object.defineProperties(arr, properties);
- return dataPropertyAttributesAreCorrect(arr, "0", obj1, false, false, false);
- } catch (e) {
- return false;
- }
+var arr = [];
+
+var obj1 = { length: 10 };
+Object.defineProperty(arr, "0", {
+ value: obj1
+});
+
+var properties = {
+ "0": {
+ value: obj1
}
-runTestCase(testcase);
+};
+
+Object.defineProperties(arr, properties);
+verifyEqualTo(arr, "0", obj1);
+
+verifyNotWritable(arr, "0");
+
+verifyNotEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-219.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-219.js
index 1ea718c28..2fef48222 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-219.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-219.js
@@ -10,27 +10,25 @@ description: >
Object.defineProperties - 'O' is an Array, 'P' is an array index
property that already exists on 'O' with [[Writable]] true, and
the [[Writable]] field of 'desc' is true (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- Object.defineProperty(arr, "0", {
- writable: true
- });
-
- try {
- Object.defineProperties(arr, {
- "0": {
- writable: true
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", undefined, true, false, false);
- } catch (e) {
- return false;
- }
+var arr = [];
+
+Object.defineProperty(arr, "0", {
+ writable: true
+});
+
+Object.defineProperties(arr, {
+ "0": {
+ writable: true
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", undefined);
+
+verifyWritable(arr, "0");
+
+verifyNotEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-220.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-220.js
index ea67a91e2..479f738ef 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-220.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-220.js
@@ -10,28 +10,26 @@ description: >
Object.defineProperties - 'O' is an Array, 'P' is an array index
property that already exists on 'O' with [[Writable]] true, and
the [[Writable]] field of 'desc' is false (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- Object.defineProperty(arr, "0", {
- writable: true,
- configurable: true
- });
-
- try {
- Object.defineProperties(arr, {
- "0": {
- writable: false
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, false, true);
- } catch (e) {
- return false;
- }
+var arr = [];
+
+Object.defineProperty(arr, "0", {
+ writable: true,
+ configurable: true
+});
+
+Object.defineProperties(arr, {
+ "0": {
+ writable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", undefined);
+
+verifyNotWritable(arr, "0");
+
+verifyNotEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-221.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-221.js
index 63e162462..d27e3ed76 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-221.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-221.js
@@ -11,27 +11,26 @@ description: >
property, the [[Get]] field of 'desc' and the [[Get]] attribute
value of 'P' are two objects which refer to the same object
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- function get_func() {
- return 10;
- }
+function get_func() {
+ return 10;
+}
- Object.defineProperty(arr, "0", {
- get: get_func
- });
+Object.defineProperty(arr, "0", {
+ get: get_func
+});
- Object.defineProperties(arr, {
- "0": {
- get: get_func
- }
- });
- return accessorPropertyAttributesAreCorrect(arr, "0", get_func, undefined, undefined, false, false);
+Object.defineProperties(arr, {
+ "0": {
+ get: get_func
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", get_func());
+
+verifyNotEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-222.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-222.js
index c982b46c1..537ec63e1 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-222.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-222.js
@@ -11,31 +11,26 @@ description: >
property, the [[Set]] field of 'desc' and the [[Set]] attribute
value of 'P' are two objects which refer to the same object
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- function set_func(value) {
- arr.setVerifyHelpProp = value;
- }
+function set_func(value) {
+ arr.setVerifyHelpProp = value;
+}
- Object.defineProperty(arr, "0", {
- set: set_func
- });
+Object.defineProperty(arr, "0", {
+ set: set_func
+});
- try {
- Object.defineProperties(arr, {
- "0": {
- set: set_func
- }
- });
- return accessorPropertyAttributesAreCorrect(arr, "0", undefined, set_func, "setVerifyHelpProp", false, false);
- } catch (e) {
- return false;
- }
+Object.defineProperties(arr, {
+ "0": {
+ set: set_func
}
-runTestCase(testcase);
+});
+verifyWritable(arr, "0", "setVerifyHelpProp");
+
+verifyNotEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-223.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-223.js
index 0c587ae74..1dd76d12c 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-223.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-223.js
@@ -10,27 +10,25 @@ description: >
Object.defineProperties - 'O' is an Array, 'P' is an array index
property that already exists on 'O' with [[Enumerable]] true, the
[[Enumerable]] field of 'desc' is true (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- Object.defineProperty(arr, "0", {
- enumerable: true
- });
-
- try {
- Object.defineProperties(arr, {
- "0": {
- enumerable: true
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, true, false);
- } catch (e) {
- return false;
- }
+var arr = [];
+
+Object.defineProperty(arr, "0", {
+ enumerable: true
+});
+
+Object.defineProperties(arr, {
+ "0": {
+ enumerable: true
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", undefined);
+
+verifyNotWritable(arr, "0");
+
+verifyEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-224.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-224.js
index 62274038e..6ce350a6f 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-224.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-224.js
@@ -10,28 +10,26 @@ description: >
Object.defineProperties - 'O' is an Array, 'P' is an array index
property that already exists on 'O' with [[Enumerable]] true, the
[[Enumerable]] field of 'desc' is false (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- Object.defineProperty(arr, "0", {
- enumerable: true,
- configurable: true
- });
-
- try {
- Object.defineProperties(arr, {
- "0": {
- enumerable: false
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, false, true);
- } catch (e) {
- return false;
- }
+var arr = [];
+
+Object.defineProperty(arr, "0", {
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperties(arr, {
+ "0": {
+ enumerable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", undefined);
+
+verifyNotWritable(arr, "0");
+
+verifyNotEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-225.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-225.js
index a7f972595..dbdd70f66 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-225.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-225.js
@@ -10,27 +10,25 @@ description: >
Object.defineProperties - 'O' is an Array, 'P' is an array index
property that already exists on 'O' with [[Configurable]] true,
the [[Configurable]] field of 'desc' is true (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- Object.defineProperty(arr, "0", {
- configurable: true
- });
-
- try {
- Object.defineProperties(arr, {
- "0": {
- configurable: true
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, false, true);
- } catch (e) {
- return false;
- }
+var arr = [];
+
+Object.defineProperty(arr, "0", {
+ configurable: true
+});
+
+Object.defineProperties(arr, {
+ "0": {
+ configurable: true
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", undefined);
+
+verifyNotWritable(arr, "0");
+
+verifyNotEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-226.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-226.js
index f7d174a53..b21715c92 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-226.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-226.js
@@ -10,27 +10,25 @@ description: >
Object.defineProperties - 'O' is an Array, 'P' is an array index
property that already exists on 'O' with [[Configurable]] true,
the [[Configurable]] field of 'desc' is false (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- Object.defineProperty(arr, "0", {
- configurable: true
- });
-
- try {
- Object.defineProperties(arr, {
- "0": {
- configurable: false
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", undefined, false, false, false);
- } catch (e) {
- return false;
- }
+var arr = [];
+
+Object.defineProperty(arr, "0", {
+ configurable: true
+});
+
+Object.defineProperties(arr, {
+ "0": {
+ configurable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", undefined);
+
+verifyNotWritable(arr, "0");
+
+verifyNotEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-227.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-227.js
index b89ee1eb8..21ee69da4 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-227.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-227.js
@@ -11,30 +11,35 @@ description: >
property, TypeError is thrown if the [[Configurable]] attribute
value of 'P' is false and the [[Configurable]] field of 'desc' is
true (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var arr = [];
-
- Object.defineProperty(arr, "1", {
- value: 3,
- configurable: false
- });
-
- try {
- Object.defineProperties(arr, {
- "1": {
- value: 13,
- configurable: true
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", 3, false, false, false);
+
+var arr = [];
+
+Object.defineProperty(arr, "1", {
+ value: 3,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(arr, {
+ "1": {
+ value: 13,
+ configurable: true
}
+ });
+} catch (e) {
+ verifyEqualTo(arr, "1", 3);
+
+ verifyNotWritable(arr, "1");
+
+ verifyNotEnumerable(arr, "1");
+
+ verifyNotConfigurable(arr, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-228.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-228.js
index 2e81f368d..4149ef4e9 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-228.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-228.js
@@ -12,32 +12,38 @@ description: >
value of 'P' is false, and [[Enumerable]] of 'desc' is present and
its value is different from the [[Enumerable]] attribute value of
'P' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "1", {
- value: 3,
- configurable: false,
- enumerable: false
+Object.defineProperty(arr, "1", {
+ value: 3,
+ configurable: false,
+ enumerable: false
- });
+});
- try {
- Object.defineProperties(arr, {
- "1": {
- value: 13,
- enumerable: true
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", 3, false, false, false);
+try {
+ Object.defineProperties(arr, {
+ "1": {
+ value: 13,
+ enumerable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "1", 3);
+
+ verifyNotWritable(arr, "1");
+
+ verifyNotEnumerable(arr, "1");
+
+ verifyNotConfigurable(arr, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-229.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-229.js
index b58d7049e..2a6e9be26 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-229.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-229.js
@@ -11,35 +11,39 @@ description: >
property, TypeError is thrown if 'P' is accessor property, and
'desc' is data descriptor, and the [[Configurable]] attribute
value of 'P' is false (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- function set_fun(value) {
- arr.setVerifyHelpProp = value;
+function set_fun(value) {
+ arr.setVerifyHelpProp = value;
+}
+
+Object.defineProperty(arr, "1", {
+ set: set_fun,
+ configurable: false
+
+});
+
+try {
+ Object.defineProperties(arr, {
+ "1": {
+ value: 13
}
+ });
+ $ERROR("Expected an exception.");
- Object.defineProperty(arr, "1", {
- set: set_fun,
- configurable: false
+} catch (e) {
+ verifyWritable(arr, "1", "setVerifyHelpProp");
- });
+ verifyNotEnumerable(arr, "1");
- try {
- Object.defineProperties(arr, {
- "1": {
- value: 13
- }
- });
- return false;
+ verifyNotConfigurable(arr, "1");
- } catch (ex) {
- return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "1", undefined, set_fun, "setVerifyHelpProp", false, false);
- }
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-230.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-230.js
index d242800b9..be60a5903 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-230.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-230.js
@@ -11,29 +11,35 @@ description: >
property, TypeError is thrown if 'P' is data property, and'desc'
is accessor descriptor, and the [[Configurable]] attribute value
of 'P' is false (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "1", {
- value: 3,
- configurable: false
- });
+Object.defineProperty(arr, "1", {
+ value: 3,
+ configurable: false
+});
- try {
- Object.defineProperties(arr, {
- "1": {
- set: function () { }
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", 3, false, false, false);
+try {
+ Object.defineProperties(arr, {
+ "1": {
+ set: function () { }
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "1", 3);
+
+ verifyNotWritable(arr, "1");
+
+ verifyNotEnumerable(arr, "1");
+
+ verifyNotConfigurable(arr, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-231.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-231.js
index d96779415..09f1d053d 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-231.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-231.js
@@ -12,25 +12,24 @@ description: >
and the [[Configurable]] attribute value of 'P' is true, test 'P'
is converted from data property to accessor property (15.4.5.1
step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
- arr[1] = 3; // default value of attributes: writable: true, configurable: true, enumerable: true
+var arr = [];
+arr[1] = 3; // default value of attributes: writable: true, configurable: true, enumerable: true
- function set_fun(value) {
- arr.setVerifyHelpProp = value;
- }
+function set_fun(value) {
+ arr.setVerifyHelpProp = value;
+}
- Object.defineProperties(arr, {
- "1": {
- set: set_fun
- }
- });
-
- return accessorPropertyAttributesAreCorrect(arr, "1", undefined, set_fun, "setVerifyHelpProp", true, true);
+Object.defineProperties(arr, {
+ "1": {
+ set: set_fun
}
-runTestCase(testcase);
+});
+
+verifyWritable(arr, "1", "setVerifyHelpProp");
+
+verifyEnumerable(arr, "1");
+
+verifyConfigurable(arr, "1");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-232.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-232.js
index f60491fb7..94b01f535 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-232.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-232.js
@@ -12,28 +12,29 @@ description: >
and the [[Configurable]] attribute value of 'P' is true, test 'P'
is converted from accessor property to data property (15.4.5.1
step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "1", {
- get: function () {
- return 3;
- },
- configurable: true
+Object.defineProperty(arr, "1", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
- });
+});
- Object.defineProperties(arr, {
- "1": {
- value: 12
- }
- });
-
- return dataPropertyAttributesAreCorrect(arr, "1", 12, false, false, true);
+Object.defineProperties(arr, {
+ "1": {
+ value: 12
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arr, "1", 12);
+
+verifyNotWritable(arr, "1");
+
+verifyNotEnumerable(arr, "1");
+
+verifyConfigurable(arr, "1");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-233.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-233.js
index f546ecea1..3730f47db 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-233.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-233.js
@@ -13,30 +13,36 @@ description: >
TypeError is thrown if the [[Writable]] attribute value of 'P' is
false and the [[Writable]] field of 'desc' is true. (15.4.5.1
step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "1", {
- configurable: false,
- writable: false
+Object.defineProperty(arr, "1", {
+ configurable: false,
+ writable: false
- });
+});
- try {
- Object.defineProperties(arr, {
- "1": {
- writable: true
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", undefined, false, false, false);
+try {
+ Object.defineProperties(arr, {
+ "1": {
+ writable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "1", undefined);
+
+ verifyNotWritable(arr, "1");
+
+ verifyNotEnumerable(arr, "1");
+
+ verifyNotConfigurable(arr, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-234.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-234.js
index 5adafc9cc..272f82d8a 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-234.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-234.js
@@ -14,31 +14,37 @@ description: >
false, and the type of the [[Value]] field of 'desc' is different
from the type of the [[Value]] attribute value of 'P' (15.4.5.1
step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "1", {
- value: 3,
- configurable: false,
- writable: false
- });
+Object.defineProperty(arr, "1", {
+ value: 3,
+ configurable: false,
+ writable: false
+});
- try {
+try {
- Object.defineProperties(arr, {
- "1": {
- value: "abc"
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", 3, false, false, false);
+ Object.defineProperties(arr, {
+ "1": {
+ value: "abc"
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "1", 3);
+
+ verifyNotWritable(arr, "1");
+
+ verifyNotEnumerable(arr, "1");
+
+ verifyNotConfigurable(arr, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-235.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-235.js
index 8c915439a..f9efe0971 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-235.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-235.js
@@ -12,27 +12,33 @@ description: >
data property with [[Configurable]], [[Writable]] false, 'desc'
is data descriptor, [[Value]] field of 'desc' is +0, and the
[[Value]] attribute value of 'P' is -0 (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- Object.defineProperty(arr, "1", {
- value: +0
- });
-
- try {
- Object.defineProperties(arr, {
- "1": {
- value: -0
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", +0, false, false, false);
+var arr = [];
+
+Object.defineProperty(arr, "1", {
+ value: +0
+});
+
+try {
+ Object.defineProperties(arr, {
+ "1": {
+ value: -0
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "1", +0);
+
+ verifyNotWritable(arr, "1");
+
+ verifyNotEnumerable(arr, "1");
+
+ verifyNotConfigurable(arr, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-236.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-236.js
index 6b8a8ad32..2b7949e7a 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-236.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-236.js
@@ -12,28 +12,34 @@ description: >
data property with [[Configurable]], [[Writable]] false, 'desc'
is data descriptor, [[Value]] field of 'desc' is -0, and the
[[Value]] attribute value of 'P' is +0 (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "1", {
- value: -0
- });
+Object.defineProperty(arr, "1", {
+ value: -0
+});
- try {
- Object.defineProperties(arr, {
- "1": {
- value: +0
- }
- });
-
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", -0, false, false, false);
+try {
+ Object.defineProperties(arr, {
+ "1": {
+ value: +0
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "1", -0);
+
+ verifyNotWritable(arr, "1");
+
+ verifyNotEnumerable(arr, "1");
+
+ verifyNotConfigurable(arr, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-237.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-237.js
index ac6fe0f2f..748d0f2a6 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-237.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-237.js
@@ -13,27 +13,34 @@ description: >
is data descriptor, [[Value]] field of 'desc' and the [[Value]]
attribute value of 'P' are two numbers with different vaule
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- Object.defineProperty(arr, "1", {
- value: 12
- });
-
- try {
- Object.defineProperties(arr, {
- "1": {
- value: 36
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", 12, false, false, false);
+
+var arr = [];
+
+Object.defineProperty(arr, "1", {
+ value: 12
+});
+
+try {
+ Object.defineProperties(arr, {
+ "1": {
+ value: 36
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "1", 12);
+
+ verifyNotWritable(arr, "1");
+
+ verifyNotEnumerable(arr, "1");
+
+ verifyNotConfigurable(arr, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-238.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-238.js
index 91573862c..d35c9dc1b 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-238.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-238.js
@@ -13,27 +13,33 @@ description: >
is data descriptor, [[Value]] field of 'desc' and the [[Value]]
attribute value of 'P' are two strings with different values
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
-
- Object.defineProperty(arr, "1", {
- value: "abcd"
- });
-
- try {
- Object.defineProperties(arr, {
- "1": {
- value: "efgh"
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", "abcd", false, false, false);
+var arr = [];
+
+Object.defineProperty(arr, "1", {
+ value: "abcd"
+});
+
+try {
+ Object.defineProperties(arr, {
+ "1": {
+ value: "efgh"
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "1", "abcd");
+
+ verifyNotWritable(arr, "1");
+
+ verifyNotEnumerable(arr, "1");
+
+ verifyNotConfigurable(arr, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-239.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-239.js
index ae155c7e4..59747d500 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-239.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-239.js
@@ -13,28 +13,34 @@ description: >
is data descriptor, [[Value]] field of 'desc' and the [[Value]]
attribute value of 'P' are two booleans with different values
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "1", {
- value: true
- });
+Object.defineProperty(arr, "1", {
+ value: true
+});
- try {
- Object.defineProperties(arr, {
- "1": {
- value: false
- }
- });
-
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", true, false, false, false);
+try {
+ Object.defineProperties(arr, {
+ "1": {
+ value: false
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "1", true);
+
+ verifyNotWritable(arr, "1");
+
+ verifyNotEnumerable(arr, "1");
+
+ verifyNotConfigurable(arr, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-24.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-24.js
index c7272405d..4867fb475 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-24.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-24.js
@@ -10,30 +10,29 @@ description: >
Object.defineProperties - 'O' is the global object which
implements its own [[GetOwnProperty]] method to get 'P' (8.12.9
step 1 )
-includes:
- - runTestCase.js
- - fnGlobalObject.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js, fnGlobalObject.js]
---*/
-function testcase() {
-
- try {
- Object.defineProperty(fnGlobalObject(), "prop", {
- value: 11,
- writable: true,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperties(fnGlobalObject(), {
- prop: {
- value: 12
- }
- });
- return dataPropertyAttributesAreCorrect(fnGlobalObject(), "prop", 12, true, true, true);
- } finally {
- delete fnGlobalObject().prop;
- }
+
+Object.defineProperty(fnGlobalObject(), "prop", {
+value: 11,
+writable: true,
+enumerable: true,
+configurable: true
+});
+
+Object.defineProperties(fnGlobalObject(), {
+ prop: {
+ value: 12
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(fnGlobalObject(), "prop", 12);
+
+verifyWritable(fnGlobalObject(), "prop");
+
+verifyEnumerable(fnGlobalObject(), "prop");
+
+verifyConfigurable(fnGlobalObject(), "prop");
+
+delete fnGlobalObject().prop;
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-240.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-240.js
index ca06eceb2..42d173b7a 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-240.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-240.js
@@ -13,30 +13,36 @@ description: >
is data descriptor, [[Value]] field of 'desc' and the [[Value]]
attribute value of 'P' are two objects which refer to the
different objects (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
- var obj1 = { value: 12 };
- var obj2 = { value: 36 };
-
- Object.defineProperty(arr, "1", {
- value: obj1
- });
-
- try {
- Object.defineProperties(arr, {
- "1": {
- value: obj2
- }
- });
-
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "1", obj1, false, false, false);
+var arr = [];
+var obj1 = { value: 12 };
+var obj2 = { value: 36 };
+
+Object.defineProperty(arr, "1", {
+ value: obj1
+});
+
+try {
+ Object.defineProperties(arr, {
+ "1": {
+ value: obj2
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "1", obj1);
+
+ verifyNotWritable(arr, "1");
+
+ verifyNotEnumerable(arr, "1");
+
+ verifyNotConfigurable(arr, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-241.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-241.js
index 2b013a35c..1f393c18c 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-241.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-241.js
@@ -14,31 +14,35 @@ description: >
[[Set]] field of 'desc' and the [[Set]] attribute value of 'P' are
two objects which refer to the different objects (15.4.5.1 step
4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- function set_fun(value) {
- arr.setVerifyHelpProp = value;
- }
- Object.defineProperty(arr, "1", {
- set: set_fun
- });
-
- try {
- Object.defineProperties(arr, {
- "1": {
- set: function () { }
- }
- });
-
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "1", undefined, set_fun, "setVerifyHelpProp", false, false);
+function set_fun(value) {
+ arr.setVerifyHelpProp = value;
+}
+Object.defineProperty(arr, "1", {
+ set: set_fun
+});
+
+try {
+ Object.defineProperties(arr, {
+ "1": {
+ set: function () { }
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyWritable(arr, "1", "setVerifyHelpProp");
+
+ verifyNotEnumerable(arr, "1");
+
+ verifyNotConfigurable(arr, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-242.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-242.js
index b3bf55825..c34f8fd23 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-242.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-242.js
@@ -13,31 +13,35 @@ description: >
descriptor, the [[Set]] field of 'desc' is present, and the
[[Set]] field of 'desc' is an object and the [[Set]] attribute
value of 'P' is undefined (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- function set_fun(value) {
- arr.setVerifyHelpProp = value;
- }
- Object.defineProperty(arr, "1", {
- set: set_fun
- });
-
- try {
- Object.defineProperties(arr, {
- "1": {
- set: undefined
- }
- });
-
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "1", undefined, set_fun, "setVerifyHelpProp", false, false);
+function set_fun(value) {
+ arr.setVerifyHelpProp = value;
+}
+Object.defineProperty(arr, "1", {
+ set: set_fun
+});
+
+try {
+ Object.defineProperties(arr, {
+ "1": {
+ set: undefined
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyWritable(arr, "1", "setVerifyHelpProp");
+
+ verifyNotEnumerable(arr, "1");
+
+ verifyNotConfigurable(arr, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-243.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-243.js
index 61cef225c..e04d6537e 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-243.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-243.js
@@ -13,24 +13,21 @@ description: >
accessor descriptor, the [[Set]] field of 'desc' is present, and
the [[Set]] field of 'desc' and the [[Set]] attribute value of 'P'
are undefined (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "1", {
- set: undefined
- });
+Object.defineProperty(arr, "1", {
+ set: undefined
+});
- Object.defineProperties(arr, {
- "1": {
- set: undefined
- }
- });
-
- return accessorPropertyAttributesAreCorrect(arr, "1", undefined, undefined, undefined, false, false);
+Object.defineProperties(arr, {
+ "1": {
+ set: undefined
}
-runTestCase(testcase);
+});
+
+verifyNotEnumerable(arr, "1");
+
+verifyNotConfigurable(arr, "1");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-244.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-244.js
index 9737323fc..607b36218 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-244.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-244.js
@@ -14,33 +14,37 @@ description: >
[[Get]] field of 'desc' and the [[Get]] attribute value of 'P' are
two objects which refer to the different objects (15.4.5.1 step
4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- function get_fun() {
- return 36;
- }
- Object.defineProperty(arr, "1", {
- get: get_fun
- });
-
- try {
- Object.defineProperties(arr, {
- "1": {
- get: function () {
- return 12;
- }
- }
- });
-
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "1", get_fun, undefined, undefined, false, false);
+function get_fun() {
+ return 36;
+}
+Object.defineProperty(arr, "1", {
+ get: get_fun
+});
+
+try {
+ Object.defineProperties(arr, {
+ "1": {
+ get: function () {
+ return 12;
+ }
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "1", get_fun());
+
+ verifyNotEnumerable(arr, "1");
+
+ verifyNotConfigurable(arr, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-245.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-245.js
index 79e12c982..abf521267 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-245.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-245.js
@@ -13,30 +13,34 @@ description: >
descriptor, the [[Get]] field of 'desc' is present, and the
[[Get]] field of 'desc' is an object and the [[Get]] attribute
value of 'P' is undefined (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- function get_fun() {
- return 36;
- }
- Object.defineProperty(arr, "1", {
- get: get_fun
- });
-
- try {
- Object.defineProperties(arr, {
- "1": {
- get: undefined
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "1", get_fun, undefined, undefined, false, false);
+function get_fun() {
+ return 36;
+}
+Object.defineProperty(arr, "1", {
+ get: get_fun
+});
+
+try {
+ Object.defineProperties(arr, {
+ "1": {
+ get: undefined
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "1", get_fun());
+
+ verifyNotEnumerable(arr, "1");
+
+ verifyNotConfigurable(arr, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-246.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-246.js
index 7b81c8297..9f76571b1 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-246.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-246.js
@@ -14,28 +14,22 @@ description: >
field of 'desc' is present, and the [[Get]] field of 'desc' and
the [[Get]] attribute value of 'P' are undefined (15.4.5.1 step
4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "1", {
- get: undefined
- });
+Object.defineProperty(arr, "1", {
+ get: undefined
+});
- try {
- Object.defineProperties(arr, {
- "1": {
- get: undefined
- }
- });
-
- return accessorPropertyAttributesAreCorrect(arr, "1", undefined, undefined, undefined, false, false);
- } catch (ex) {
- return false;
- }
+Object.defineProperties(arr, {
+ "1": {
+ get: undefined
}
-runTestCase(testcase);
+});
+
+verifyNotEnumerable(arr, "1");
+
+verifyNotConfigurable(arr, "1");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-247.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-247.js
index 7691b7938..972a6ba75 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-247.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-247.js
@@ -11,24 +11,22 @@ description: >
named property that already exists on 'O' is data property and
'desc' is data descriptor, test updating the [[Value]] attribute
value of 'P' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [12];
+var arr = [12];
- try {
- Object.defineProperties(arr, {
- "0": {
- value: 36
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", 36, true, true, true);
- } catch (ex) {
- return false;
- }
+Object.defineProperties(arr, {
+ "0": {
+ value: 36
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", 36);
+
+verifyWritable(arr, "0");
+
+verifyEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-248.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-248.js
index a8aaac93f..4f14d5a1b 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-248.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-248.js
@@ -11,24 +11,21 @@ description: >
named property that already exists on 'O' is data property and
'desc' is data descriptor, test setting the [[Value]] attribute
value of 'P' as undefined (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [12];
+var arr = [12];
- try {
- Object.defineProperties(arr, {
- "0": {
- value: undefined
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", undefined, true, true, true);
- } catch (ex) {
- return false;
- }
+Object.defineProperties(arr, {
+ "0": {
+ value: undefined
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", undefined);
+
+verifyWritable(arr, "0");
+
+verifyEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-249.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-249.js
index e79096ad8..161ba162c 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-249.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-249.js
@@ -11,24 +11,22 @@ description: >
named property that already exists on 'O' is data property and
'desc' is data descriptor, test setting the [[Value]] attribute
value of 'P' from undefined to normal value (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [undefined];
+var arr = [undefined];
- try {
- Object.defineProperties(arr, {
- "0": {
- value: 12
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", 12, true, true, true);
- } catch (ex) {
- return false;
- }
+Object.defineProperties(arr, {
+ "0": {
+ value: 12
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", 12);
+
+verifyWritable(arr, "0");
+
+verifyEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-250.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-250.js
index b3bf8147b..53b877972 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-250.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-250.js
@@ -11,24 +11,22 @@ description: >
named property that already exists on 'O' is data property and
'desc' is data descriptor, test updating the [[Writable]]
attribute value of 'P' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [100];
+var arr = [100];
- try {
- Object.defineProperties(arr, {
- "0": {
- writable: false
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", 100, false, true, true);
- } catch (ex) {
- return false;
- }
+Object.defineProperties(arr, {
+ "0": {
+ writable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", 100);
+
+verifyNotWritable(arr, "0");
+
+verifyEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-251.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-251.js
index 93dea5d52..e6e415ea6 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-251.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-251.js
@@ -11,24 +11,21 @@ description: >
named property that already exists on 'O' is data property and
'desc' is data descriptor, test updating the [[Enumerable]]
attribute value of 'P' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [12];
+var arr = [12];
- try {
- Object.defineProperties(arr, {
- "0": {
- enumerable: false
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", 12, true, false, true);
- } catch (ex) {
- return false;
- }
+Object.defineProperties(arr, {
+ "0": {
+ enumerable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", 12);
+
+verifyWritable(arr, "0");
+
+verifyNotEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-252.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-252.js
index e9ae90c36..9e1bd03e2 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-252.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-252.js
@@ -11,24 +11,22 @@ description: >
named property that already exists on 'O' is data property and
'desc' is data descriptor, test updating the [[Configurable]]
attribute value of 'P' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [12];
+var arr = [12];
- try {
- Object.defineProperties(arr, {
- "0": {
- configurable: false
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", 12, true, true, false);
- } catch (ex) {
- return false;
- }
+Object.defineProperties(arr, {
+ "0": {
+ configurable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", 12);
+
+verifyWritable(arr, "0");
+
+verifyEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-253.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-253.js
index bb7079b9c..6b217ec9d 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-253.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-253.js
@@ -11,26 +11,24 @@ description: >
named property that already exists on 'O' is data property and
'desc' is data descriptor, test updating multiple attribute values
of 'P' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var arr = [12];
-
- try {
- Object.defineProperties(arr, {
- "0": {
- value: 36,
- writable: false,
- configurable: false
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "0", 36, false, true, false);
- } catch (ex) {
- return false;
- }
+
+var arr = [12];
+
+Object.defineProperties(arr, {
+ "0": {
+ value: 36,
+ writable: false,
+ configurable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", 36);
+
+verifyNotWritable(arr, "0");
+
+verifyEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-254.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-254.js
index 37b3fd8f3..3b158e5d7 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-254.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-254.js
@@ -11,31 +11,30 @@ description: >
named property that already exists on 'O' is accessor property and
'desc' is accessor descriptor, test updating the [[Get]] attribute
value of 'P' with different getter function (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- function get_fun() {
- return 36;
- }
+function get_fun() {
+ return 36;
+}
- Object.defineProperty(arr, "0", {
- get: function () {
- return 12;
- },
- configurable: true
- });
+Object.defineProperty(arr, "0", {
+ get: function () {
+ return 12;
+ },
+ configurable: true
+});
- Object.defineProperties(arr, {
- "0": {
- get: get_fun
- }
- });
- return accessorPropertyAttributesAreCorrect(arr, "0", get_fun, undefined, undefined, false, true);
+Object.defineProperties(arr, {
+ "0": {
+ get: get_fun
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", get_fun());
+
+verifyNotEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-255.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-255.js
index 1dc6b1551..77c7f5cca 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-255.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-255.js
@@ -11,27 +11,24 @@ description: >
named property that already exists on 'O' is accessor property and
'desc' is accessor descriptor, test setting the [[Get]] attribute
value of 'P' as undefined (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "0", {
- get: function () {
- return 12;
- },
- configurable: true
- });
+Object.defineProperty(arr, "0", {
+ get: function () {
+ return 12;
+ },
+ configurable: true
+});
- Object.defineProperties(arr, {
- "0": {
- get: undefined
- }
- });
- return accessorPropertyAttributesAreCorrect(arr, "0", undefined, undefined, undefined, false, true);
+Object.defineProperties(arr, {
+ "0": {
+ get: undefined
}
-runTestCase(testcase);
+});
+verifyNotEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-256.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-256.js
index b81817a23..255d4b12c 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-256.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-256.js
@@ -11,29 +11,28 @@ description: >
named property that already exists on 'O' is accessor property and
'desc' is accessor descriptor, test updating the [[Get]] attribute
value of 'P' from undefined to function (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- function get_fun() {
- return 36;
- }
+function get_fun() {
+ return 36;
+}
- Object.defineProperty(arr, "0", {
- get: undefined,
- configurable: true
- });
+Object.defineProperty(arr, "0", {
+ get: undefined,
+ configurable: true
+});
- Object.defineProperties(arr, {
- "0": {
- get: get_fun
- }
- });
- return accessorPropertyAttributesAreCorrect(arr, "0", get_fun, undefined, undefined, false, true);
+Object.defineProperties(arr, {
+ "0": {
+ get: get_fun
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", get_fun());
+
+verifyNotEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-257.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-257.js
index eee053f64..d311bb83b 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-257.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-257.js
@@ -11,33 +11,29 @@ description: >
named property that already exists on 'O' is accessor property and
'desc' is accessor descriptor, test updating the [[Set]] attribute
value of 'P' with different getter function (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var arr = [];
-
- function set_fun(value) {
- arr.setVerifyHelpProp = value;
- }
-
- Object.defineProperty(arr, "0", {
- set: function () { },
- configurable: true
- });
-
- try {
- Object.defineProperties(arr, {
- "0": {
- set: set_fun
- }
- });
- return accessorPropertyAttributesAreCorrect(arr, "0", undefined, set_fun, "setVerifyHelpProp", false, true);
- } catch (ex) {
- return false;
- }
+
+var arr = [];
+
+function set_fun(value) {
+ arr.setVerifyHelpProp = value;
+}
+
+Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+});
+
+Object.defineProperties(arr, {
+ "0": {
+ set: set_fun
}
-runTestCase(testcase);
+});
+verifyWritable(arr, "0", "setVerifyHelpProp");
+
+verifyNotEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-258.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-258.js
index 006ca0621..6bad47777 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-258.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-258.js
@@ -11,25 +11,22 @@ description: >
named property that already exists on 'O' is accessor property and
'desc' is accessor descriptor, test setting the [[Set]] attribute
value of 'P' as undefined (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "0", {
- set: function () { },
- configurable: true
- });
+Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+});
- Object.defineProperties(arr, {
- "0": {
- set: undefined
- }
- });
- return accessorPropertyAttributesAreCorrect(arr, "0", undefined, undefined, undefined, false, true);
+Object.defineProperties(arr, {
+ "0": {
+ set: undefined
}
-runTestCase(testcase);
+});
+verifyNotEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-259.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-259.js
index eaa40a6eb..a444eadc9 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-259.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-259.js
@@ -11,32 +11,27 @@ description: >
named property that already exists on 'O' is accessor property and
'desc' is accessor descriptor, test updating the [[Set]] attribute
value of 'P' from undefined to function (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- function set_fun(value) {
- arr.setVerifyHelpProp = value;
- }
- Object.defineProperty(arr, "0", {
- set: undefined,
- configurable: true
- });
+function set_fun(value) {
+ arr.setVerifyHelpProp = value;
+}
+Object.defineProperty(arr, "0", {
+ set: undefined,
+ configurable: true
+});
- try {
- Object.defineProperties(arr, {
- "0": {
- set: set_fun
- }
- });
- return accessorPropertyAttributesAreCorrect(arr, "0", undefined, set_fun, "setVerifyHelpProp", false, true);
- } catch (ex) {
- return false;
- }
+Object.defineProperties(arr, {
+ "0": {
+ set: set_fun
}
-runTestCase(testcase);
+});
+verifyWritable(arr, "0", "setVerifyHelpProp");
+
+verifyNotEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-260.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-260.js
index 867cb5c62..2bdb0764a 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-260.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-260.js
@@ -11,33 +11,28 @@ description: >
named property that already exists on 'O' is accessor property and
'desc' is accessor descriptor, test updating the [[Enumerable]]
attribute value of 'P' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- function set_fun(value) {
- arr.setVerifyHelpProp = value;
- }
- Object.defineProperty(arr, "0", {
- set: set_fun,
- enumerable: true,
- configurable: true
- });
+function set_fun(value) {
+ arr.setVerifyHelpProp = value;
+}
+Object.defineProperty(arr, "0", {
+ set: set_fun,
+ enumerable: true,
+ configurable: true
+});
- try {
- Object.defineProperties(arr, {
- "0": {
- enumerable: false
- }
- });
- return accessorPropertyAttributesAreCorrect(arr, "0", undefined, set_fun, "setVerifyHelpProp", false, true);
- } catch (ex) {
- return false;
- }
+Object.defineProperties(arr, {
+ "0": {
+ enumerable: false
}
-runTestCase(testcase);
+});
+verifyWritable(arr, "0", "setVerifyHelpProp");
+
+verifyNotEnumerable(arr, "0");
+
+verifyConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-261.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-261.js
index 009830375..4f40f130f 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-261.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-261.js
@@ -11,32 +11,28 @@ description: >
named property that already exists on 'O' is accessor property and
'desc' is accessor descriptor, test updating the [[Configurable]]
attribute value of 'P' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var arr = [];
-
- function set_fun(value) {
- arr.setVerifyHelpProp = value;
- }
- Object.defineProperty(arr, "0", {
- set: set_fun,
- configurable: true
- });
-
- try {
- Object.defineProperties(arr, {
- "0": {
- configurable: false
- }
- });
- return accessorPropertyAttributesAreCorrect(arr, "0", undefined, set_fun, "setVerifyHelpProp", false, false);
- } catch (ex) {
- return false;
- }
+
+var arr = [];
+
+function set_fun(value) {
+ arr.setVerifyHelpProp = value;
+}
+Object.defineProperty(arr, "0", {
+ set: set_fun,
+ configurable: true
+});
+
+Object.defineProperties(arr, {
+ "0": {
+ configurable: false
}
-runTestCase(testcase);
+});
+verifyWritable(arr, "0", "setVerifyHelpProp");
+
+verifyNotEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-262.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-262.js
index cf4f32fa2..915590c27 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-262.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-262.js
@@ -11,41 +11,38 @@ description: >
named property that already exists on 'O' is accessor property and
'desc' is accessor descriptor, test updating multiple attribute
values of 'P' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var arr = [];
-
- function get_fun() {
- return 36;
- }
- function set_fun(value) {
- arr.setVerifyHelpProp = value;
- }
- Object.defineProperty(arr, "0", {
- get: function () {
- return 12;
- },
- set: set_fun,
- enumerable: true,
- configurable: true
- });
-
- try {
- Object.defineProperties(arr, {
- "0": {
- get: get_fun,
- enumerable: false,
- configurable: false
- }
- });
- return accessorPropertyAttributesAreCorrect(arr, "0", get_fun, set_fun, "setVerifyHelpProp", false, false);
- } catch (ex) {
- return false;
- }
+
+var arr = [];
+
+function get_fun() {
+ return 36;
+}
+function set_fun(value) {
+ arr.setVerifyHelpProp = value;
+}
+Object.defineProperty(arr, "0", {
+ get: function () {
+ return 12;
+ },
+ set: set_fun,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperties(arr, {
+ "0": {
+ get: get_fun,
+ enumerable: false,
+ configurable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "0", get_fun());
+
+verifyWritable(arr, "0", "setVerifyHelpProp");
+
+verifyNotEnumerable(arr, "0");
+
+verifyNotConfigurable(arr, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-266.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-266.js
index 4db292bd3..9493d14db 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-266.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-266.js
@@ -11,23 +11,29 @@ description: >
that won't exist on 'O', and 'desc' is data descriptor, test 'P'
is defined in 'O' with all correct attribute values (15.4.5.1 step
5)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperties(arr, {
- "property": {
- value: 12,
- writable: true,
- enumerable: true,
- configurable: true
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "property", 12, true, true, true) && arr.length === 0;
+Object.defineProperties(arr, {
+ "property": {
+ value: 12,
+ writable: true,
+ enumerable: true,
+ configurable: true
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "property", 12);
+
+verifyWritable(arr, "property");
+
+verifyEnumerable(arr, "property");
+
+verifyConfigurable(arr, "property");
+
+if (arr.length !== 0) {
+ $ERROR('Expected arr.length === 0, actually ' + arr.length);
+}
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-267.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-267.js
index 7b8d81bdc..7c4981389 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-267.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-267.js
@@ -10,31 +10,36 @@ description: >
Object.defineProperties - 'O' is an Array, 'P' is generic
property, and 'desc' is accessor descriptor, test 'P' is defined
in 'O' with all correct attribute values (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var arr = [];
-
- function get_fun() {
- return 12;
- }
- function set_fun(value) {
- arr.setVerifyHelpProp = value;
- }
-
- Object.defineProperties(arr, {
- "property": {
- get: get_fun,
- set: set_fun,
- enumerable: true,
- configurable: true
- }
- });
- return accessorPropertyAttributesAreCorrect(arr, "property", get_fun, set_fun, "setVerifyHelpProp", true, true) &&
- arr.length === 0;
+
+var arr = [];
+
+function get_fun() {
+ return 12;
+}
+function set_fun(value) {
+ arr.setVerifyHelpProp = value;
+}
+
+Object.defineProperties(arr, {
+ "property": {
+ get: get_fun,
+ set: set_fun,
+ enumerable: true,
+ configurable: true
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "property", get_fun());
+
+verifyWritable(arr, "property", "setVerifyHelpProp");
+
+verifyEnumerable(arr, "property");
+
+verifyConfigurable(arr, "property");
+
+if (arr.length !== 0) {
+ $ERROR('Expected arr.length === 0, actually ' + arr.length);
+}
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-268.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-268.js
index c302b57a8..d536f06f9 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-268.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-268.js
@@ -10,34 +10,35 @@ description: >
Object.defineProperties - 'O' is an Array, 'P' is generic own
accessor property of 'O', and 'desc' is accessor descriptor, test
updating multiple attribute values of 'P' (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
- function get_fun() {
- return 12;
- }
- function set_fun(value) {
- arr.verifySetFun = value;
- }
- Object.defineProperty(arr, "property", {
- get: function () {
- return 36;
- },
- enumerable: true,
- configurable: true
- });
+var arr = [];
+function get_fun() {
+ return 12;
+}
+function set_fun(value) {
+ arr.verifySetFun = value;
+}
+Object.defineProperty(arr, "property", {
+ get: function () {
+ return 36;
+ },
+ enumerable: true,
+ configurable: true
+});
- Object.defineProperties(arr, {
- "property": {
- get: get_fun,
- set: set_fun,
- enumerable: false
- }
- });
- return accessorPropertyAttributesAreCorrect(arr, "property", get_fun, set_fun, "verifySetFun", false, true);
+Object.defineProperties(arr, {
+ "property": {
+ get: get_fun,
+ set: set_fun,
+ enumerable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "property", get_fun());
+
+verifyWritable(arr, "property", "verifySetFun");
+
+verifyNotEnumerable(arr, "property");
+
+verifyConfigurable(arr, "property");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-269.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-269.js
index 84b60a4e0..94fea276e 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-269.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-269.js
@@ -10,23 +10,29 @@ description: >
Object.defineProperties - 'O' is an Array, 'P' is generic own data
property of 'O', and 'desc' is data descriptor, test updating
multiple attribute values of 'P' (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
- arr.property = 12; // default value of attributes: writable: true, configurable: true, enumerable: true
+var arr = [];
+arr.property = 12; // default value of attributes: writable: true, configurable: true, enumerable: true
- Object.defineProperties(arr, {
- "property": {
- writable: false,
- enumerable: false,
- configurable: false
- }
- });
- return dataPropertyAttributesAreCorrect(arr, "property", 12, false, false, false) && arr.length === 0;
+Object.defineProperties(arr, {
+ "property": {
+ writable: false,
+ enumerable: false,
+ configurable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(arr, "property", 12);
+
+verifyNotWritable(arr, "property");
+
+verifyNotEnumerable(arr, "property");
+
+verifyNotConfigurable(arr, "property");
+
+if (arr.length !== 0) {
+ $ERROR('Expected arr.length === 0, actually ' + arr.length);
+}
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-270.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-270.js
index 8ddf5151c..fbc911173 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-270.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-270.js
@@ -11,28 +11,34 @@ description: >
property of 'O', test TypeError is thrown when updating the
[[Value]] attribute value of 'P' which is defined as unwritable
and non-configurable (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "property", {
- value: 12
- });
+Object.defineProperty(arr, "property", {
+ value: 12
+});
- try {
- Object.defineProperties(arr, {
- "property": {
- value: 36
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "property", 12, false, false, false);
+try {
+ Object.defineProperties(arr, {
+ "property": {
+ value: 36
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "property", 12);
+
+ verifyNotWritable(arr, "property");
+
+ verifyNotEnumerable(arr, "property");
+
+ verifyNotConfigurable(arr, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-271.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-271.js
index 6cefedf40..1ab8f43ec 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-271.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-271.js
@@ -11,28 +11,34 @@ description: >
property of 'O', test TypeError is thrown when updating the
[[Writable]] attribute value of 'P' which is defined as
non-configurable (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "property", {
- writable: false
- });
+Object.defineProperty(arr, "property", {
+ writable: false
+});
- try {
- Object.defineProperties(arr, {
- "property": {
- writable: true
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "property", undefined, false, false, false);
+try {
+ Object.defineProperties(arr, {
+ "property": {
+ writable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "property", undefined);
+
+ verifyNotWritable(arr, "property");
+
+ verifyNotEnumerable(arr, "property");
+
+ verifyNotConfigurable(arr, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-272.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-272.js
index 2630e340d..4cde5138c 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-272.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-272.js
@@ -11,29 +11,35 @@ description: >
property of 'O', test TypeError is thrown when updating the
[[Enumerable]] attribute value of 'P' which is defined as
non-configurable (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "property", {
- value: 12,
- enumerable: false
- });
+Object.defineProperty(arr, "property", {
+ value: 12,
+ enumerable: false
+});
- try {
- Object.defineProperties(arr, {
- "property": {
- enumerable: true
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "property", 12, false, false, false);
+try {
+ Object.defineProperties(arr, {
+ "property": {
+ enumerable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "property", 12);
+
+ verifyNotWritable(arr, "property");
+
+ verifyNotEnumerable(arr, "property");
+
+ verifyNotConfigurable(arr, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-273.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-273.js
index f22658d7c..56c44ea74 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-273.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-273.js
@@ -11,28 +11,34 @@ description: >
property of 'O', test TypeError is thrown when updating the
[[Configurable]] attribute value of 'P' which is defined as
non-configurable (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- Object.defineProperty(arr, "property", {
- value: 12
- });
+Object.defineProperty(arr, "property", {
+ value: 12
+});
- try {
- Object.defineProperties(arr, {
- "property": {
- configurable: true
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && dataPropertyAttributesAreCorrect(arr, "property", 12, false, false, false);
+try {
+ Object.defineProperties(arr, {
+ "property": {
+ configurable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "property", 12);
+
+ verifyNotWritable(arr, "property");
+
+ verifyNotEnumerable(arr, "property");
+
+ verifyNotConfigurable(arr, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-274.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-274.js
index 2f27559b3..58ab74734 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-274.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-274.js
@@ -11,37 +11,42 @@ description: >
accessor property of 'O', test TypeError is thrown when updating
the [[Get]] attribute value of 'P' which is defined as
non-configurable (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- function get_fun() {
- return 37;
- }
- function set_fun(value) {
- arr.verifySetFun = value;
- }
- Object.defineProperty(arr, "property", {
- get: get_fun,
- set: set_fun
- });
-
- try {
- Object.defineProperties(arr, {
- "property": {
- get: function () {
- return 36;
- }
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) &&
- accessorPropertyAttributesAreCorrect(arr, "property", get_fun, set_fun, "verifySetFun", false, false);
+function get_fun() {
+ return 37;
+}
+function set_fun(value) {
+ arr.verifySetFun = value;
+}
+Object.defineProperty(arr, "property", {
+ get: get_fun,
+ set: set_fun
+});
+
+try {
+ Object.defineProperties(arr, {
+ "property": {
+ get: function () {
+ return 36;
+ }
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arr, "property", get_fun());
+
+ verifyWritable(arr, "property", "verifySetFun");
+
+ verifyNotEnumerable(arr, "property");
+
+ verifyNotConfigurable(arr, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-275.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-275.js
index db153cc1f..9a4a3fef0 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-275.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-275.js
@@ -11,31 +11,34 @@ description: >
accessor property of 'O', test TypeError is thrown when updating
the [[Set]] attribute value of 'P' which is defined as
non-configurable (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- function set_fun(value) {
- arr.setVerifyHelpProp = value;
- }
- Object.defineProperty(arr, "property", {
- set: set_fun
- });
-
- try {
- Object.defineProperties(arr, {
- "property": {
- set: function () { }
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "property", undefined, set_fun, "setVerifyHelpProp", false, false);
+function set_fun(value) {
+ arr.setVerifyHelpProp = value;
+}
+Object.defineProperty(arr, "property", {
+ set: set_fun
+});
+
+try {
+ Object.defineProperties(arr, {
+ "property": {
+ set: function () { }
}
+ });
+} catch (e) {
+ verifyWritable(arr, "property", "setVerifyHelpProp");
+
+ verifyNotEnumerable(arr, "property");
+
+ verifyNotConfigurable(arr, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-276.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-276.js
index f39432a20..85471b3f2 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-276.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-276.js
@@ -11,32 +11,36 @@ description: >
accessor property of 'O', test TypeError is thrown when updating
the [[Enumerable]] attribute value of 'P' which is defined as
non-configurable (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- function set_fun(value) {
- arr.setVerifyHelpProp = value;
- }
- Object.defineProperty(arr, "property", {
- set: set_fun,
- enumerable: false
- });
-
- try {
- Object.defineProperties(arr, {
- "property": {
- enumerable: true
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "property", undefined, set_fun, "setVerifyHelpProp", false, false);
+function set_fun(value) {
+ arr.setVerifyHelpProp = value;
+}
+Object.defineProperty(arr, "property", {
+ set: set_fun,
+ enumerable: false
+});
+
+try {
+ Object.defineProperties(arr, {
+ "property": {
+ enumerable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyWritable(arr, "property", "setVerifyHelpProp");
+
+ verifyNotEnumerable(arr, "property");
+
+ verifyNotConfigurable(arr, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-277.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-277.js
index 2e327ca23..58ca3f5b4 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-277.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-277.js
@@ -11,32 +11,36 @@ description: >
accessor property of 'O', test TypeError is thrown when updating
the [[Configurable]] attribute value of 'P' which is defined as
non-configurable (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arr = [];
+var arr = [];
- function set_fun(value) {
- arr.setVerifyHelpProp = value;
- }
- Object.defineProperty(arr, "property", {
- set: set_fun,
- configurable: false
- });
-
- try {
- Object.defineProperties(arr, {
- "property": {
- configurable: true
- }
- });
- return false;
- } catch (ex) {
- return (ex instanceof TypeError) && accessorPropertyAttributesAreCorrect(arr, "property", undefined, set_fun, "setVerifyHelpProp", false, false);
+function set_fun(value) {
+ arr.setVerifyHelpProp = value;
+}
+Object.defineProperty(arr, "property", {
+ set: set_fun,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(arr, {
+ "property": {
+ configurable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyWritable(arr, "property", "setVerifyHelpProp");
+
+ verifyNotEnumerable(arr, "property");
+
+ verifyNotConfigurable(arr, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-278.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-278.js
index 020367e28..19307efc0 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-278.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-278.js
@@ -12,30 +12,31 @@ description: >
'O', and is deleted afterwards, and 'desc' is data descriptor,
test 'P' is redefined in 'O' with all correct attribute values
(10.6 [[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun(a, b, c) {
- arg = arguments;
- }(0, 1, 2));
+(function fun(a, b, c) {
+ arg = arguments;
+}(0, 1, 2));
- delete arg[0];
+delete arg[0];
- Object.defineProperties(arg, {
- "0": {
- value: 10,
- writable: true,
- enumerable: true,
- configurable: true
- }
- });
-
- return dataPropertyAttributesAreCorrect(arg, "0", 10, true, true, true);
+Object.defineProperties(arg, {
+ "0": {
+ value: 10,
+ writable: true,
+ enumerable: true,
+ configurable: true
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arg, "0", 10);
+
+verifyWritable(arg, "0");
+
+verifyEnumerable(arg, "0");
+
+verifyConfigurable(arg, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-279.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-279.js
index 445d5719d..6d412c21f 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-279.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-279.js
@@ -12,37 +12,38 @@ description: >
'O', and is deleted afterwards, and 'desc' is accessor descriptor,
test 'P' is redefined in 'O' with all correct attribute values
(10.6 [[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun(a, b, c) {
- arg = arguments;
- }(0, 1, 2));
+(function fun(a, b, c) {
+ arg = arguments;
+}(0, 1, 2));
- delete arg[0];
+delete arg[0];
- function get_func() {
- return 10;
- }
- function set_func(value) {
- arg.setVerifyHelpProp = value;
- }
+function get_func() {
+ return 10;
+}
+function set_func(value) {
+ arg.setVerifyHelpProp = value;
+}
- Object.defineProperties(arg, {
- "0": {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- }
- });
-
- return accessorPropertyAttributesAreCorrect(arg, "0", get_func, set_func, "setVerifyHelpProp", true, true);
+Object.defineProperties(arg, {
+ "0": {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arg, "0", get_func());
+
+verifyWritable(arg, "0", "setVerifyHelpProp");
+
+verifyEnumerable(arg, "0");
+
+verifyConfigurable(arg, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-28.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-28.js
index 3627e0084..f6bfcfbb7 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-28.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-28.js
@@ -10,18 +10,25 @@ description: >
Object.defineProperties - 'P' doesn't exist in 'O', test
[[Writable]] of 'P' is set as false value if absent in data
descriptor 'desc' (8.12.9 step 4.a.i)
-includes: [runTestCase.js]
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperties(obj, {
- prop: {
- value: 1001
- }
- });
- obj.prop = 1002;
- return obj.hasOwnProperty("prop") && obj.prop === 1001;
+Object.defineProperties(obj, {
+ prop: {
+ value: 1001
}
-runTestCase(testcase);
+});
+
+if (isWritable(obj, "prop")) {
+ $ERROR('Expected obj["prop"] not to be writable.');
+}
+
+if (!obj.hasOwnProperty("prop")) {
+ $ERROR('Expected obj.hasOwnProperty("prop") to be true, actually ' + obj.hasOwnProperty("prop"));
+}
+
+if (obj.prop !== 1001) {
+ $ERROR('Expected obj.prop === 1001, actually ' + obj.prop);
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-281.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-281.js
index cf0de9523..53399652a 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-281.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-281.js
@@ -11,28 +11,29 @@ description: >
data property of 'O' which is also defined in [[ParameterMap]] of
'O', and 'desc' is data descriptor, test updating multiple
attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun(a, b, c) {
- arg = arguments;
- }(0, 1, 2));
+(function fun(a, b, c) {
+ arg = arguments;
+}(0, 1, 2));
- Object.defineProperties(arg, {
- "0": {
- value: 20,
- writable: false,
- enumerable: false,
- configurable: false
- }
- });
-
- return dataPropertyAttributesAreCorrect(arg, "0", 20, false, false, false);
+Object.defineProperties(arg, {
+ "0": {
+ value: 20,
+ writable: false,
+ enumerable: false,
+ configurable: false
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arg, "0", 20);
+
+verifyNotWritable(arg, "0");
+
+verifyNotEnumerable(arg, "0");
+
+verifyNotConfigurable(arg, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-282.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-282.js
index f8dc1ff7b..3e7f474b6 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-282.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-282.js
@@ -12,35 +12,41 @@ description: >
'O', test TypeError is thrown when updating the [[Value]]
attribute value of 'P' whose writable and configurable attributes
are false (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun(a, b, c) {
- arg = arguments;
- }(0, 1, 2));
+(function fun(a, b, c) {
+ arg = arguments;
+}(0, 1, 2));
- Object.defineProperty(arg, "0", {
- value: 0,
- writable: false,
- configurable: false
- });
+Object.defineProperty(arg, "0", {
+ value: 0,
+ writable: false,
+ configurable: false
+});
- try {
- Object.defineProperties(arg, {
- "0": {
- value: 10
- }
- });
-
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, true, false);
+try {
+ Object.defineProperties(arg, {
+ "0": {
+ value: 10
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "0", 0);
+
+ verifyNotWritable(arg, "0");
+
+ verifyEnumerable(arg, "0");
+
+ verifyNotConfigurable(arg, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-283.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-283.js
index 1f43637be..c77c98796 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-283.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-283.js
@@ -12,36 +12,42 @@ description: >
'O', test TypeError is thrown when updating the [[Writable]]
attribute value of 'P' which is defined as non-configurable (10.6
[[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun(a, b, c) {
- arg = arguments;
- }(0, 1, 2));
+(function fun(a, b, c) {
+ arg = arguments;
+}(0, 1, 2));
- Object.defineProperty(arg, "0", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: false
- });
+Object.defineProperty(arg, "0", {
+ value: 0,
+ writable: false,
+ enumerable: false,
+ configurable: false
+});
- try {
- Object.defineProperties(arg, {
- "0": {
- writable: true
- }
- });
-
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, false, false);
+try {
+ Object.defineProperties(arg, {
+ "0": {
+ writable: true
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "0", 0);
+
+ verifyNotWritable(arg, "0");
+
+ verifyNotEnumerable(arg, "0");
+
+ verifyNotConfigurable(arg, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-284.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-284.js
index 62bda9ef7..a1134e768 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-284.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-284.js
@@ -12,36 +12,42 @@ description: >
'O', test TypeError is thrown when updating the [[Enumerable]]
attribute value of 'P' which is defined as non-configurable (10.6
[[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun(a, b, c) {
- arg = arguments;
- }(0, 1, 2));
+(function fun(a, b, c) {
+ arg = arguments;
+}(0, 1, 2));
- Object.defineProperty(arg, "0", {
- value: 0,
- writable: false,
- enumerable: true,
- configurable: false
- });
+Object.defineProperty(arg, "0", {
+ value: 0,
+ writable: false,
+ enumerable: true,
+ configurable: false
+});
- try {
- Object.defineProperties(arg, {
- "0": {
- enumerable: false
- }
- });
-
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, true, false);
+try {
+ Object.defineProperties(arg, {
+ "0": {
+ enumerable: false
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "0", 0);
+
+ verifyNotWritable(arg, "0");
+
+ verifyEnumerable(arg, "0");
+
+ verifyNotConfigurable(arg, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-285.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-285.js
index 9b00b79ee..b386f92e0 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-285.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-285.js
@@ -12,36 +12,42 @@ description: >
'O', test TypeError is thrown when updating the [[Configurable]]
attribute value of 'P' which is defined as non-configurable (10.6
[[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun(a, b, c) {
- arg = arguments;
- }(0, 1, 2));
+(function fun(a, b, c) {
+ arg = arguments;
+}(0, 1, 2));
- Object.defineProperty(arg, "0", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: false
- });
+Object.defineProperty(arg, "0", {
+ value: 0,
+ writable: false,
+ enumerable: false,
+ configurable: false
+});
- try {
- Object.defineProperties(arg, {
- "0": {
- configurable: true
- }
- });
-
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, false, false);
+try {
+ Object.defineProperties(arg, {
+ "0": {
+ configurable: true
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "0", 0);
+
+ verifyNotWritable(arg, "0");
+
+ verifyNotEnumerable(arg, "0");
+
+ verifyNotConfigurable(arg, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-288.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-288.js
index 1c3e584d5..420cd3c83 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-288.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-288.js
@@ -12,39 +12,43 @@ description: >
of 'O', test TypeError is thrown when updating the [[Enumerable]]
attribute value of 'P' which is defined as non-configurable (10.6
[[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun(a, b, c) {
- arg = arguments;
- }(0, 1, 2));
+(function fun(a, b, c) {
+ arg = arguments;
+}(0, 1, 2));
- function get_func() {
- return 0;
- }
+function get_func() {
+ return 0;
+}
+
+Object.defineProperty(arg, "0", {
+ get: get_func,
+ enumerable: true,
+ configurable: false
+});
- Object.defineProperty(arg, "0", {
- get: get_func,
- enumerable: true,
- configurable: false
- });
-
- try {
- Object.defineProperties(arg, {
- "0": {
- enumerable: false
- }
- });
-
- return false;
- } catch (e) {
- return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func, undefined, undefined, true, false);
+try {
+ Object.defineProperties(arg, {
+ "0": {
+ enumerable: false
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "0", get_func());
+
+ verifyEnumerable(arg, "0");
+
+ verifyNotConfigurable(arg, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-289.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-289.js
index d7b9bf466..97c2452b1 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-289.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-289.js
@@ -12,39 +12,43 @@ description: >
of 'O', test TypeError is thrown when updating the
[[Configurable]] attribute value of 'P' which is defined as
non-configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun(a, b, c) {
- arg = arguments;
- }(0, 1, 2));
+(function fun(a, b, c) {
+ arg = arguments;
+}(0, 1, 2));
- function get_func() {
- return 0;
- }
+function get_func() {
+ return 0;
+}
+
+Object.defineProperty(arg, "0", {
+ get: get_func,
+ enumerable: true,
+ configurable: false
+});
- Object.defineProperty(arg, "0", {
- get: get_func,
- enumerable: true,
- configurable: false
- });
-
- try {
- Object.defineProperties(arg, {
- "0": {
- configurable: true
- }
- });
-
- return false;
- } catch (e) {
- return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func, undefined, undefined, true, false);
+try {
+ Object.defineProperties(arg, {
+ "0": {
+ configurable: true
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "0", get_func());
+
+ verifyEnumerable(arg, "0");
+
+ verifyNotConfigurable(arg, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-290.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-290.js
index 7dc503f5e..d2330a97f 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-290.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-290.js
@@ -12,30 +12,31 @@ description: >
[[ParameterMap]] of 'O', and 'desc' is data descriptor, test 'P'
is defined in 'O' with all correct attribute values (10.6
[[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun() {
- arg = arguments;
- }(0, 1, 2));
+(function fun() {
+ arg = arguments;
+}(0, 1, 2));
- delete arg[0];
+delete arg[0];
- Object.defineProperties(arg, {
- "0": {
- value: 10,
- writable: false,
- enumerable: false,
- configurable: false
- }
- });
-
- return dataPropertyAttributesAreCorrect(arg, "0", 10, false, false, false);
+Object.defineProperties(arg, {
+ "0": {
+ value: 10,
+ writable: false,
+ enumerable: false,
+ configurable: false
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arg, "0", 10);
+
+verifyNotWritable(arg, "0");
+
+verifyNotEnumerable(arg, "0");
+
+verifyNotConfigurable(arg, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-291.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-291.js
index c9eabffa5..3c84949e3 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-291.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-291.js
@@ -12,37 +12,38 @@ description: >
[[ParameterMap]] of 'O', and 'desc' is accessor descriptor, test
'P' is defined in 'O' with all correct attribute values (10.6
[[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun() {
- arg = arguments;
- }(0, 1, 2));
+(function fun() {
+ arg = arguments;
+}(0, 1, 2));
- delete arg[0];
+delete arg[0];
- function get_func() {
- return 10;
- }
- function set_func(value) {
- arg.setVerifyHelpProp = value;
- }
+function get_func() {
+ return 10;
+}
+function set_func(value) {
+ arg.setVerifyHelpProp = value;
+}
- Object.defineProperties(arg, {
- "0": {
- get: get_func,
- set: set_func,
- enumerable: false,
- configurable: false
- }
- });
-
- return accessorPropertyAttributesAreCorrect(arg, "0", get_func, set_func, "setVerifyHelpProp", false, false);
+Object.defineProperties(arg, {
+ "0": {
+ get: get_func,
+ set: set_func,
+ enumerable: false,
+ configurable: false
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arg, "0", get_func());
+
+verifyWritable(arg, "0", "setVerifyHelpProp");
+
+verifyNotEnumerable(arg, "0");
+
+verifyNotConfigurable(arg, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-292.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-292.js
index 3f9f98792..d859dba43 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-292.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-292.js
@@ -12,41 +12,40 @@ description: >
[[ParameterMap]] of 'O', and 'desc' is accessor descriptor, test
updating multiple attribute values of 'P' (10.6
[[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun() {
- arg = arguments;
- }(0, 1, 2));
+(function fun() {
+ arg = arguments;
+}(0, 1, 2));
- function get_func1() {
- return 10;
- }
+function get_func1() {
+ return 10;
+}
- Object.defineProperty(arg, "0", {
- get: get_func1,
- enumerable: true,
- configurable: true
- });
+Object.defineProperty(arg, "0", {
+ get: get_func1,
+ enumerable: true,
+ configurable: true
+});
- function get_func2() {
- return 20;
- }
+function get_func2() {
+ return 20;
+}
- Object.defineProperties(arg, {
- "0": {
- get: get_func2,
- enumerable: false,
- configurable: false
- }
- });
-
- return accessorPropertyAttributesAreCorrect(arg, "0", get_func2, undefined, undefined, false, false);
+Object.defineProperties(arg, {
+ "0": {
+ get: get_func2,
+ enumerable: false,
+ configurable: false
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arg, "0", get_func2());
+
+verifyNotEnumerable(arg, "0");
+
+verifyNotConfigurable(arg, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-293.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-293.js
index 5c2ceab3f..d567dbb50 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-293.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-293.js
@@ -12,28 +12,29 @@ description: >
[[ParameterMap]] of 'O', and 'desc' is data descriptor, test
updating multiple attribute values of 'P' (10.6
[[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun() {
- arg = arguments;
- }(0, 1, 2));
+(function fun() {
+ arg = arguments;
+}(0, 1, 2));
- Object.defineProperties(arg, {
- "0": {
- value: 20,
- writable: false,
- enumerable: false,
- configurable: false
- }
- });
-
- return dataPropertyAttributesAreCorrect(arg, "0", 20, false, false, false);
+Object.defineProperties(arg, {
+ "0": {
+ value: 20,
+ writable: false,
+ enumerable: false,
+ configurable: false
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arg, "0", 20);
+
+verifyNotWritable(arg, "0");
+
+verifyNotEnumerable(arg, "0");
+
+verifyNotConfigurable(arg, "0");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-294.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-294.js
index 39fd992a0..37e838d50 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-294.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-294.js
@@ -12,35 +12,41 @@ description: >
[[ParameterMap]] of 'O', test TypeError is thrown when updating
the [[Value]] attribute value of 'P' which is not writable and not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun() {
- arg = arguments;
- }());
+(function fun() {
+ arg = arguments;
+}());
- Object.defineProperty(arg, "0", {
- value: 0,
- writable: false,
- configurable: false
- });
+Object.defineProperty(arg, "0", {
+ value: 0,
+ writable: false,
+ configurable: false
+});
- try {
- Object.defineProperties(arg, {
- "0": {
- value: 10
- }
- });
-
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, false, false);
+try {
+ Object.defineProperties(arg, {
+ "0": {
+ value: 10
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "0", 0);
+
+ verifyNotWritable(arg, "0");
+
+ verifyNotEnumerable(arg, "0");
+
+ verifyNotConfigurable(arg, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-295.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-295.js
index 30e5f1762..96d8567ff 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-295.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-295.js
@@ -12,36 +12,42 @@ description: >
[[ParameterMap]] of 'O', test TypeError is thrown when updating
the [[Writable]] attribute value of 'P' which is not configurable
(10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun() {
- arg = arguments;
- }());
+(function fun() {
+ arg = arguments;
+}());
- Object.defineProperty(arg, "0", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: false
- });
+Object.defineProperty(arg, "0", {
+ value: 0,
+ writable: false,
+ enumerable: false,
+ configurable: false
+});
- try {
- Object.defineProperties(arg, {
- "0": {
- writable: true
- }
- });
-
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, false, false);
+try {
+ Object.defineProperties(arg, {
+ "0": {
+ writable: true
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "0", 0);
+
+ verifyNotWritable(arg, "0");
+
+ verifyNotEnumerable(arg, "0");
+
+ verifyNotConfigurable(arg, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-296.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-296.js
index 8c8d62846..1f85055de 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-296.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-296.js
@@ -12,36 +12,42 @@ description: >
[[ParameterMap]] of 'O', test TypeError is thrown when updating
the [[Enumerable]] attribute value of 'P' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun() {
- arg = arguments;
- }());
+(function fun() {
+ arg = arguments;
+}());
- Object.defineProperty(arg, "0", {
- value: 0,
- writable: false,
- enumerable: true,
- configurable: false
- });
+Object.defineProperty(arg, "0", {
+ value: 0,
+ writable: false,
+ enumerable: true,
+ configurable: false
+});
- try {
- Object.defineProperties(arg, {
- "0": {
- enumerable: false
- }
- });
-
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, true, false);
+try {
+ Object.defineProperties(arg, {
+ "0": {
+ enumerable: false
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "0", 0);
+
+ verifyNotWritable(arg, "0");
+
+ verifyEnumerable(arg, "0");
+
+ verifyNotConfigurable(arg, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-297.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-297.js
index 1a0fa728a..837c19b35 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-297.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-297.js
@@ -12,36 +12,42 @@ description: >
[[ParameterMap]] of 'O', test TypeError is thrown when updating
the [[Configurable]] attribute value of 'P' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun() {
- arg = arguments;
- }());
+(function fun() {
+ arg = arguments;
+}());
- Object.defineProperty(arg, "0", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: false
- });
+Object.defineProperty(arg, "0", {
+ value: 0,
+ writable: false,
+ enumerable: false,
+ configurable: false
+});
- try {
- Object.defineProperties(arg, {
- "0": {
- configurable: true
- }
- });
-
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(arg, "0", 0, false, false, false);
+try {
+ Object.defineProperties(arg, {
+ "0": {
+ configurable: true
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "0", 0);
+
+ verifyNotWritable(arg, "0");
+
+ verifyNotEnumerable(arg, "0");
+
+ verifyNotConfigurable(arg, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-298.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-298.js
index 0c72e56b9..ca7724bcd 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-298.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-298.js
@@ -12,41 +12,45 @@ description: >
[[ParameterMap]] of 'O', test TypeError is thrown when updating
the [[Get]] attribute value of 'P' which is not configurable (10.6
[[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun() {
- arg = arguments;
- }());
+(function fun() {
+ arg = arguments;
+}());
- function get_func1() {
- return 0;
- }
+function get_func1() {
+ return 0;
+}
- Object.defineProperty(arg, "0", {
- get: get_func1,
- enumerable: false,
- configurable: false
- });
+Object.defineProperty(arg, "0", {
+ get: get_func1,
+ enumerable: false,
+ configurable: false
+});
- function get_func2() {
- return 10;
- }
- try {
- Object.defineProperties(arg, {
- "0": {
- get: get_func2
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func1, undefined, undefined, false, false);
+function get_func2() {
+ return 10;
+}
+try {
+ Object.defineProperties(arg, {
+ "0": {
+ get: get_func2
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "0", get_func1());
+
+ verifyNotEnumerable(arg, "0");
+
+ verifyNotConfigurable(arg, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-299.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-299.js
index f42e1cd30..25ac42ce3 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-299.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-299.js
@@ -12,42 +12,46 @@ description: >
[[ParameterMap]] of 'O', test TypeError is thrown when updating
the [[Set]] attribute value of 'P' which is not configurable (10.6
[[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun() {
- arg = arguments;
- }());
+(function fun() {
+ arg = arguments;
+}());
- function get_func() {
- return 0;
- }
+function get_func() {
+ return 0;
+}
- Object.defineProperty(arg, "0", {
- get: get_func,
- set: undefined,
- enumerable: false,
- configurable: false
- });
+Object.defineProperty(arg, "0", {
+ get: get_func,
+ set: undefined,
+ enumerable: false,
+ configurable: false
+});
- function set_func(value) {
- arg.setVerifyHelpProp = value;
- }
- try {
- Object.defineProperties(arg, {
- "0": {
- set: set_func
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func, undefined, undefined, false, false);
+function set_func(value) {
+ arg.setVerifyHelpProp = value;
+}
+try {
+ Object.defineProperties(arg, {
+ "0": {
+ set: set_func
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "0", get_func());
+
+ verifyNotEnumerable(arg, "0");
+
+ verifyNotConfigurable(arg, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-30.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-30.js
index 97b89b2ff..d5d6abd15 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-30.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-30.js
@@ -10,17 +10,23 @@ description: >
Object.defineProperties - 'P' doesn't exist in 'O', test
[[Configurable]] of 'P' is set as false value if absent in data
descriptor 'desc' (8.12.9 step 4.a.i)
-includes: [runTestCase.js]
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
-
-
- Object.defineProperties(obj, {
- prop: { value: 1001 }
- });
- delete obj.prop;
- return obj.hasOwnProperty("prop") && obj.prop === 1001;
- }
-runTestCase(testcase);
+var obj = {};
+
+
+Object.defineProperties(obj, {
+ prop: { value: 1001 }
+});
+
+verifyNotConfigurable(obj, "prop");
+
+if (!obj.hasOwnProperty("prop")) {
+ $ERROR('Expected obj.hasOwnProperty("prop") to be true, actually ' + obj.hasOwnProperty("prop"));
+}
+
+if (obj.prop !== 1001) {
+ $ERROR('Expected obj.prop === 1001, actually ' + obj.prop);
+}
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-300.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-300.js
index 34362547f..dba2012e8 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-300.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-300.js
@@ -12,38 +12,42 @@ description: >
[[ParameterMap]] of 'O', test TypeError is thrown when updating
the [[Enumerable]] attribute value of 'P' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun() {
- arg = arguments;
- }());
+(function fun() {
+ arg = arguments;
+}());
- function get_func() {
- return 0;
- }
+function get_func() {
+ return 0;
+}
+
+Object.defineProperty(arg, "0", {
+ get: get_func,
+ enumerable: true,
+ configurable: false
+});
- Object.defineProperty(arg, "0", {
- get: get_func,
- enumerable: true,
- configurable: false
- });
-
- try {
- Object.defineProperties(arg, {
- "0": {
- enumerable: false
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func, undefined, undefined, true, false);
+try {
+ Object.defineProperties(arg, {
+ "0": {
+ enumerable: false
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "0", get_func());
+
+ verifyEnumerable(arg, "0");
+
+ verifyNotConfigurable(arg, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-301.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-301.js
index a642570d1..50d139916 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-301.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-301.js
@@ -12,38 +12,42 @@ description: >
[[ParameterMap]] of 'O', test TypeError is thrown when updating
the [[Configurable]] attribute value of 'P' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg;
+var arg;
- (function fun() {
- arg = arguments;
- }());
+(function fun() {
+ arg = arguments;
+}());
- function get_func() {
- return 0;
- }
+function get_func() {
+ return 0;
+}
+
+Object.defineProperty(arg, "0", {
+ get: get_func,
+ enumerable: true,
+ configurable: false
+});
- Object.defineProperty(arg, "0", {
- get: get_func,
- enumerable: true,
- configurable: false
- });
-
- try {
- Object.defineProperties(arg, {
- "0": {
- configurable: true
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(arg, "0", get_func, undefined, undefined, true, false);
+try {
+ Object.defineProperties(arg, {
+ "0": {
+ configurable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "0", get_func());
+
+ verifyEnumerable(arg, "0");
+
+ verifyNotConfigurable(arg, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-302.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-302.js
index cd827ebbb..f0b704f84 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-302.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-302.js
@@ -11,25 +11,26 @@ description: >
generic property, and 'desc' is data descriptor, test 'P' is
defined in 'O' with all correct attribute values (10.6
[[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg = (function () {
- return arguments;
- }(1, 2, 3));
+var arg = (function () {
+ return arguments;
+}(1, 2, 3));
- Object.defineProperties(arg, {
- "genericProperty": {
- value: 1001,
- writable: true,
- enumerable: true,
- configurable: true
- }
- });
-
- return dataPropertyAttributesAreCorrect(arg, "genericProperty", 1001, true, true, true);
+Object.defineProperties(arg, {
+ "genericProperty": {
+ value: 1001,
+ writable: true,
+ enumerable: true,
+ configurable: true
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arg, "genericProperty", 1001);
+
+verifyWritable(arg, "genericProperty");
+
+verifyEnumerable(arg, "genericProperty");
+
+verifyConfigurable(arg, "genericProperty");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-303.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-303.js
index f5eff7cec..17f13ad6a 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-303.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-303.js
@@ -11,31 +11,32 @@ description: >
generic property, and 'desc' is accessor descriptor, test 'P' is
defined in 'O' with all correct attribute values (10.6
[[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg = (function () {
- return arguments;
- }(1, 2, 3));
+var arg = (function () {
+ return arguments;
+}(1, 2, 3));
- function getFun() {
- return "getFunctionString";
- }
- function setFun(value) {
- arg.testGetFunction = value;
- }
- Object.defineProperties(arg, {
- "genericProperty": {
- get: getFun,
- set: setFun,
- enumerable: true,
- configurable: true
- }
- });
-
- return accessorPropertyAttributesAreCorrect(arg, "genericProperty", getFun, setFun, "testGetFunction", true, true);
+function getFun() {
+ return "getFunctionString";
+}
+function setFun(value) {
+ arg.testGetFunction = value;
+}
+Object.defineProperties(arg, {
+ "genericProperty": {
+ get: getFun,
+ set: setFun,
+ enumerable: true,
+ configurable: true
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arg, "genericProperty", getFun());
+
+verifyWritable(arg, "genericProperty", "testGetFunction");
+
+verifyEnumerable(arg, "genericProperty");
+
+verifyConfigurable(arg, "genericProperty");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-304.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-304.js
index faa10b168..aa67694eb 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-304.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-304.js
@@ -11,42 +11,43 @@ description: >
generic own accessor property of 'O', and 'desc' is accessor
descriptor, test updating multiple attribute values of 'P' (10.6
[[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg = (function () {
- return arguments;
- }(1, 2, 3));
-
- Object.defineProperty(arg, "genericProperty", {
- get: function () {
- return 1001;
- },
- set: function (value) {
- arg.testGetFunction1 = value;
- },
- enumerable: true,
- configurable: true
- });
-
- function getFun() {
- return "getFunctionString";
- }
- function setFun(value) {
- arg.testGetFunction = value;
- }
- Object.defineProperties(arg, {
- "genericProperty": {
- get: getFun,
- set: setFun,
- enumerable: false,
- configurable: false
- }
- });
-
- return accessorPropertyAttributesAreCorrect(arg, "genericProperty", getFun, setFun, "testGetFunction", false, false);
+var arg = (function () {
+ return arguments;
+}(1, 2, 3));
+
+Object.defineProperty(arg, "genericProperty", {
+ get: function () {
+ return 1001;
+ },
+ set: function (value) {
+ arg.testGetFunction1 = value;
+ },
+ enumerable: true,
+ configurable: true
+});
+
+function getFun() {
+ return "getFunctionString";
+}
+function setFun(value) {
+ arg.testGetFunction = value;
+}
+Object.defineProperties(arg, {
+ "genericProperty": {
+ get: getFun,
+ set: setFun,
+ enumerable: false,
+ configurable: false
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arg, "genericProperty", getFun());
+
+verifyWritable(arg, "genericProperty", "testGetFunction");
+
+verifyNotEnumerable(arg, "genericProperty");
+
+verifyNotConfigurable(arg, "genericProperty");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-305.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-305.js
index 641833ad3..11471d6c4 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-305.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-305.js
@@ -11,31 +11,32 @@ description: >
generic own data property of 'O', and 'desc' is data descriptor,
test updating multiple attribute values of 'P' (10.6
[[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg = (function () {
- return arguments;
- }(1, 2, 3));
-
- Object.defineProperty(arg, "genericProperty", {
- value: 1001,
- writable: true,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperties(arg, {
- "genericProperty": {
- value: 1002,
- enumerable: false,
- configurable: false
- }
- });
-
- return dataPropertyAttributesAreCorrect(arg, "genericProperty", 1002, true, false, false);
+var arg = (function () {
+ return arguments;
+}(1, 2, 3));
+
+Object.defineProperty(arg, "genericProperty", {
+ value: 1001,
+ writable: true,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperties(arg, {
+ "genericProperty": {
+ value: 1002,
+ enumerable: false,
+ configurable: false
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(arg, "genericProperty", 1002);
+
+verifyWritable(arg, "genericProperty");
+
+verifyNotEnumerable(arg, "genericProperty");
+
+verifyNotConfigurable(arg, "genericProperty");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-306.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-306.js
index 44ce844fe..594c66124 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-306.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-306.js
@@ -11,33 +11,38 @@ description: >
generic own data property of 'O', test TypeError is thrown when
updating the [[Value]] attribute value of 'P' which is not
writable and not configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg = (function () {
- return arguments;
- }(1, 2, 3));
-
- Object.defineProperty(arg, "genericProperty", {
- value: 1001,
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperties(arg, {
- "genericProperty": {
- value: 1002
- }
- });
-
- return false;
- } catch (ex) {
- return ex instanceof TypeError &&
- dataPropertyAttributesAreCorrect(arg, "genericProperty", 1001, false, false, false);
+var arg = (function () {
+ return arguments;
+}(1, 2, 3));
+
+Object.defineProperty(arg, "genericProperty", {
+ value: 1001,
+ writable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(arg, {
+ "genericProperty": {
+ value: 1002
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "genericProperty", 1001);
+
+ verifyNotWritable(arg, "genericProperty");
+
+ verifyNotEnumerable(arg, "genericProperty");
+
+ verifyNotConfigurable(arg, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-307.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-307.js
index 106bb6c80..203e24696 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-307.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-307.js
@@ -11,32 +11,37 @@ description: >
generic own data property of 'O', test TypeError is thrown when
updating the [[Writable]] attribute value of 'P' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg = (function () {
- return arguments;
- }(1, 2, 3));
-
- Object.defineProperty(arg, "genericProperty", {
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperties(arg, {
- "genericProperty": {
- writable: true
- }
- });
-
- return false;
- } catch (ex) {
- return ex instanceof TypeError &&
- dataPropertyAttributesAreCorrect(arg, "genericProperty", undefined, false, false, false);
+var arg = (function () {
+ return arguments;
+}(1, 2, 3));
+
+Object.defineProperty(arg, "genericProperty", {
+ writable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(arg, {
+ "genericProperty": {
+ writable: true
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "genericProperty", undefined);
+
+ verifyNotWritable(arg, "genericProperty");
+
+ verifyNotEnumerable(arg, "genericProperty");
+
+ verifyNotConfigurable(arg, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-308.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-308.js
index f25243da3..1aaebe4c9 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-308.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-308.js
@@ -11,32 +11,37 @@ description: >
generic own data property of 'O', test TypeError is thrown when
updating the [[Enumerable]] attribute value of 'P' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg = (function () {
- return arguments;
- }(1, 2, 3));
-
- Object.defineProperty(arg, "genericProperty", {
- enumerable: true,
- configurable: false
- });
-
- try {
- Object.defineProperties(arg, {
- "genericProperty": {
- enumerable: false
- }
- });
-
- return false;
- } catch (ex) {
- return ex instanceof TypeError &&
- dataPropertyAttributesAreCorrect(arg, "genericProperty", undefined, false, true, false);
+var arg = (function () {
+ return arguments;
+}(1, 2, 3));
+
+Object.defineProperty(arg, "genericProperty", {
+ enumerable: true,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(arg, {
+ "genericProperty": {
+ enumerable: false
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "genericProperty", undefined);
+
+ verifyNotWritable(arg, "genericProperty");
+
+ verifyEnumerable(arg, "genericProperty");
+
+ verifyNotConfigurable(arg, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-309.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-309.js
index acf8ce431..fa06927c8 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-309.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-309.js
@@ -11,31 +11,36 @@ description: >
generic own data property of 'O', test TypeError is thrown when
updating the [[Configurable]] attribute value of 'P' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg = (function () {
- return arguments;
- }(1, 2, 3));
-
- Object.defineProperty(arg, "genericProperty", {
- configurable: false
- });
-
- try {
- Object.defineProperties(arg, {
- "genericProperty": {
- configurable: true
- }
- });
-
- return false;
- } catch (ex) {
- return ex instanceof TypeError &&
- dataPropertyAttributesAreCorrect(arg, "genericProperty", undefined, false, false, false);
+var arg = (function () {
+ return arguments;
+}(1, 2, 3));
+
+Object.defineProperty(arg, "genericProperty", {
+ configurable: false
+});
+
+try {
+ Object.defineProperties(arg, {
+ "genericProperty": {
+ configurable: true
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "genericProperty", undefined);
+
+ verifyNotWritable(arg, "genericProperty");
+
+ verifyNotEnumerable(arg, "genericProperty");
+
+ verifyNotConfigurable(arg, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-31.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-31.js
index 4ae995865..cb36538d0 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-31.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-31.js
@@ -9,23 +9,24 @@ es5id: 15.2.3.7-6-a-31
description: >
Object.defineProperties - 'desc' is data descriptor, test setting
all attribute values of 'P' (8.12.9 step 4.a.i)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
-
- Object.defineProperties(obj, {
- prop: {
- value: 1002,
- writable: false,
- enumerable: false,
- configurable: false
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "prop", 1002, false, false, false);
+var obj = {};
+Object.defineProperties(obj, {
+ prop: {
+ value: 1002,
+ writable: false,
+ enumerable: false,
+ configurable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "prop", 1002);
+
+verifyNotWritable(obj, "prop");
+
+verifyNotEnumerable(obj, "prop");
+
+verifyNotConfigurable(obj, "prop");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-310.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-310.js
index f2dc102f5..e8ebe3056 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-310.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-310.js
@@ -11,41 +11,46 @@ description: >
generic own accessor property of 'O', test TypeError is thrown
when updating the [[Get]] attribute value of 'P' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg = (function () {
- return arguments;
- } (1, 2, 3));
+var arg = (function () {
+ return arguments;
+} (1, 2, 3));
- function getFun() {
- return "genericPropertyString";
- }
- function setFun(value) {
- arg.verifySetFun = value;
- }
- Object.defineProperty(arg, "genericProperty", {
- get: getFun,
- set: setFun,
- configurable: false
- });
-
- try {
- Object.defineProperties(arg, {
- "genericProperty": {
- get: function () {
- return "overideGenericPropertyString";
- }
- }
- });
-
- return false;
- } catch (ex) {
- return ex instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(arg, "genericProperty", getFun, setFun, "verifySetFun", false, false, false);
+function getFun() {
+ return "genericPropertyString";
+}
+function setFun(value) {
+ arg.verifySetFun = value;
+}
+Object.defineProperty(arg, "genericProperty", {
+ get: getFun,
+ set: setFun,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(arg, {
+ "genericProperty": {
+ get: function () {
+ return "overideGenericPropertyString";
+ }
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arg, "genericProperty", getFun());
+
+ verifyWritable(arg, "genericProperty", "verifySetFun");
+
+ verifyNotEnumerable(arg, "genericProperty");
+
+ verifyNotConfigurable(arg, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-311.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-311.js
index ddbd7e60c..abd4268b5 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-311.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-311.js
@@ -11,37 +11,40 @@ description: >
generic own accessor property of 'O', test TypeError is thrown
when updating the [[Set]] attribute value of 'P' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg = (function () {
- return arguments;
- }(1, 2, 3));
+var arg = (function () {
+ return arguments;
+}(1, 2, 3));
- function setFun(value) {
- arg.genericPropertyString = value;
- }
- Object.defineProperty(arg, "genericProperty", {
- set: setFun,
- configurable: false
- });
-
- try {
- Object.defineProperties(arg, {
- "genericProperty": {
- set: function (value) {
- arg.genericPropertyString1 = value;
- }
- }
- });
-
- return false;
- } catch (ex) {
- return ex instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(arg, "genericProperty", undefined, setFun, "genericPropertyString", false, false, false);
+function setFun(value) {
+ arg.genericPropertyString = value;
+}
+Object.defineProperty(arg, "genericProperty", {
+ set: setFun,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(arg, {
+ "genericProperty": {
+ set: function (value) {
+ arg.genericPropertyString1 = value;
+ }
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyWritable(arg, "genericProperty", "genericPropertyString");
+
+ verifyNotEnumerable(arg, "genericProperty");
+
+ verifyNotConfigurable(arg, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-312.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-312.js
index 3717eb0c3..e41c8b71e 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-312.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-312.js
@@ -11,36 +11,39 @@ description: >
generic own accessor property of 'O', test TypeError is thrown
when updating the [[Enumerable]] attribute value of 'P' which is
not configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg = (function () {
- return arguments;
- }(1, 2, 3));
+var arg = (function () {
+ return arguments;
+}(1, 2, 3));
- function setFun(value) {
- arg.genericPropertyString = value;
- }
- Object.defineProperty(arg, "genericProperty", {
- set: setFun,
- enumerable: true,
- configurable: false
- });
-
- try {
- Object.defineProperties(arg, {
- "genericProperty": {
- enumerable: false
- }
- });
-
- return false;
- } catch (ex) {
- return ex instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(arg, "genericProperty", undefined, setFun, "genericPropertyString", true, false);
+function setFun(value) {
+ arg.genericPropertyString = value;
+}
+Object.defineProperty(arg, "genericProperty", {
+ set: setFun,
+ enumerable: true,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(arg, {
+ "genericProperty": {
+ enumerable: false
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyWritable(arg, "genericProperty", "genericPropertyString");
+
+ verifyEnumerable(arg, "genericProperty");
+
+ verifyNotConfigurable(arg, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-313.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-313.js
index 28f1e1440..bffe3b3b0 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-313.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-313.js
@@ -11,35 +11,38 @@ description: >
generic own accessor property of 'O', test TypeError is thrown
when updating the [[Configurable]] attribute value of 'P' which is
not configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arg = (function () {
- return arguments;
- }(1, 2, 3));
+var arg = (function () {
+ return arguments;
+}(1, 2, 3));
- function setFun(value) {
- arg.genericPropertyString = value;
- }
- Object.defineProperty(arg, "genericProperty", {
- set: setFun,
- configurable: false
- });
-
- try {
- Object.defineProperties(arg, {
- "genericProperty": {
- configurable: true
- }
- });
-
- return false;
- } catch (ex) {
- return ex instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(arg, "genericProperty", undefined, setFun, "genericPropertyString", false, false, false);
+function setFun(value) {
+ arg.genericPropertyString = value;
+}
+Object.defineProperty(arg, "genericProperty", {
+ set: setFun,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(arg, {
+ "genericProperty": {
+ configurable: true
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyWritable(arg, "genericProperty", "genericPropertyString");
+
+ verifyNotEnumerable(arg, "genericProperty");
+
+ verifyNotConfigurable(arg, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-33.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-33.js
index 0c254b1ca..a5f213f35 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-33.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-33.js
@@ -10,25 +10,24 @@ description: >
Object.defineProperties - 'P' doesn't exist in 'O', test [[Get]]
of 'P' is set as undefined value if absent in accessor descriptor
'desc' (8.12.9 step 4.b)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
- var setFun = function (value) {
- obj.setVerifyHelpProp = value;
- };
-
- Object.defineProperties(obj, {
- prop: {
- set: setFun,
- enumerable: true,
- configurable: true
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "prop", undefined, setFun, "setVerifyHelpProp", true, true);
+var obj = {};
+var setFun = function (value) {
+ obj.setVerifyHelpProp = value;
+};
+Object.defineProperties(obj, {
+ prop: {
+ set: setFun,
+ enumerable: true,
+ configurable: true
}
-runTestCase(testcase);
+});
+verifyWritable(obj, "prop", "setVerifyHelpProp");
+
+verifyEnumerable(obj, "prop");
+
+verifyConfigurable(obj, "prop");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-35.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-35.js
index bbacd3f26..d0da7577d 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-35.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-35.js
@@ -10,28 +10,29 @@ description: >
Object.defineProperties - 'P' doesn't exist in 'O', test
[[Enumerable]] of 'P' is set as false value if absent in accessor
descriptor 'desc' (8.12.9 step 4.b.i)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
- var getFun = function () {
- return 10;
- };
- var setFun = function (value) {
- obj.setVerifyHelpProp = value;
- };
-
- Object.defineProperties(obj, {
- prop: {
- set: setFun,
- get: getFun,
- configurable: true
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "prop", getFun, setFun, "setVerifyHelpProp", false, true);
+var obj = {};
+var getFun = function () {
+ return 10;
+};
+var setFun = function (value) {
+ obj.setVerifyHelpProp = value;
+};
+Object.defineProperties(obj, {
+ prop: {
+ set: setFun,
+ get: getFun,
+ configurable: true
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "prop", getFun());
+
+verifyWritable(obj, "prop", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "prop");
+
+verifyConfigurable(obj, "prop");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-36.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-36.js
index f8c1d276b..6eb3036bc 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-36.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-36.js
@@ -11,27 +11,29 @@ description: >
[[Configurable]] of 'P' is set as false value if absent in
accessor descriptor 'desc' (8.12.9 step 4.b.i)
includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+ - propertyHelper.js
---*/
-function testcase() {
- var obj = {};
- var getFun = function () {
- return 10;
- };
- var setFun = function (value) {
- obj.setVerifyHelpProp = value;
- };
-
- Object.defineProperties(obj, {
- prop: {
- set: setFun,
- get: getFun,
- enumerable: true
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "prop", getFun, setFun, "setVerifyHelpProp", true, false);
+var obj = {};
+var getFun = function () {
+ return 10;
+};
+var setFun = function (value) {
+ obj.setVerifyHelpProp = value;
+};
+Object.defineProperties(obj, {
+ prop: {
+ set: setFun,
+ get: getFun,
+ enumerable: true
}
-runTestCase(testcase);
+});
+
+verifyEqualTo(obj, "prop", 10);
+
+verifyWritable(obj, "prop", "setVerifyHelpProp");
+
+verifyEnumerable(obj, "prop");
+
+verifyNotConfigurable(obj, "prop");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-37.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-37.js
index fd0bca98c..2dce15e02 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-37.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-37.js
@@ -9,29 +9,30 @@ es5id: 15.2.3.7-6-a-37
description: >
Object.defineProperties - 'desc' is accessor descriptor, test
setting all attribute values of 'P' (8.12.9 step 4.b.i)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
- var getFun = function () {
- return 10;
- };
- var setFun = function (value) {
- obj.setVerifyHelpProp = value;
- };
-
- Object.defineProperties(obj, {
- prop: {
- get: getFun,
- set: setFun,
- enumerable: false,
- configurable: false
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "prop", getFun, setFun, "setVerifyHelpProp", false, false);
+var obj = {};
+var getFun = function () {
+ return 10;
+};
+var setFun = function (value) {
+ obj.setVerifyHelpProp = value;
+};
+Object.defineProperties(obj, {
+ prop: {
+ get: getFun,
+ set: setFun,
+ enumerable: false,
+ configurable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "prop", getFun());
+
+verifyWritable(obj, "prop", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "prop");
+
+verifyNotConfigurable(obj, "prop");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-38-1.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-38-1.js
index 368a1f12d..079f8b0e2 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-38-1.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-38-1.js
@@ -10,27 +10,26 @@ description: >
Object.defineProperties - 'P' exists in 'O' is an accessor
property, test 'P' makes no change if 'desc' is generic descriptor
without any attribute (8.12.9 step 5)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
- var getFunc = function () {
- return 12;
- };
- Object.defineProperties(obj, {
- foo: {
- get: getFunc,
- enumerable: true,
- configurable: true
- }
- });
+var obj = {};
+var getFunc = function () {
+ return 12;
+};
+Object.defineProperties(obj, {
+ foo: {
+ get: getFunc,
+ enumerable: true,
+ configurable: true
+ }
+});
- Object.defineProperties(obj, { foo: {} });
+Object.defineProperties(obj, { foo: {} });
- return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, undefined, undefined, true, true);
- }
-runTestCase(testcase);
+verifyEqualTo(obj, "foo", getFunc());
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-38.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-38.js
index 20dd52651..de529e07f 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-38.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-38.js
@@ -10,17 +10,18 @@ description: >
Object.defineProperties - 'P' exists in 'O', test 'P' makes no
change if 'desc' is generic descriptor without any attribute
(8.12.9 step 5)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
- obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true
+var obj = {};
+obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true
- Object.defineProperties(obj, { foo: {} });
- return dataPropertyAttributesAreCorrect(obj, "foo", 100, true, true, true);
- }
-runTestCase(testcase);
+Object.defineProperties(obj, { foo: {} });
+verifyEqualTo(obj, "foo", 100);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-39.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-39.js
index 4849a6cf9..9c125d969 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-39.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-39.js
@@ -9,26 +9,27 @@ es5id: 15.2.3.7-6-a-39
description: >
Object.defineProperties - 'P' is data descriptor and every fields
in 'desc' is the same with 'P' (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true
-
- Object.defineProperties(obj, {
- foo: {
- value: 101,
- enumerable: true,
- writable: true,
- configurable: true
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 101, true, true, true);
+obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true
+Object.defineProperties(obj, {
+ foo: {
+ value: 101,
+ enumerable: true,
+ writable: true,
+ configurable: true
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", 101);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-40.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-40.js
index c823e8a65..22ff55e47 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-40.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-40.js
@@ -9,39 +9,40 @@ es5id: 15.2.3.7-6-a-40
description: >
Object.defineProperties - 'P' is accessor descriptor and every
fields in 'desc' is the same with 'P' (8.12.9 step 6)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- function get_func() {
- return 0;
- }
- function set_func(value) {
- obj.setVerifyHelpProp = value;
- }
- var desc = {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- };
-
- Object.defineProperty(obj, "foo", desc);
-
- Object.defineProperties(obj, {
- foo: {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", true, true);
+var obj = {};
+
+function get_func() {
+ return 0;
+}
+function set_func(value) {
+ obj.setVerifyHelpProp = value;
+}
+var desc = {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+};
+
+Object.defineProperty(obj, "foo", desc);
+
+Object.defineProperties(obj, {
+ foo: {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", get_func());
+
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-41.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-41.js
index 2e16082d4..a6d6802c4 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-41.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-41.js
@@ -9,23 +9,24 @@ es5id: 15.2.3.7-6-a-41
description: >
Object.defineProperties - type of desc.value is different from
type of P.value (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true
-
- Object.defineProperties(obj, {
- foo: {
- value: "102"
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", "102", true, true, true);
+obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true
+Object.defineProperties(obj, {
+ foo: {
+ value: "102"
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", "102");
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-42.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-42.js
index 4d1958eae..4a991a07e 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-42.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-42.js
@@ -9,24 +9,25 @@ es5id: 15.2.3.7-6-a-42
description: >
Object.defineProperties - both desc.value and P.value are
undefined (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var desc = { value: undefined };
- Object.defineProperty(obj, "foo", desc);
-
- Object.defineProperties(obj, {
- foo: {
- value: undefined
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false);
+var desc = { value: undefined };
+Object.defineProperty(obj, "foo", desc);
+Object.defineProperties(obj, {
+ foo: {
+ value: undefined
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", undefined);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-43.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-43.js
index 640630cce..39e342997 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-43.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-43.js
@@ -9,24 +9,25 @@ es5id: 15.2.3.7-6-a-43
description: >
Object.defineProperties - both desc.value and P.value are null
(8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var desc = { value: null };
- Object.defineProperty(obj, "foo", desc);
-
- Object.defineProperties(obj, {
- foo: {
- value: null
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", null, false, false, false);
+var desc = { value: null };
+Object.defineProperty(obj, "foo", desc);
+Object.defineProperties(obj, {
+ foo: {
+ value: null
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", null);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-45.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-45.js
index a993f783e..2a4cd99aa 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-45.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-45.js
@@ -9,27 +9,33 @@ es5id: 15.2.3.7-6-a-45
description: >
Object.defineProperties - desc.value is +0 and P.value is -0
(8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var desc = { value: -0 };
- Object.defineProperty(obj, "foo", desc);
+var desc = { value: -0 };
+Object.defineProperty(obj, "foo", desc);
- try {
- Object.defineProperties(obj, {
- foo: {
- value: +0
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", -0, false, false, false);
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ value: +0
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", -0);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-46.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-46.js
index 701be15e4..69bffbd5b 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-46.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-46.js
@@ -9,27 +9,33 @@ es5id: 15.2.3.7-6-a-46
description: >
Object.defineProperties - desc.value is -0 and P.value is +0
(8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var desc = { value: +0 };
- Object.defineProperty(obj, "foo", desc);
+var desc = { value: +0 };
+Object.defineProperty(obj, "foo", desc);
- try {
- Object.defineProperties(obj, {
- foo: {
- value: -0
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", +0, false, false, false);
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ value: -0
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", +0);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-47.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-47.js
index a67240e60..45db0783e 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-47.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-47.js
@@ -9,23 +9,24 @@ es5id: 15.2.3.7-6-a-47
description: >
Object.defineProperties - desc.value and P.value are two numbers
with the same value (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var desc = { value: 101 };
- Object.defineProperty(obj, "foo", desc);
+var desc = { value: 101 };
+Object.defineProperty(obj, "foo", desc);
- Object.defineProperties(obj, {
- foo: {
- value: 101
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 101, false, false, false);
+Object.defineProperties(obj, {
+ foo: {
+ value: 101
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", 101);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-48.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-48.js
index 5c00c5a11..ca627be9b 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-48.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-48.js
@@ -9,22 +9,23 @@ es5id: 15.2.3.7-6-a-48
description: >
Object.defineProperties - desc.value and P.value are two numbers
with different values (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true
+obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true
- Object.defineProperties(obj, {
- foo: {
- value: 102
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 102, true, true, true);
+Object.defineProperties(obj, {
+ foo: {
+ value: 102
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", 102);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-49.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-49.js
index e40d0f9ce..4a9749f78 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-49.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-49.js
@@ -10,23 +10,24 @@ description: >
Object.defineProperties - both desc.value and P.value are two
strings which have same length and same characters in
corresponding positions (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var desc = { value: "abcd" };
- Object.defineProperty(obj, "foo", desc);
+var desc = { value: "abcd" };
+Object.defineProperty(obj, "foo", desc);
- Object.defineProperties(obj, {
- foo: {
- value: "abcd"
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false);
+Object.defineProperties(obj, {
+ foo: {
+ value: "abcd"
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", "abcd");
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-5.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-5.js
index 74783d010..5d4ae1bfa 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-5.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-5.js
@@ -9,32 +9,36 @@ es5id: 15.2.3.7-6-a-5
description: >
Object.defineProperties - 'P' is own accessor property (8.12.9
step 1 )
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
- function getFunc() {
- return 11;
- }
+var obj = {};
+function getFunc() {
+ return 11;
+}
+
+Object.defineProperty(obj, "prop", {
+ get: getFunc,
+ configurable: false
+});
- Object.defineProperty(obj, "prop", {
- get: getFunc,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- prop: {
- value: 12,
- configurable: true
- }
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(obj, "prop", getFunc, undefined, undefined, false, false);
+try {
+ Object.defineProperties(obj, {
+ prop: {
+ value: 12,
+ configurable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "prop", getFunc());
+
+ verifyNotEnumerable(obj, "prop");
+
+ verifyNotConfigurable(obj, "prop");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-50.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-50.js
index 72ca8054d..466306f07 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-50.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-50.js
@@ -9,22 +9,23 @@ es5id: 15.2.3.7-6-a-50
description: >
Object.defineProperties - desc.value and P.value are two strings
with different values (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- obj.foo = "abcd"; // default value of attributes: writable: true, configurable: true, enumerable: true
+obj.foo = "abcd"; // default value of attributes: writable: true, configurable: true, enumerable: true
- Object.defineProperties(obj, {
- foo: {
- value: "fghj"
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", "fghj", true, true, true);
+Object.defineProperties(obj, {
+ foo: {
+ value: "fghj"
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", "fghj");
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-51.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-51.js
index 173acbb8b..7d333d683 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-51.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-51.js
@@ -9,23 +9,24 @@ es5id: 15.2.3.7-6-a-51
description: >
Object.defineProperties - both desc.value and P.value are boolean
values with the same value (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var desc = { value: true };
- Object.defineProperty(obj, "foo", desc);
+var desc = { value: true };
+Object.defineProperty(obj, "foo", desc);
- Object.defineProperties(obj, {
- foo: {
- value: true
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", true, false, false, false);
+Object.defineProperties(obj, {
+ foo: {
+ value: true
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", true);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-52.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-52.js
index 968030f31..a8dd3b256 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-52.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-52.js
@@ -9,22 +9,23 @@ es5id: 15.2.3.7-6-a-52
description: >
Object.defineProperties - desc.value and P.value are two boolean
values with different values (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- obj.foo = true; // default value of attributes: writable: true, configurable: true, enumerable: true
+obj.foo = true; // default value of attributes: writable: true, configurable: true, enumerable: true
- Object.defineProperties(obj, {
- foo: {
- value: false
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", false, true, true, true);
+Object.defineProperties(obj, {
+ foo: {
+ value: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", false);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-53.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-53.js
index 2396efc19..5413e9e68 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-53.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-53.js
@@ -9,24 +9,25 @@ es5id: 15.2.3.7-6-a-53
description: >
Object.defineProperties - both desc.value and P.value are Ojbects
which refer to the same Object (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var obj1 = { length: 10 };
- var desc = { value: obj1 };
- Object.defineProperty(obj, "foo", desc);
+var obj1 = { length: 10 };
+var desc = { value: obj1 };
+Object.defineProperty(obj, "foo", desc);
- Object.defineProperties(obj, {
- foo: {
- value: obj1
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false);
+Object.defineProperties(obj, {
+ foo: {
+ value: obj1
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", obj1);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-54.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-54.js
index d5aa5a11d..5de9ff2db 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-54.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-54.js
@@ -9,25 +9,26 @@ es5id: 15.2.3.7-6-a-54
description: >
Object.defineProperties - desc.value and P.value are two Ojbects
which refer to the different objects (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var obj1 = { length: 10 };
- obj.foo = obj1; // default value of attributes: writable: true, configurable: true, enumerable: true
+var obj1 = { length: 10 };
+obj.foo = obj1; // default value of attributes: writable: true, configurable: true, enumerable: true
- var obj2 = { length: 20 };
+var obj2 = { length: 20 };
- Object.defineProperties(obj, {
- foo: {
- value: obj2
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", obj2, true, true, true);
+Object.defineProperties(obj, {
+ foo: {
+ value: obj2
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", obj2);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-55.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-55.js
index 253e7c7b1..d830f0cb3 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-55.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-55.js
@@ -9,23 +9,24 @@ es5id: 15.2.3.7-6-a-55
description: >
Object.defineProperties - both desc.writable and P.writable are
boolean values with the same value (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var desc = { writable: false };
- Object.defineProperty(obj, "foo", desc);
+var desc = { writable: false };
+Object.defineProperty(obj, "foo", desc);
- Object.defineProperties(obj, {
- foo: {
- writable: false
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false);
+Object.defineProperties(obj, {
+ foo: {
+ writable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", undefined);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-56.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-56.js
index bc9b5be00..b564febb8 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-56.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-56.js
@@ -9,24 +9,25 @@ es5id: 15.2.3.7-6-a-56
description: >
Object.defineProperties - desc.writable and P.writable are two
boolean values with different values (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var desc = { writable: false, configurable: true };
- Object.defineProperty(obj, "foo", desc);
+var desc = { writable: false, configurable: true };
+Object.defineProperty(obj, "foo", desc);
- Object.defineProperties(obj, {
- foo: {
- writable: true,
- configurable: true
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", undefined, true, false, true);
+Object.defineProperties(obj, {
+ foo: {
+ writable: true,
+ configurable: true
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", undefined);
+
+verifyWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-59.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-59.js
index 3e68bf787..e779a6e35 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-59.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-59.js
@@ -9,28 +9,27 @@ es5id: 15.2.3.7-6-a-59
description: >
Object.defineProperties - both desc.[[Set]] and P.[[Set]] are two
objects which refer to the same object (8.12.9 step 6)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function set_func(value) {
- obj.setVerifyHelpProp = value;
- }
+function set_func(value) {
+ obj.setVerifyHelpProp = value;
+}
- Object.defineProperty(obj, "foo", {
- set: set_func
- });
+Object.defineProperty(obj, "foo", {
+ set: set_func
+});
- Object.defineProperties(obj, {
- foo: {
- set: set_func
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", false, false);
+Object.defineProperties(obj, {
+ foo: {
+ set: set_func
}
-runTestCase(testcase);
+});
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-60.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-60.js
index b190d2349..b44e96b0f 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-60.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-60.js
@@ -9,31 +9,30 @@ es5id: 15.2.3.7-6-a-60
description: >
Object.defineProperties - desc.[[Set]] and P.[[Set]] are two
objects which refer to the different objects (8.12.9 step 6)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function set_func1() {}
+function set_func1() {}
- Object.defineProperty(obj, "foo", {
- set: set_func1,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ set: set_func1,
+ configurable: true
+});
- function set_func2(value) {
- obj.setVerifyHelpProp = value;
- }
+function set_func2(value) {
+ obj.setVerifyHelpProp = value;
+}
- Object.defineProperties(obj, {
- foo: {
- set: set_func2
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func2, "setVerifyHelpProp", false, true);
+Object.defineProperties(obj, {
+ foo: {
+ set: set_func2
}
-runTestCase(testcase);
+});
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-61.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-61.js
index 7628964a8..e92ab227d 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-61.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-61.js
@@ -9,25 +9,26 @@ es5id: 15.2.3.7-6-a-61
description: >
Object.defineProperties - both desc.enumerable and P.enumerable
are boolean values with the same value (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 10,
- enumerable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: 10,
+ enumerable: false
+});
- Object.defineProperties(obj, {
- foo: {
- enumerable: false
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false);
+Object.defineProperties(obj, {
+ foo: {
+ enumerable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", 10);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-62.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-62.js
index 7caea92ed..482eefbb1 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-62.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-62.js
@@ -9,26 +9,27 @@ es5id: 15.2.3.7-6-a-62
description: >
Object.defineProperties - desc.enumerable and P.enumerable are two
boolean values with different values (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 10,
- enumerable: false,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ value: 10,
+ enumerable: false,
+ configurable: true
+});
- Object.defineProperties(obj, {
- foo: {
- enumerable: true
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, true, true);
+Object.defineProperties(obj, {
+ foo: {
+ enumerable: true
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", 10);
+
+verifyNotWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-63.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-63.js
index 3da10b24b..28fc79612 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-63.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-63.js
@@ -10,25 +10,26 @@ description: >
Object.defineProperties - both desc.configurable and
P.configurable are boolean values with the same value (8.12.9 step
6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 10,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: 10,
+ configurable: false
+});
- Object.defineProperties(obj, {
- foo: {
- configurable: false
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false);
+Object.defineProperties(obj, {
+ foo: {
+ configurable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", 10);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-64.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-64.js
index 7ca8d0582..3fa8f7d62 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-64.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-64.js
@@ -9,25 +9,26 @@ es5id: 15.2.3.7-6-a-64
description: >
Object.defineProperties - desc.configurable and P.configurable are
two boolean values with different values (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 10,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ value: 10,
+ configurable: true
+});
- Object.defineProperties(obj, {
- foo: {
- configurable: false
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false);
+Object.defineProperties(obj, {
+ foo: {
+ configurable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", 10);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-65.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-65.js
index 1b85ed9e1..3359ed8b8 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-65.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-65.js
@@ -9,29 +9,35 @@ es5id: 15.2.3.7-6-a-65
description: >
Object.defineProperties throws TypeError when P.configurable is
false and desc.configurable is true (8.12.9 step 7.a)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 10,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: 10,
+ configurable: false
+});
- try {
- Object.defineProperties(obj, {
- foo: {
- configurable: true
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false);
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ configurable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", 10);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-66-1.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-66-1.js
index 7e28fd8d0..d892a13b0 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-66-1.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-66-1.js
@@ -10,30 +10,36 @@ description: >
Object.defineProperties throws TypeError when P.configurable is
false, P.enumerable and desc.enumerable has different values
(8.12.9 step 7.b)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "foo", {
- value: 10,
- enumerable: false,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- foo: {
- enumerable: true
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false);
+
+var obj = {};
+
+Object.defineProperty(obj, "foo", {
+ value: 10,
+ enumerable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ enumerable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", 10);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-66.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-66.js
index c2e204fdb..b47dda9b7 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-66.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-66.js
@@ -10,30 +10,36 @@ description: >
Object.defineProperties throws TypeError when P.configurable is
false, P.enumerable and desc.enumerable has different values
(8.12.9 step 7.b)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "foo", {
- value: 10,
- enumerable: true,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- foo: {
- enumerable: false
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, true, false);
+
+var obj = {};
+
+Object.defineProperty(obj, "foo", {
+ value: 10,
+ enumerable: true,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ enumerable: false
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", 10);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-68.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-68.js
index 21417771b..42e9bd116 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-68.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-68.js
@@ -10,33 +10,39 @@ description: >
Object.defineProperties throws TypeError when P is data property
and P.configurable is false, desc is accessor property (8.12.9
step 9.a)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 10,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: 10,
+ configurable: false
+});
- function get_func() {
- return 11;
- }
+function get_func() {
+ return 11;
+}
- try {
- Object.defineProperties(obj, {
- foo: {
- get: get_func
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false);
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ get: get_func
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", 10);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-70.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-70.js
index 332480ccd..d6f2a3b9a 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-70.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-70.js
@@ -10,29 +10,30 @@ description: >
Object.defineProperties - 'P' is accessor property and
P.configurable is true, 'desc' in 'Properties' is data property
(8.12.9 step 9.c.i)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function get_func() {
- return 10;
- }
+function get_func() {
+ return 10;
+}
- Object.defineProperty(obj, "foo", {
- get: get_func,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ get: get_func,
+ configurable: true
+});
- Object.defineProperties(obj, {
- foo: {
- value: 12
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 12, false, false, true);
+Object.defineProperties(obj, {
+ foo: {
+ value: 12
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", 12);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-71.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-71.js
index 720bfcfbc..219cd3bad 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-71.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-71.js
@@ -10,30 +10,36 @@ description: >
Object.defineProperties throws TypeError when 'P' is data property
and P.configurable is false, P.writable is false, desc is data
property and desc.writable is true (8.12.9 step 10.a.i)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "foo", {
- value: 10,
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- foo: {
- writable: true
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false);
+
+var obj = {};
+
+Object.defineProperty(obj, "foo", {
+ value: 10,
+ writable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ writable: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", 10);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-72.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-72.js
index 8932e5856..c0ce53c7b 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-72.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-72.js
@@ -11,30 +11,36 @@ description: >
and P.configurable is false, P.writable is false, desc is data
property and desc.value is not equal to P.value (8.12.9 step
10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "foo", {
- value: 10,
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- foo: {
- value: 20
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false);
+
+var obj = {};
+
+Object.defineProperty(obj, "foo", {
+ value: 10,
+ writable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ value: 20
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", 10);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-73.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-73.js
index 3e094e30b..e6c7139ec 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-73.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-73.js
@@ -10,26 +10,27 @@ description: >
Object.defineProperties will not throw TypeError if P.configurable
is false, P.writalbe is false, P.value is undefined and
properties.value is undefined (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: undefined,
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: undefined,
+ writable: false,
+ configurable: false
+});
- Object.defineProperties(obj, {
- foo: {
- value: undefined
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false);
+Object.defineProperties(obj, {
+ foo: {
+ value: undefined
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", undefined);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-74.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-74.js
index 2c304da32..cce4df0db 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-74.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-74.js
@@ -10,26 +10,27 @@ description: >
Object.defineProperties will not throw TypeError if P.configurable
is false, P.writalbe is false, P.value is null and
properties.value is null (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: null,
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: null,
+ writable: false,
+ configurable: false
+});
- Object.defineProperties(obj, {
- foo: {
- value: null
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", null, false, false, false);
+Object.defineProperties(obj, {
+ foo: {
+ value: null
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", null);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-76.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-76.js
index 554f369a2..c390c5e6a 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-76.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-76.js
@@ -10,30 +10,36 @@ description: >
Object.defineProperties throws TypeError when P.configurable is
false, P.writalbe is false, properties.value is +0 and P.value is
-0 (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "foo", {
- value: -0,
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- foo: {
- value: +0
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", -0, false, false, false);
+
+var obj = {};
+
+Object.defineProperty(obj, "foo", {
+ value: -0,
+ writable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ value: +0
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", -0);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-77.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-77.js
index 34fe3b6c5..34c416b75 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-77.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-77.js
@@ -10,30 +10,36 @@ description: >
Object.defineProperties throws TypeError when P.configurable is
false, P.writalbe is false, properties.value is +0 and P.value is
-0 (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "foo", {
- value: +0,
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- foo: {
- value: -0
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", +0, false, false, false);
+
+var obj = {};
+
+Object.defineProperty(obj, "foo", {
+ value: +0,
+ writable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ value: -0
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", +0);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-78.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-78.js
index cdf8636ca..ac83877ca 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-78.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-78.js
@@ -10,27 +10,28 @@ description: >
Object.defineProperties will not throw TypeError when
P.configurable is false, P.writalbe is false, properties.value and
P.value are two numbers with the same value (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 100,
- writable: false,
- configurable: false
- });
-
- Object.defineProperties(obj, {
- foo: {
- value: 100
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 100, false, false, false);
+Object.defineProperty(obj, "foo", {
+ value: 100,
+ writable: false,
+ configurable: false
+});
+Object.defineProperties(obj, {
+ foo: {
+ value: 100
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", 100);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-79.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-79.js
index b4b9b841a..9962e8a3b 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-79.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-79.js
@@ -10,30 +10,36 @@ description: >
Object.defineProperties throws TypeError when P.configurable is
false, P.writalbe is false, properties.value and P.value are two
numbers with different values (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "foo", {
- value: 10,
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- foo: {
- value: 20
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false);
+
+var obj = {};
+
+Object.defineProperty(obj, "foo", {
+ value: 10,
+ writable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ value: 20
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", 10);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-80.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-80.js
index b74bf81dd..a7c1116a4 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-80.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-80.js
@@ -10,26 +10,27 @@ description: >
Object.defineProperties will not throw TypeError when
P.configurable is false, P.writalbe is false, properties.value and
P.value are two strings with the same value (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: "abcd",
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: "abcd",
+ writable: false,
+ configurable: false
+});
- Object.defineProperties(obj, {
- foo: {
- value: "abcd"
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false);
+Object.defineProperties(obj, {
+ foo: {
+ value: "abcd"
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", "abcd");
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-81.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-81.js
index e0a225461..ef2aefcb2 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-81.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-81.js
@@ -10,30 +10,36 @@ description: >
Object.defineProperties throws TypeError when P.configurable is
false, P.writalbe is false, properties.value and P.value are two
strings with different values (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "foo", {
- value: "abcd",
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- foo: {
- value: "defg"
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false);
+
+var obj = {};
+
+Object.defineProperty(obj, "foo", {
+ value: "abcd",
+ writable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ value: "defg"
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", "abcd");
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-82.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-82.js
index 8e8406a35..c4780dcfe 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-82.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-82.js
@@ -11,26 +11,27 @@ description: >
P.configurable is false, P.writalbe is false, properties.value and
P.value are two booleans with the same value (8.12.9 step
10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: false,
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: false,
+ writable: false,
+ configurable: false
+});
- Object.defineProperties(obj, {
- foo: {
- value: false
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", false, false, false, false);
+Object.defineProperties(obj, {
+ foo: {
+ value: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", false);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-83.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-83.js
index 5a0cf3c05..ca5cc8017 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-83.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-83.js
@@ -10,30 +10,36 @@ description: >
Object.defineProperties throws TypeError when P.configurable is
false, P.writalbe is false, properties.value and P.value are two
booleans with different values (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "foo", {
- value: false,
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- foo: {
- value: true
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", false, false, false, false);
+
+var obj = {};
+
+Object.defineProperty(obj, "foo", {
+ value: false,
+ writable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ value: true
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", false);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-84-1.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-84-1.js
index c77f23793..a99797fbc 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-84-1.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-84-1.js
@@ -11,31 +11,32 @@ description: >
P.configurable is false, P.writalbe is false, properties.value and
P.value are two Objects refer to the same object which has been
updated before use it to update the object (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var obj1 = { length: 10 };
+var obj1 = { length: 10 };
- Object.defineProperty(obj, "foo", {
- value: obj1,
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: obj1,
+ writable: false,
+ configurable: false
+});
- var obj2 = obj1;
- obj2.y = "hello";
+var obj2 = obj1;
+obj2.y = "hello";
- Object.defineProperties(obj, {
- foo: {
- value: obj2
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false);
+Object.defineProperties(obj, {
+ foo: {
+ value: obj2
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", obj1);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-84.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-84.js
index d5f9f878f..eca6d9640 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-84.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-84.js
@@ -11,28 +11,29 @@ description: >
P.configurable is false, P.writalbe is false, properties.value and
P.value are two Objects refer to the same object (8.12.9 step
10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var obj1 = { length: 10 };
+var obj1 = { length: 10 };
- Object.defineProperty(obj, "foo", {
- value: obj1,
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: obj1,
+ writable: false,
+ configurable: false
+});
- Object.defineProperties(obj, {
- foo: {
- value: obj1
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false);
+Object.defineProperties(obj, {
+ foo: {
+ value: obj1
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", obj1);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-85.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-85.js
index 0e7b1f0e0..55e7b0a4c 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-85.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-85.js
@@ -10,34 +10,40 @@ description: >
Object.defineProperties throws TypeError when P.configurable is
false, P.writalbe is false, properties.value and P.value are two
objects with different values (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var obj1 = { length: 10 };
+var obj1 = { length: 10 };
- Object.defineProperty(obj, "foo", {
- value: obj1,
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: obj1,
+ writable: false,
+ configurable: false
+});
- var obj2 = { length: 20 };
+var obj2 = { length: 20 };
- try {
- Object.defineProperties(obj, {
- foo: {
- value: obj2
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false);
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ value: obj2
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", obj1);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-86-1.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-86-1.js
index 0463add58..6fcc136ce 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-86-1.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-86-1.js
@@ -11,36 +11,40 @@ description: >
P.configurable is false, both properties.[[Set]] and P.[[Set]] are
two objects which refer to the same object and the object has been
updated after defined(8.12.9 step 11.a.i)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var set_func = function (value) {
- obj.setVerifyHelpProp = value;
- }
+var set_func = function (value) {
+ obj.setVerifyHelpProp = value;
+};
- Object.defineProperty(obj, "foo", {
- set: set_func,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ set: set_func,
+ configurable: false
+});
- set_func = function (value) {
- obj.setVerifyHelpProp1 = value;
- }
+set_func = function (value) {
+ obj.setVerifyHelpProp1 = value;
+};
- try {
- Object.defineProperties(obj, {
- foo: {
- set: set_func
- }
- });
- } catch (e) {
- return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", false, false);
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ set: set_func
}
+ });
+} catch (e) {
+ verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-86.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-86.js
index 786272d8e..d4c37c42b 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-86.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-86.js
@@ -10,30 +10,29 @@ description: >
Object.defineProperties will not throw TypeError when
P.configurable is false, both properties.[[Set]] and P.[[Set]] are
two objects which refer to the same object (8.12.9 step 11.a.i)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function set_func(value) {
- obj.setVerifyHelpProp = value;
- }
+function set_func(value) {
+ obj.setVerifyHelpProp = value;
+}
- Object.defineProperty(obj, "foo", {
- set: set_func,
- configurable: false
- });
-
- Object.defineProperties(obj, {
- foo: {
- set: set_func
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", false, false);
+Object.defineProperty(obj, "foo", {
+ set: set_func,
+ configurable: false
+});
+Object.defineProperties(obj, {
+ foo: {
+ set: set_func
}
-runTestCase(testcase);
+});
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-87.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-87.js
index d06e7f744..e362b2231 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-87.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-87.js
@@ -10,36 +10,40 @@ description: >
Object.defineProperties throws TypeError when P.configurable is
false, both properties.[[Set]] and P.[[Set]] are two objects which
refer to different objects (8.12.9 step 11.a.i)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function set_func1(value) {
- obj.setVerifyHelpProp = value;
- }
+function set_func1(value) {
+ obj.setVerifyHelpProp = value;
+}
+
+Object.defineProperty(obj, "foo", {
+ set: set_func1,
+ configurable: false
+});
- Object.defineProperty(obj, "foo", {
- set: set_func1,
- configurable: false
- });
-
- function set_func2() {}
-
- try {
- Object.defineProperties(obj, {
- foo: {
- set: set_func2
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func1, "setVerifyHelpProp", false, false);
+function set_func2() {}
+
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ set: set_func2
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+ verifyNotEnumerable(obj, "foo");
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-88.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-88.js
index c2f741608..ae3969da1 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-88.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-88.js
@@ -9,49 +9,46 @@ es5id: 15.2.3.7-6-a-88
description: >
Object.defineProperties throws TypeError when P.configurable is
false, P.[[Set]] is undefined, properties.[[Set]] refers to an
- objcet (8.12.9 step 11.a.i)
-includes: [runTestCase.js]
+ object (8.12.9 step 11.a.i)
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function get_Func() {
- return 0;
- }
+function get_Func() {
+ return 0;
+}
+
+Object.defineProperty(obj, "foo", {
+ set: undefined,
+ get: get_Func,
+ enumerable: false,
+ configurable: false
+});
+
+function set_Func() {}
- Object.defineProperty(obj, "foo", {
- set: undefined,
- get: get_Func,
- enumerable: false,
- configurable: false
- });
-
- function set_Func() { }
-
- try {
- Object.defineProperties(obj, {
- foo: {
- set: set_Func
- }
- });
- return false;
- } catch (e) {
- var verifyEnumerable = false;
- for (var p in obj) {
- if (p === "foo") {
- verifyEnumerable = true;
- }
- }
-
- var desc = Object.getOwnPropertyDescriptor(obj, "foo");
-
- var verifyConfigurable = false;
- delete obj.foo;
- verifyConfigurable = obj.hasOwnProperty("foo");
-
- return e instanceof TypeError && !verifyEnumerable && verifyConfigurable && typeof (desc.set) === "undefined";
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ set: set_Func
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+ var desc = Object.getOwnPropertyDescriptor(obj, "foo");
+
+ if (typeof (desc.set) !== "undefined") {
+ $ERROR('Expected typeof (desc.set) === "undefined", actually ' + typeof (desc.set));
}
-runTestCase(testcase);
+
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-89.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-89.js
index 208bbd3b0..d2585dbe5 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-89.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-89.js
@@ -10,43 +10,35 @@ description: >
Object.defineProperties will not throw TypeError when
P.configurable is false, P.[[Set]] and properties.[[Set]] are
undefined (8.12.9 step 11.a.i)
-includes: [runTestCase.js]
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function get_Func() {
- return 0;
- }
+function get_Func() {
+ return 0;
+}
- Object.defineProperty(obj, "foo", {
- get: get_Func,
- set: undefined,
- enumerable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ get: get_Func,
+ set: undefined,
+ enumerable: false,
+ configurable: false
+});
- Object.defineProperties(obj, {
- foo: {
- set: undefined
- }
- });
+Object.defineProperties(obj, {
+ foo: {
+ set: undefined
+ }
+});
- var verifyEnumerable = false;
- for (var p in obj) {
- if (p === "foo") {
- verifyEnumerable = true;
- }
- }
+verifyNotEnumerable(obj, "foo");
- var desc = Object.getOwnPropertyDescriptor(obj, "foo");
+verifyNotConfigurable(obj, "foo");
- var verifyConfigurable = false;
- delete obj.foo;
- verifyConfigurable = obj.hasOwnProperty("foo");
+var desc = Object.getOwnPropertyDescriptor(obj, "foo");
- return verifyConfigurable && !verifyEnumerable && typeof (desc.set) === "undefined";
- }
-runTestCase(testcase);
+if (typeof (desc.set) !== "undefined") {
+ $ERROR('Expected typeof (desc.set) === "undefined", actually ' + typeof (desc.set));
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-90.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-90.js
index c453b3347..64b2a20c3 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-90.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-90.js
@@ -10,34 +10,35 @@ description: >
Object.defineProperties will not throw TypeError when
P.configurable is false, both properties.[[Get]] and P.[[Get]] are
two objects which refer to the same object (8.12.9 step 11.a.ii)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- function set_func(value) {
- obj.setVerifyHelpProp = value;
- }
- function get_func() {
- return 10;
- }
-
- Object.defineProperty(obj, "foo", {
- get: get_func,
- set: set_func,
- enumerable: false,
- configurable: false
- });
-
- Object.defineProperties(obj, {
- foo: {
- get: get_func
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "setVerifyHelpProp", false, false);
+
+var obj = {};
+
+function set_func(value) {
+ obj.setVerifyHelpProp = value;
+}
+function get_func() {
+ return 10;
+}
+
+Object.defineProperty(obj, "foo", {
+ get: get_func,
+ set: set_func,
+ enumerable: false,
+ configurable: false
+});
+
+Object.defineProperties(obj, {
+ foo: {
+ get: get_func
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", get_func());
+
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-91.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-91.js
index 0af65538e..19eb74130 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-91.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-91.js
@@ -10,43 +10,49 @@ description: >
Object.defineProperties throws TypeError when P.configurable is
false, both properties.[[Get]] and P.[[Get]] are two objects which
refer to different objects (8.12.9 step 11.a.ii)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function set_func(value) {
- obj.setVerifyHelpProp = value;
- }
- function get_func1() {
- return 10;
- }
+function set_func(value) {
+ obj.setVerifyHelpProp = value;
+}
+function get_func1() {
+ return 10;
+}
- Object.defineProperty(obj, "foo", {
- get: get_func1,
- set: set_func,
- enumerable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ get: get_func1,
+ set: set_func,
+ enumerable: false,
+ configurable: false
+});
- function get_func2() {
- return 20;
- }
+function get_func2() {
+ return 20;
+}
- try {
- Object.defineProperties(obj, {
- foo: {
- get: get_func2
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(obj, "foo", get_func1, set_func, "setVerifyHelpProp", false, false);
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ get: get_func2
}
+ });
+ $ERROR("Expected an exception");
+} catch (e) {
+ verifyEqualTo(obj, "foo", get_func1());
+
+ verifyWritable(obj, "foo", "setVerifyHelpProp");
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
+
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-92.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-92.js
index de8e0f3a4..ff7d6d993 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-92.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-92.js
@@ -10,39 +10,43 @@ description: >
Object.defineProperties throws TypeError when P.configurable is
false, P.[[Get]] is undefined, properties.[[Get]] refers to an
objcet (8.12.9 step 11.a.ii)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function set_func(value) {
- obj.setVerifyHelpProp = value;
- }
+function set_func(value) {
+ obj.setVerifyHelpProp = value;
+}
- Object.defineProperty(obj, "foo", {
- get: undefined,
- set: set_func,
- enumerable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ get: undefined,
+ set: set_func,
+ enumerable: false,
+ configurable: false
+});
- function get_func() {
- return 0;
- }
+function get_func() {
+ return 0;
+}
- try {
- Object.defineProperties(obj, {
- foo: {
- get: get_func
- }
- });
- return false;
- } catch (e) {
- return (e instanceof TypeError) && accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", false, false);
+try {
+ Object.defineProperties(obj, {
+ foo: {
+ get: get_func
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-1.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-1.js
index 0eb423ff4..a5c1b5d93 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-1.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-1.js
@@ -11,42 +11,53 @@ description: >
data property 'P' successfully when [[Configurable]] attribute is
true and [[Writable]] attribute is false but not when both are
false (8.12.9 - step Note & 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "property", {
- value: 1001,
- writable: false,
- configurable: true
- });
-
- Object.defineProperty(obj, "property1", {
- value: 1003,
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- property: {
- value: 1002
- },
- property1: {
- value: 1004
- }
- });
-
- return false;
- } catch (e) {
- return e instanceof TypeError &&
- dataPropertyAttributesAreCorrect(obj, "property", 1002, false, false, true) &&
- dataPropertyAttributesAreCorrect(obj, "property1", 1003, false, false, false);
+
+var obj = {};
+
+Object.defineProperty(obj, "property", {
+ value: 1001,
+ writable: false,
+ configurable: true
+});
+
+Object.defineProperty(obj, "property1", {
+ value: 1003,
+ writable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(obj, {
+ property: {
+ value: 1002
+ },
+ property1: {
+ value: 1004
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "property", 1002);
+
+ verifyNotWritable(obj, "property");
+
+ verifyNotEnumerable(obj, "property");
+
+ verifyConfigurable(obj, "property");
+ verifyEqualTo(obj, "property1", 1003);
+
+ verifyNotWritable(obj, "property1");
+
+ verifyNotEnumerable(obj, "property1");
+
+ verifyNotConfigurable(obj, "property1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-2.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-2.js
index 1c00fce1a..c0241c48e 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-2.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-2.js
@@ -11,42 +11,53 @@ description: >
data property 'P' successfully when [[Configurable]] attribute is
true and [[Writable]] attribute is false but not when both are
false (8.12.9 - step Note & 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "0", {
- value: 1001,
- writable: false,
- configurable: true
- });
-
- Object.defineProperty(obj, "1", {
- value: 1003,
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperties(obj, {
- 0: {
- value: 1002
- },
- 1: {
- value: 1004
- }
- });
-
- return false;
- } catch (e) {
- return e instanceof TypeError &&
- dataPropertyAttributesAreCorrect(obj, "0", 1002, false, false, true) &&
- dataPropertyAttributesAreCorrect(obj, "1", 1003, false, false, false);
+
+var obj = {};
+
+Object.defineProperty(obj, "0", {
+ value: 1001,
+ writable: false,
+ configurable: true
+});
+
+Object.defineProperty(obj, "1", {
+ value: 1003,
+ writable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperties(obj, {
+ 0: {
+ value: 1002
+ },
+ 1: {
+ value: 1004
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "0", 1002);
+
+ verifyNotWritable(obj, "0");
+
+ verifyNotEnumerable(obj, "0");
+
+ verifyConfigurable(obj, "0");
+ verifyEqualTo(obj, "1", 1003);
+
+ verifyNotWritable(obj, "1");
+
+ verifyNotEnumerable(obj, "1");
+
+ verifyNotConfigurable(obj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-3.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-3.js
index bb2d61cf1..64097926a 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-3.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-3.js
@@ -7,46 +7,57 @@
/*---
es5id: 15.2.3.7-6-a-93-3
description: >
- Object.defineProperties will not fail to update [[Value]]
- attribute of named data property 'P' when [[Configurable]]
- attribute of first updating property is false (8.12.9 - step Note
- & 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+ Object.defineProperties will not fail to update [[Value]] attribute of
+ named data property 'P' when [[Configurable]] attribute of first
+ updating property is false (8.12.9 - step Note & 10.a.ii.1)
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "property", {
- value: 1001,
- writable: false,
- configurable: false
- });
-
- Object.defineProperty(obj, "property1", {
- value: 1003,
- writable: false,
- configurable: true
- });
-
- try {
- Object.defineProperties(obj, {
- property: {
- value: 1002
- },
- property1: {
- value: 1004
- }
- });
-
- return false;
- } catch (e) {
- return e instanceof TypeError &&
- dataPropertyAttributesAreCorrect(obj, "property", 1001, false, false, false) &&
- dataPropertyAttributesAreCorrect(obj, "property1", 1004, false, false, true);
+
+var obj = {};
+
+Object.defineProperty(obj, "property", {
+ value: 1001,
+ writable: false,
+ configurable: false
+});
+
+Object.defineProperty(obj, "property1", {
+ value: 1003,
+ writable: false,
+ configurable: true
+});
+
+try {
+ Object.defineProperties(obj, {
+ property: {
+ value: 1002
+ },
+ property1: {
+ value: 1004
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "property", 1001);
+
+ verifyNotWritable(obj, "property");
+
+ verifyNotEnumerable(obj, "property");
+
+ verifyNotConfigurable(obj, "property");
+
+ verifyEqualTo(obj, "property1", 1003);
+
+ verifyNotWritable(obj, "property1");
+
+ verifyNotEnumerable(obj, "property1");
+
+ verifyConfigurable(obj, "property1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-4.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-4.js
index 151a5f839..f758752eb 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-4.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93-4.js
@@ -7,46 +7,56 @@
/*---
es5id: 15.2.3.7-6-a-93-4
description: >
- Object.defineProperties will not fail to update [[Value]]
- attribute of indexed data property 'P' when [[Configurable]]
- attribute of first updating property are false (8.12.9 - step
- Note & 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+ Object.defineProperties will not fail to update [[Value]] attribute of
+ indexed data property 'P' when [[Configurable]] attribute of first
+ updating property are false (8.12.9 - step Note & 10.a.ii.1)
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "0", {
- value: 1001,
- writable: false,
- configurable: false
- });
-
- Object.defineProperty(obj, "1", {
- value: 1003,
- writable: false,
- configurable: true
- });
-
- try {
- Object.defineProperties(obj, {
- 0: {
- value: 1002
- },
- 1: {
- value: 1004
- }
- });
-
- return false;
- } catch (e) {
- return e instanceof TypeError &&
- dataPropertyAttributesAreCorrect(obj, "0", 1001, false, false, false) &&
- dataPropertyAttributesAreCorrect(obj, "1", 1004, false, false, true);
+
+var obj = {};
+
+Object.defineProperty(obj, "0", {
+ value: 1001,
+ writable: false,
+ configurable: false
+});
+
+Object.defineProperty(obj, "1", {
+ value: 1003,
+ writable: false,
+ configurable: true
+});
+
+try {
+ Object.defineProperties(obj, {
+ 0: {
+ value: 1002
+ },
+ 1: {
+ value: 1004
}
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "0", 1001);
+
+ verifyNotWritable(obj, "0");
+
+ verifyNotEnumerable(obj, "0");
+
+ verifyNotConfigurable(obj, "0");
+ verifyEqualTo(obj, "1", 1003);
+
+ verifyNotWritable(obj, "1");
+
+ verifyNotEnumerable(obj, "1");
+
+ verifyConfigurable(obj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93.js
index 9b472a691..0b6e28ff2 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-93.js
@@ -10,31 +10,30 @@ description: >
Object.defineProperties will not throw TypeError when
P.configurable is false, P.[[Get]] and properties.[[Get]] are
undefined (8.12.9 step 11.a.ii)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function set_func(value) {
- obj.setVerifyHelpProp = value;
- }
+function set_func(value) {
+ obj.setVerifyHelpProp = value;
+}
- Object.defineProperty(obj, "foo", {
- get: undefined,
- set: set_func,
- enumerable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ get: undefined,
+ set: set_func,
+ enumerable: false,
+ configurable: false
+});
- Object.defineProperties(obj, {
- foo: {
- get: undefined
- }
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, set_func, "setVerifyHelpProp", false, false);
+Object.defineProperties(obj, {
+ foo: {
+ get: undefined
}
-runTestCase(testcase);
+});
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-94.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-94.js
index 9f95b6b70..540f38bb3 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-94.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-94.js
@@ -9,22 +9,23 @@ es5id: 15.2.3.7-6-a-94
description: >
Object.defineProperties - 'P' is data property, properties.value
and P.value are two different values (8.12.9 step 12)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true
+obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true
- Object.defineProperties(obj, {
- foo: {
- value: 200
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, true);
+Object.defineProperties(obj, {
+ foo: {
+ value: 200
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", 200);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-95.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-95.js
index 3ecad959c..b2f1219dc 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-95.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-95.js
@@ -9,27 +9,28 @@ es5id: 15.2.3.7-6-a-95
description: >
Object.defineProperties - 'P' is data property, P.value is present
and properties.value is undefined (8.12.9 step 12)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 200,
- enumerable: true,
- writable: true,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ value: 200,
+ enumerable: true,
+ writable: true,
+ configurable: true
+});
- Object.defineProperties(obj, {
- foo: {
- value: undefined
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", undefined, true, true, true);
+Object.defineProperties(obj, {
+ foo: {
+ value: undefined
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", undefined);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-96.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-96.js
index 931496de9..9ec5a182e 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-96.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-96.js
@@ -9,27 +9,28 @@ es5id: 15.2.3.7-6-a-96
description: >
Object.defineProperties - 'P' is data property, properties.value
is present and P.value is undefined (8.12.9 step 12)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: undefined,
- enumerable: true,
- writable: true,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ value: undefined,
+ enumerable: true,
+ writable: true,
+ configurable: true
+});
- Object.defineProperties(obj, {
- foo: {
- value: 200
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, true);
+Object.defineProperties(obj, {
+ foo: {
+ value: 200
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", 200);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-97.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-97.js
index a666b975b..2ea879c24 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-97.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-97.js
@@ -9,27 +9,28 @@ es5id: 15.2.3.7-6-a-97
description: >
Object.defineProperties - 'P' is data property, P.writable and
properties.writable are different values (8.12.9 step 12)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 100,
- enumerable: true,
- writable: false,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ value: 100,
+ enumerable: true,
+ writable: false,
+ configurable: true
+});
- Object.defineProperties(obj, {
- foo: {
- writable: true
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 100, true, true, true);
+Object.defineProperties(obj, {
+ foo: {
+ writable: true
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", 100);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-98.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-98.js
index c9a1cf1a1..c8476cf65 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-98.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-98.js
@@ -9,27 +9,28 @@ es5id: 15.2.3.7-6-a-98
description: >
Object.defineProperties - 'P' is data property, P.enumerable and
properties.enumerable are different values (8.12.9 step 12)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 200,
- enumerable: false,
- writable: true,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ value: 200,
+ enumerable: false,
+ writable: true,
+ configurable: true
+});
- Object.defineProperties(obj, {
- foo: {
- enumerable: true
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, true);
+Object.defineProperties(obj, {
+ foo: {
+ enumerable: true
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", 200);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-99.js b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-99.js
index bafcc5943..43698b62f 100644
--- a/test/built-ins/Object/defineProperties/15.2.3.7-6-a-99.js
+++ b/test/built-ins/Object/defineProperties/15.2.3.7-6-a-99.js
@@ -9,27 +9,28 @@ es5id: 15.2.3.7-6-a-99
description: >
Object.defineProperties - 'P' is data property, P.configurable is
true and properties.configurable is false
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 200,
- enumerable: true,
- writable: true,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ value: 200,
+ enumerable: true,
+ writable: true,
+ configurable: true
+});
- Object.defineProperties(obj, {
- foo: {
- configurable: false
- }
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, false);
+Object.defineProperties(obj, {
+ foo: {
+ configurable: false
}
-runTestCase(testcase);
+});
+verifyEqualTo(obj, "foo", 200);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-100.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-100.js
index 316211f30..9e89261a0 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-100.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-100.js
@@ -9,20 +9,21 @@ es5id: 15.2.3.6-4-100
description: >
Object.defineProperty - 'name' and 'desc' are data properties,
desc.value and name.value are two different values (8.12.9 step 12)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
+var obj = {};
- var obj = {};
+obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true
- obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true
+Object.defineProperty(obj, "foo", {
+ value: 200
+});
+verifyEqualTo(obj, "foo", 200);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", {
- value: 200
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-101.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-101.js
index 6c477c904..47f463c45 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-101.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-101.js
@@ -9,18 +9,19 @@ es5id: 15.2.3.6-4-101
description: >
Object.defineProperty - 'name' and 'desc' are data properties,
name.value is present and desc.value is undefined (8.12.9 step 12)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
+var obj = {};
- var obj = {};
+obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true
- obj.foo = 100; // default value of attributes: writable: true, configurable: true, enumerable: true
+Object.defineProperty(obj, "foo", { value: undefined });
+verifyEqualTo(obj, "foo", undefined);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", { value: undefined });
- return dataPropertyAttributesAreCorrect(obj, "foo", undefined, true, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-102.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-102.js
index f9d96c6bc..e3e4e66a7 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-102.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-102.js
@@ -9,18 +9,19 @@ es5id: 15.2.3.6-4-102
description: >
Object.defineProperty - 'name' and 'desc' are data properties,
desc.value is present and name.value is undefined (8.12.9 step 12)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
+var obj = {};
- var obj = {};
+obj.foo = undefined; // default value of attributes: writable: true, configurable: true, enumerable: true
- obj.foo = undefined; // default value of attributes: writable: true, configurable: true, enumerable: true
+Object.defineProperty(obj, "foo", { value: 100 });
+verifyEqualTo(obj, "foo", 100);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", { value: 100 });
- return dataPropertyAttributesAreCorrect(obj, "foo", 100, true, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-103.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-103.js
index 89ab24562..0f166f326 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-103.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-103.js
@@ -10,22 +10,23 @@ description: >
Object.defineProperty - 'name' and 'desc' are data properties,
name.writable and desc.writable are different values (8.12.9 step
12)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
+var obj = {};
- var obj = {};
+Object.defineProperty(obj, "foo", {
+ writable: false, configurable: true
+});
- Object.defineProperty(obj, "foo", {
- writable: false, configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ writable: true
+});
+verifyEqualTo(obj, "foo", undefined);
+
+verifyWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", {
- writable: true
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", undefined, true, false, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-104.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-104.js
index 4c7c0fd4f..92d14c428 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-104.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-104.js
@@ -10,23 +10,24 @@ description: >
Object.defineProperty - 'name' and 'desc' are data properties,
name.enumerable and desc.enumerable are different values (8.12.9
step 12)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
+var obj = {};
- var obj = {};
+Object.defineProperty(obj, "foo", {
+ enumerable: false,
+ configurable: true
+});
- Object.defineProperty(obj, "foo", {
- enumerable: false,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ enumerable: true
+});
+verifyEqualTo(obj, "foo", undefined);
+
+verifyNotWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", {
- enumerable: true
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-105.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-105.js
index 5e6304857..0ab2b1afe 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-105.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-105.js
@@ -10,26 +10,27 @@ description: >
Object.defineProperty - 'name' and 'desc' are data properties,
name.configurable = true and desc.configurable = false (8.12.9
step 12)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
+var obj = {};
- var obj = {};
+Object.defineProperty(obj, "foo", {
+ value: 200,
+ enumerable: true,
+ writable: true,
+ configurable: true
+});
- Object.defineProperty(obj, "foo", {
- value: 200,
- enumerable: true,
- writable: true,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ configurable: false
+});
+
+verifyEqualTo(obj, "foo", 200);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", {
- configurable: false
- });
-
- return dataPropertyAttributesAreCorrect(obj, "foo", 200, true, true, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-106.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-106.js
index a5e4fa4a4..95cac3bf1 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-106.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-106.js
@@ -10,27 +10,28 @@ description: >
Object.defineProperty - 'name' and 'desc' are data properties,
several attributes values of name and desc are different (8.12.9
step 12)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "foo", {
- value: 100,
- writable: true,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "foo", {
- value: 200,
- writable: false,
- enumerable: false
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", 200, false, false, true);
- }
-runTestCase(testcase);
+var obj = {};
+
+Object.defineProperty(obj, "foo", {
+ value: 100,
+ writable: true,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "foo", {
+ value: 200,
+ writable: false,
+ enumerable: false
+});
+verifyEqualTo(obj, "foo", 200);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-107.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-107.js
index c6cc0d47e..92bda0373 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-107.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-107.js
@@ -10,36 +10,37 @@ description: >
Object.defineProperty - 'name' and 'desc' are accessor properties,
both desc.[[Get]] and name.[[Get]] are two different values
(8.12.9 step 12)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function getFunc() {
- return 10;
- }
+function getFunc() {
+ return 10;
+}
- function setFunc(value) {
- obj.setVerifyHelpProp = value;
- }
+function setFunc(value) {
+ obj.setVerifyHelpProp = value;
+}
- Object.defineProperty(obj, "foo", {
- get: getFunc,
- set: setFunc,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ get: getFunc,
+ set: setFunc,
+ configurable: true
+});
- function getFunc2() {
- return 20;
- }
+function getFunc2() {
+ return 20;
+}
- Object.defineProperty(obj, "foo", {
- get: getFunc2
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc2, setFunc, "setVerifyHelpProp", false, true);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", {
+ get: getFunc2
+});
+verifyEqualTo(obj, "foo", getFunc2());
+
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-108.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-108.js
index 3d28dcb76..73dfa3dec 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-108.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-108.js
@@ -10,34 +10,33 @@ description: >
Object.defineProperty - 'name' and 'desc' are accessor
properties, name.[[Get]] is present and desc.[[Get]] is undefined
(8.12.9 step 12)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function getFunc() {
- return 10;
- }
+function getFunc() {
+ return 10;
+}
- function setFunc(value) {
- obj.setVerifyHelpProp = value;
- }
+function setFunc(value) {
+ obj.setVerifyHelpProp = value;
+}
- Object.defineProperty(obj, "foo", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+});
- Object.defineProperty(obj, "foo", {
- set: setFunc,
- get: undefined
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc, "setVerifyHelpProp", true, true);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", {
+ set: setFunc,
+ get: undefined
+});
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-109.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-109.js
index 7b5c9b39a..35bcf73bd 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-109.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-109.js
@@ -10,32 +10,33 @@ description: >
Object.defineProperty - 'name' and 'desc' are accessor properties,
name.[[Get]] is undefined and desc.[[Get]] is function (8.12.9
step 12)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
-
- function setFunc(value) {
- obj.setVerifyHelpProp = value;
- }
-
- Object.defineProperty(obj, "foo", {
- set: setFunc,
- get: undefined,
- enumerable: true,
- configurable: true
- });
-
- function getFunc() {
- return 10;
- }
-
- Object.defineProperty(obj, "foo", {
- get: getFunc
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "setVerifyHelpProp", true, true);
- }
-runTestCase(testcase);
+var obj = {};
+
+function setFunc(value) {
+ obj.setVerifyHelpProp = value;
+}
+
+Object.defineProperty(obj, "foo", {
+ set: setFunc,
+ get: undefined,
+ enumerable: true,
+ configurable: true
+});
+
+function getFunc() {
+ return 10;
+}
+
+Object.defineProperty(obj, "foo", {
+ get: getFunc
+});
+verifyEqualTo(obj, "foo", getFunc());
+
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-110.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-110.js
index 52eb4a67a..cf5f75b6f 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-110.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-110.js
@@ -10,32 +10,31 @@ description: >
Object.defineProperty - 'name' and 'desc' are accessor properties,
both desc.[[Set]] and name.[[Set]] are two different values
(8.12.9 step 12)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function setFunc1() {
- return 10;
- }
+function setFunc1() {
+ return 10;
+}
- Object.defineProperty(obj, "foo", {
- set: setFunc1,
- enumerable: true,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ set: setFunc1,
+ enumerable: true,
+ configurable: true
+});
- function setFunc2(value) {
- obj.setVerifyHelpProp = value;
- }
+function setFunc2(value) {
+ obj.setVerifyHelpProp = value;
+}
- Object.defineProperty(obj, "foo", {
- set: setFunc2
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc2, "setVerifyHelpProp", true, true);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", {
+ set: setFunc2
+});
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-112.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-112.js
index 9fecb9176..993240de3 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-112.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-112.js
@@ -10,33 +10,34 @@ description: >
Object.defineProperty - 'name' and 'desc' are accessor properties,
name.[[Set]] is undefined and desc.[[Set]] is function (8.12.9
step 12)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function getFunc() {
- return 10;
- }
+function getFunc() {
+ return 10;
+}
- Object.defineProperty(obj, "foo", {
- set: undefined,
- get: getFunc,
- enumerable: true,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ set: undefined,
+ get: getFunc,
+ enumerable: true,
+ configurable: true
+});
- function setFunc(value) {
- obj.setVerifyHelpProp = value;
- }
+function setFunc(value) {
+ obj.setVerifyHelpProp = value;
+}
- Object.defineProperty(obj, "foo", {
- set: setFunc
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "setVerifyHelpProp", true, true);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", {
+ set: setFunc
+});
+verifyEqualTo(obj, "foo", getFunc());
+
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-113.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-113.js
index 3da8fe015..30deb9605 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-113.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-113.js
@@ -10,30 +10,29 @@ description: >
Object.defineProperty - 'name' and 'desc' are accessor properties,
name.enumerable and desc.enumerable are different values (8.12.9
step 12)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function getFunc() {
- return 10;
- }
+function getFunc() {
+ return 10;
+}
- Object.defineProperty(obj, "foo", {
- get: getFunc,
- enumerable: true,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ get: getFunc,
+ enumerable: true,
+ configurable: true
+});
- Object.defineProperty(obj, "foo", {
- get: getFunc,
- enumerable: false
- });
+Object.defineProperty(obj, "foo", {
+ get: getFunc,
+ enumerable: false
+});
- return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, undefined, undefined, false, true);
- }
-runTestCase(testcase);
+verifyEqualTo(obj, "foo", getFunc());
+
+verifyNotEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-114.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-114.js
index 3b40963bb..bb9e4ad3f 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-114.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-114.js
@@ -10,33 +10,34 @@ description: >
Object.defineProperty - 'name' and 'desc' are accessor properties,
name.configurable = true and desc.configurable = false (8.12.9
step 12)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function setFunc(value) {
- obj.setVerifyHelpProp = value;
- }
+function setFunc(value) {
+ obj.setVerifyHelpProp = value;
+}
- function getFunc() {
- return 10;
- }
+function getFunc() {
+ return 10;
+}
- Object.defineProperty(obj, "foo", {
- get: getFunc,
- set: setFunc,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ get: getFunc,
+ set: setFunc,
+ configurable: true
+});
- Object.defineProperty(obj, "foo", {
- get: getFunc,
- configurable: false
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "setVerifyHelpProp", false, false);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", {
+ get: getFunc,
+ configurable: false
+});
+verifyEqualTo(obj, "foo", getFunc());
+
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-115.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-115.js
index 639e979f4..2eb0e428c 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-115.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-115.js
@@ -10,38 +10,39 @@ description: >
Object.defineProperty - 'name' and 'desc' are accessor properties,
several attributes values of 'name' and 'desc' are different
(8.12.9 step 12)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- function getFunc1() {
- return 10;
- }
- function setFunc1() {}
-
- Object.defineProperty(obj, "foo", {
- get: getFunc1,
- set: setFunc1,
- enumerable: true,
- configurable: true
- });
-
- function getFunc2() {
- return 20;
- }
- function setFunc2(value) {
- obj.setVerifyHelpProp = value;
- }
- Object.defineProperty(obj, "foo", {
- get: getFunc2,
- set: setFunc2,
- enumerable: false
- });
- return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc2, setFunc2, "setVerifyHelpProp", false, true);
- }
-runTestCase(testcase);
+
+var obj = {};
+
+function getFunc1() {
+ return 10;
+}
+function setFunc1() {}
+
+Object.defineProperty(obj, "foo", {
+ get: getFunc1,
+ set: setFunc1,
+ enumerable: true,
+ configurable: true
+});
+
+function getFunc2() {
+ return 20;
+}
+function setFunc2(value) {
+ obj.setVerifyHelpProp = value;
+}
+Object.defineProperty(obj, "foo", {
+ get: getFunc2,
+ set: setFunc2,
+ enumerable: false
+});
+verifyEqualTo(obj, "foo", getFunc2());
+
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-124.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-124.js
index 71160001b..7e787f585 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-124.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-124.js
@@ -11,18 +11,19 @@ description: >
property of 'O', the [[Value]] field of 'desc' is absent, test
updating the [[Writable]] attribute of the length property from
true to false (15.4.5.1 step 3.a.i)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
+var arrObj = [];
- var arrObj = [];
+Object.defineProperty(arrObj, "length", {
+ writable: false
+});
+verifyEqualTo(arrObj, "length", 0);
+
+verifyNotWritable(arrObj, "length");
+
+verifyNotEnumerable(arrObj, "length");
+
+verifyNotConfigurable(arrObj, "length");
- Object.defineProperty(arrObj, "length", {
- writable: false
- });
- return dataPropertyAttributesAreCorrect(arrObj, "length", 0, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-190.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-190.js
index 95365ed27..30e2c59bb 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-190.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-190.js
@@ -11,26 +11,31 @@ description: >
named property, 'name' is own data property, test TypeError is
thrown on updating the configurable attribute from false to true
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
- Object.defineProperty(arrObj, 0, {
- value: "ownDataProperty",
- configurable: false
- });
-
- try {
- Object.defineProperty(arrObj, 0, {
- configurable: true
- });
- return false;
- } catch (e) {
- return e instanceof TypeError &&
- dataPropertyAttributesAreCorrect(arrObj, "0", "ownDataProperty", false, false, false);
- }
+var arrObj = [];
+
+Object.defineProperty(arrObj, 0, {
+ value: "ownDataProperty",
+ configurable: false
+});
+
+try {
+ Object.defineProperty(arrObj, 0, {
+ configurable: true
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "0", "ownDataProperty");
+
+ verifyNotWritable(arrObj, "0");
+
+ verifyNotEnumerable(arrObj, "0");
+
+ verifyNotConfigurable(arrObj, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-191.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-191.js
index 2681ef4ac..9f9d54f4c 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-191.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-191.js
@@ -10,25 +10,30 @@ description: >
Object.defineProperty - 'O' is an Array, 'name' is an array index
named property, 'name' is an inherited data property, test that
defining own index named property is successful (15.4.5.1 step 4.c)
-includes: [runTestCase.js]
---*/
-function testcase() {
- try {
- Object.defineProperty(Array.prototype, "0", {
- value: 11,
- configurable: true
- });
+try {
+ Object.defineProperty(Array.prototype, "0", {
+ value: 11,
+ configurable: true
+ });
- var arrObj = [];
+ var arrObj = [];
- Object.defineProperty(arrObj, "0", {
- configurable: false
- });
- return arrObj.hasOwnProperty("0") && Array.prototype[0] === 11 && typeof arrObj[0] === "undefined";
- } finally {
- delete Array.prototype[0];
- }
+ Object.defineProperty(arrObj, "0", {
+ configurable: false
+ });
+ if (!arrObj.hasOwnProperty("0")) {
+ $ERROR("Expected arrObj.hasOwnProperty('0') === true, actually " + arrObj.hasOwnProperty("0"));
}
-runTestCase(testcase);
+ if (Array.prototype[0] !== 11) {
+ $ERROR("Expected Array.prototype[0] === 11), actually " + Array.prototype[0]);
+ }
+ if (typeof arrObj[0] !== "undefined") {
+ $ERROR("Expected typeof arrObj[0] === 'undefined'), actually " + typeof arrObj[0]);
+ }
+
+} finally {
+ delete Array.prototype[0];
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-194.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-194.js
index e5861d80a..baf3ec2eb 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-194.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-194.js
@@ -11,30 +11,33 @@ description: >
named property, 'name' is own accessor property, test TypeError is
thrown on updating the configurable attribute from false to true
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
- var getFunc = function () {
- return 11;
- };
-
- Object.defineProperty(arrObj, "0", {
- get: getFunc,
- configurable: false
- });
-
- try {
- Object.defineProperty(arrObj, "0", {
- configurable: true
- });
- return false;
- } catch (e) {
- return e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, undefined, undefined, false, false);
- }
+var arrObj = [];
+var getFunc = function () {
+ return 11;
+};
+
+Object.defineProperty(arrObj, "0", {
+ get: getFunc,
+ configurable: false
+});
+
+try {
+ Object.defineProperty(arrObj, "0", {
+ configurable: true
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "0", getFunc());
+
+ verifyNotEnumerable(arrObj, "0");
+
+ verifyNotConfigurable(arrObj, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e.name);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-195.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-195.js
index cd4c93e99..2abb5b0e5 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-195.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-195.js
@@ -10,40 +10,42 @@ description: >
Object.defineProperty - 'O' is an Array, 'name' is an array index
named property, 'name' is an inherited accessor property (15.4.5.1
step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- try {
- Object.defineProperty(Array.prototype, "0", {
- get: function () {
- return 11;
- },
- configurable: true
- });
-
- var arrObj = [];
-
- function getFunc() {
- return arrObj.helpVerifySet;
- }
- function setFunc(value) {
- arrObj.helpVerifySet = value;
- }
-
- Object.defineProperty(arrObj, "0", {
- get: getFunc,
- set: setFunc,
- configurable: false
- });
-
- arrObj[0] = 13;
-
- return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "helpVerifySet", false, false);
- } finally {
- delete Array.prototype[0];
- }
- }
-runTestCase(testcase);
+function getFunc() {
+ return arrObj.helpVerifySet;
+}
+function setFunc(value) {
+ arrObj.helpVerifySet = value;
+}
+
+try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ var arrObj = [];
+
+
+ Object.defineProperty(arrObj, "0", {
+ get: getFunc,
+ set: setFunc,
+ configurable: false
+ });
+
+ arrObj[0] = 13;
+
+ verifyEqualTo(arrObj, "0", getFunc());
+
+ verifyWritable(arrObj, "0", "helpVerifySet");
+
+ verifyNotEnumerable(arrObj, "0");
+
+ verifyNotConfigurable(arrObj, "0");
+} finally {
+ delete Array.prototype[0];
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-199.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-199.js
index 76ee9cce3..42156b5ab 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-199.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-199.js
@@ -11,18 +11,20 @@ description: >
named property, 'name' property doesn't exist in 'O', test 'name'
is defined as data property when 'desc' is generic descriptor
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "0", {
- enumerable: true
- });
+Object.defineProperty(arrObj, "0", {
+ enumerable: true
+});
+
+verifyEqualTo(arrObj, "0", undefined);
+
+verifyNotWritable(arrObj, "0");
+
+verifyEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
- return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, true, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-200.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-200.js
index 56028a480..3f2c3a64c 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-200.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-200.js
@@ -12,20 +12,22 @@ description: >
[[Value]] of 'name' property of 'Attributes' is set as undefined
if [[Value]] is absent in data descriptor 'desc' (15.4.5.1 step
4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "0", {
- writable: true,
- enumerable: true,
- configurable: false
- });
+Object.defineProperty(arrObj, "0", {
+ writable: true,
+ enumerable: true,
+ configurable: false
+});
+
+verifyEqualTo(arrObj, "0", undefined);
+
+verifyWritable(arrObj, "0");
+
+verifyEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
- return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, true, true, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-201.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-201.js
index f51aba2e5..d08ac9379 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-201.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-201.js
@@ -12,19 +12,21 @@ description: >
[[Writable]] is absent in data descriptor 'desc', test
[[Writable]] attribute of property 'name' is set to false
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
+
+Object.defineProperty(arrObj, "0", {
+ value: 1001,
+ enumerable: true,
+ configurable: false
+});
+verifyEqualTo(arrObj, "0", 1001);
+
+verifyNotWritable(arrObj, "0");
+
+verifyEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", {
- value: 1001,
- enumerable: true,
- configurable: false
- });
- return dataPropertyAttributesAreCorrect(arrObj, "0", 1001, false, true, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-202.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-202.js
index 0d8195705..169f5211e 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-202.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-202.js
@@ -12,19 +12,21 @@ description: >
[[Enumerable]] is absent in data descriptor 'desc', test
[[Enumerable]] of property 'name' is set to false (15.4.5.1 step
4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
+
+Object.defineProperty(arrObj, "0", {
+ value: 1001,
+ writable: true,
+ configurable: true
+});
+verifyEqualTo(arrObj, "0", 1001);
+
+verifyWritable(arrObj, "0");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", {
- value: 1001,
- writable: true,
- configurable: true
- });
- return dataPropertyAttributesAreCorrect(arrObj, "0", 1001, true, false, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-203.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-203.js
index e482f04c1..b4f2d9b37 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-203.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-203.js
@@ -12,19 +12,21 @@ description: >
[[Configurable]] is absent in data descriptor 'desc', test
[[Configurable]] of property 'name' is set to false (15.4.5.1 step
4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
+
+Object.defineProperty(arrObj, "0", {
+ value: 1001,
+ writable: true,
+ enumerable: true
+});
+verifyEqualTo(arrObj, "0", 1001);
+
+verifyWritable(arrObj, "0");
+
+verifyEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", {
- value: 1001,
- writable: true,
- enumerable: true
- });
- return dataPropertyAttributesAreCorrect(arrObj, "0", 1001, true, true, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-204.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-204.js
index 43732577a..b681d90b4 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-204.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-204.js
@@ -10,21 +10,23 @@ description: >
Object.defineProperty - 'O' is an Array, 'name' is an array index
named property, 'desc' is data descriptor, test updating all
attribute values of 'name' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [1]; // default value of attributes: writable: true, configurable: true, enumerable: true
+var arrObj = [1]; // default value of attributes: writable: true, configurable: true, enumerable: true
- Object.defineProperty(arrObj, "0", {
- value: 1001,
- writable: false,
- enumerable: false,
- configurable: false
- });
+Object.defineProperty(arrObj, "0", {
+ value: 1001,
+ writable: false,
+ enumerable: false,
+ configurable: false
+});
+
+verifyEqualTo(arrObj, "0", 1001);
+
+verifyNotWritable(arrObj, "0");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
- return dataPropertyAttributesAreCorrect(arrObj, "0", 1001, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-205.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-205.js
index 63c540b5f..a87266087 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-205.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-205.js
@@ -11,23 +11,22 @@ description: >
named property, 'name' property doesn't exist in 'O' and [[Get]]
is absent in accessor descriptor 'desc', test [[Get]] attribute of
property 'name' is set to undefined (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
- var setFunc = function (value) {
- arrObj.setVerifyHelpProp = value;
- };
+var arrObj = [];
+var setFunc = function (value) {
+ arrObj.setVerifyHelpProp = value;
+};
- Object.defineProperty(arrObj, "0", {
- set: setFunc,
- enumerable: true,
- configurable: true
- });
+Object.defineProperty(arrObj, "0", {
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+});
- return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", true, true);
- }
-runTestCase(testcase);
+verifyWritable(arrObj, "0", "setVerifyHelpProp");
+
+verifyEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-207.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-207.js
index 6f71b052f..571de2095 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-207.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-207.js
@@ -12,24 +12,25 @@ description: >
[[Enumerable]] is absent in accessor descriptor 'desc', test
[[Enumerable]] attribute of property 'name' is set to false
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- var setFunc = function (value) {
- arrObj.setVerifyHelpProp = value;
- };
- var getFunc = function () { };
+var setFunc = function (value) {
+ arrObj.setVerifyHelpProp = value;
+};
+var getFunc = function () { };
- Object.defineProperty(arrObj, "0", {
- set: setFunc,
- get: getFunc,
- configurable: true
- });
- return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "setVerifyHelpProp", false, true);
- }
-runTestCase(testcase);
+Object.defineProperty(arrObj, "0", {
+ set: setFunc,
+ get: getFunc,
+ configurable: true
+});
+verifyEqualTo(arrObj, "0", getFunc());
+
+verifyWritable(arrObj, "0", "setVerifyHelpProp");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-208.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-208.js
index cef424e07..e21e28f90 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-208.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-208.js
@@ -12,23 +12,24 @@ description: >
[[Configurable]] is absent in accessor descriptor 'desc', test
[[Configurable]] attribute of property 'name' is set to false
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
- var setFunc = function (value) {
- arrObj.setVerifyHelpProp = value;
- };
- var getFunc = function () { };
+var arrObj = [];
+var setFunc = function (value) {
+ arrObj.setVerifyHelpProp = value;
+};
+var getFunc = function () { };
- Object.defineProperty(arrObj, "0", {
- set: setFunc,
- get: getFunc,
- enumerable: true
- });
- return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "setVerifyHelpProp", true, false);
- }
-runTestCase(testcase);
+Object.defineProperty(arrObj, "0", {
+ set: setFunc,
+ get: getFunc,
+ enumerable: true
+});
+verifyEqualTo(arrObj, "0", getFunc());
+
+verifyWritable(arrObj, "0", "setVerifyHelpProp");
+
+verifyEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-209.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-209.js
index b031f70d0..25930ae34 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-209.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-209.js
@@ -10,36 +10,37 @@ description: >
Object.defineProperty - 'O' is an Array, 'name' is an array index
named property, 'desc' is accessor descriptor, test updating all
attribute values of 'name' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
- var setFunc = function (value) {
- arrObj.setVerifyHelpProp = value;
- };
- var getFunc = function () {
- return 14;
- };
-
- Object.defineProperty(arrObj, "0", {
- get: function () {
- return 11;
- },
- set: function () { },
- configurable: true,
- enumerable: true
- });
-
- Object.defineProperty(arrObj, "0", {
- get: getFunc,
- set: setFunc,
- configurable: false,
- enumerable: false
- });
-
- return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "setVerifyHelpProp", false, false);
- }
-runTestCase(testcase);
+var arrObj = [];
+var setFunc = function (value) {
+ arrObj.setVerifyHelpProp = value;
+};
+var getFunc = function () {
+ return 14;
+};
+
+Object.defineProperty(arrObj, "0", {
+ get: function () {
+ return 11;
+ },
+ set: function () { },
+ configurable: true,
+ enumerable: true
+});
+
+Object.defineProperty(arrObj, "0", {
+ get: getFunc,
+ set: setFunc,
+ configurable: false,
+ enumerable: false
+});
+
+verifyEqualTo(arrObj, "0", getFunc());
+
+verifyWritable(arrObj, "0", "setVerifyHelpProp");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-210.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-210.js
index e9cdbe2e0..5f7a35500 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-210.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-210.js
@@ -10,17 +10,19 @@ description: >
Object.defineProperty - 'O' is an Array, 'name' is an array index
named property, 'name' makes no change if every field in 'desc' is
absent (name is data property) (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- arrObj[0] = 101; // default value of attributes: writable: true, configurable: true, enumerable: true
+arrObj[0] = 101; // default value of attributes: writable: true, configurable: true, enumerable: true
+
+Object.defineProperty(arrObj, "0", {});
+verifyEqualTo(arrObj, "0", 101);
+
+verifyWritable(arrObj, "0");
+
+verifyEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", {});
- return dataPropertyAttributesAreCorrect(arrObj, "0", 101, true, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-211.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-211.js
index 892bfff66..59c38fe57 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-211.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-211.js
@@ -10,29 +10,30 @@ description: >
Object.defineProperty - 'O' is an Array, 'name' is an array index
named property, 'name' makes no change if every field in 'desc' is
absent(name is accessor property) (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
-
- function getFunc() {
- return 11;
- }
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
-
- Object.defineProperty(arrObj, "0", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(arrObj, "0", {});
- return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "setVerifyHelpProp", true, true);
- }
-runTestCase(testcase);
+var arrObj = [];
+
+function getFunc() {
+ return 11;
+}
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
+
+Object.defineProperty(arrObj, "0", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(arrObj, "0", {});
+verifyEqualTo(arrObj, "0", getFunc());
+
+verifyWritable(arrObj, "0", "setVerifyHelpProp");
+
+verifyEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-212.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-212.js
index 356e4fa1a..a81816025 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-212.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-212.js
@@ -11,23 +11,25 @@ description: >
named property, 'name' makes no change if the value of every field
in 'desc' is the same value as the corresponding field in
'name'(desc is data property) (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- arrObj[0] = 100; // default value of attributes: writable: true, configurable: true, enumerable: true
+arrObj[0] = 100; // default value of attributes: writable: true, configurable: true, enumerable: true
- Object.defineProperty(arrObj, "0", {
- value: 100,
- writable: true,
- enumerable: true,
- configurable: true
- });
+Object.defineProperty(arrObj, "0", {
+ value: 100,
+ writable: true,
+ enumerable: true,
+ configurable: true
+});
+
+verifyEqualTo(arrObj, "0", 100);
+
+verifyWritable(arrObj, "0");
+
+verifyEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
- return dataPropertyAttributesAreCorrect(arrObj, "0", 100, true, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-213.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-213.js
index 10f5117cf..ef3960305 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-213.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-213.js
@@ -11,36 +11,37 @@ description: >
named property, 'name' makes no change if the value of every field
in 'desc' is the same value as the corresponding field in
'name'(desc is accessor property) (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
- var getFunc = function () {
- return "100";
- };
- var setFunc = function (value) {
- arrObj.setVerifyHelpProp = value;
- };
-
- var desc = {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- };
-
- Object.defineProperty(arrObj, "0", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(arrObj, "0", desc);
-
- return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "setVerifyHelpProp", true, true);
- }
-runTestCase(testcase);
+var arrObj = [];
+var getFunc = function () {
+ return "100";
+};
+var setFunc = function (value) {
+ arrObj.setVerifyHelpProp = value;
+};
+
+var desc = {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+};
+
+Object.defineProperty(arrObj, "0", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(arrObj, "0", desc);
+
+verifyEqualTo(arrObj, "0", getFunc());
+
+verifyWritable(arrObj, "0", "setVerifyHelpProp");
+
+verifyEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-214.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-214.js
index 3cdb626d5..837112c14 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-214.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-214.js
@@ -12,25 +12,31 @@ description: >
false, test TypeError is thrown when the type of the [[Value]]
field of 'desc' is different from the type of the [[Value]]
attribute value of 'name' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
-
- Object.defineProperty(arrObj, 0, {
- value: 101,
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperty(arrObj, "0", { value: "abc" });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", 101, false, false, false);
- }
+var arrObj = [];
+
+Object.defineProperty(arrObj, 0, {
+ value: 101,
+ writable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperty(arrObj, "0", { value: "abc" });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "0", 101);
+
+ verifyNotWritable(arrObj, "0");
+
+ verifyNotEnumerable(arrObj, "0");
+
+ verifyNotConfigurable(arrObj, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-215.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-215.js
index 9df867e40..7d44cc4ad 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-215.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-215.js
@@ -10,17 +10,19 @@ description: >
Object.defineProperty - 'O' is an Array, 'name' is an array index
property, both the [[Value]] field of 'desc' and the [[Value]]
attribute value of 'name' are undefined (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "0", { value: undefined });
+Object.defineProperty(arrObj, "0", { value: undefined });
+
+Object.defineProperty(arrObj, "0", { value: undefined });
+verifyEqualTo(arrObj, "0", undefined);
+
+verifyNotWritable(arrObj, "0");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", { value: undefined });
- return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-216.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-216.js
index 91c911003..080eefdfa 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-216.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-216.js
@@ -10,17 +10,19 @@ description: >
Object.defineProperty - 'O' is an Array, 'name' is an array index
property, both the [[Value]] field of 'desc' and the [[Value]]
attribute value of 'name' are null (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "0", { value: null });
+Object.defineProperty(arrObj, "0", { value: null });
+
+Object.defineProperty(arrObj, "0", { value: null });
+verifyEqualTo(arrObj, "0", null);
+
+verifyNotWritable(arrObj, "0");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", { value: null });
- return dataPropertyAttributesAreCorrect(arrObj, "0", null, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-218.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-218.js
index 606a6bc92..7c2be01d5 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-218.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-218.js
@@ -11,21 +11,27 @@ description: >
property, test TypeError is thrown when the [[Value]] field of
'desc' is +0, and the [[Value]] attribute value of 'name' is -0
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "0", { value: -0 });
+Object.defineProperty(arrObj, "0", { value: -0 });
- try {
- Object.defineProperty(arrObj, "0", { value: +0 });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", -0, false, false, false);
- }
+try {
+ Object.defineProperty(arrObj, "0", { value: +0 });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "0", -0);
+
+ verifyNotWritable(arrObj, "0");
+
+ verifyNotEnumerable(arrObj, "0");
+
+ verifyNotConfigurable(arrObj, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-219.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-219.js
index 8f1336f6b..a391b96a9 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-219.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-219.js
@@ -11,21 +11,27 @@ description: >
property, test TypeError is thrown when the [[Value]] field of
'desc' is -0, and the [[Value]] attribute value of 'name' is +0
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "0", { value: +0 });
+Object.defineProperty(arrObj, "0", { value: +0 });
- try {
- Object.defineProperty(arrObj, "0", { value: -0 });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", +0, false, false, false);
- }
+try {
+ Object.defineProperty(arrObj, "0", { value: -0 });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "0", +0);
+
+ verifyNotWritable(arrObj, "0");
+
+ verifyNotEnumerable(arrObj, "0");
+
+ verifyNotConfigurable(arrObj, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-220.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-220.js
index e40c6e41c..dc7273043 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-220.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-220.js
@@ -11,17 +11,18 @@ description: >
property, the [[Value]] field of 'desc' and the [[Value]]
attribute value of 'name' are two numbers with same vaule
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "0", { value: 101 });
+Object.defineProperty(arrObj, "0", { value: 101 });
- Object.defineProperty(arrObj, "0", { value: 101 });
- return dataPropertyAttributesAreCorrect(arrObj, "0", 101, false, false, false);
- }
-runTestCase(testcase);
+Object.defineProperty(arrObj, "0", { value: 101 });
+verifyEqualTo(arrObj, "0", 101);
+
+verifyNotWritable(arrObj, "0");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-221.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-221.js
index fbc3ae6e3..b0065a1c2 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-221.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-221.js
@@ -11,25 +11,31 @@ description: >
property, test TypeError is thrown when the [[Value]] field of
'desc' and the [[Value]] attribute value of 'name' are two numbers
with different values (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
-
- Object.defineProperty(arrObj, 0, {
- value: 101,
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperty(arrObj, "0", { value: 123 });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", 101, false, false, false);
- }
+var arrObj = [];
+
+Object.defineProperty(arrObj, 0, {
+ value: 101,
+ writable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperty(arrObj, "0", { value: 123 });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "0", 101);
+
+ verifyNotWritable(arrObj, "0");
+
+ verifyNotEnumerable(arrObj, "0");
+
+ verifyNotConfigurable(arrObj, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-222.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-222.js
index 1b0e5ba7e..dc9f8112f 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-222.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-222.js
@@ -11,17 +11,19 @@ description: >
property, the [[Value]] field of 'desc' and the [[Value]]
attribute value of 'name' are two strings which have same length
and same characters in corresponding positions (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "0", { value: "abcd" });
+Object.defineProperty(arrObj, "0", { value: "abcd" });
+
+Object.defineProperty(arrObj, "0", { value: "abcd" });
+verifyEqualTo(arrObj, "0", "abcd");
+
+verifyNotWritable(arrObj, "0");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", { value: "abcd" });
- return dataPropertyAttributesAreCorrect(arrObj, "0", "abcd", false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-223.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-223.js
index 42bd5ac78..8cf2925fc 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-223.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-223.js
@@ -11,25 +11,31 @@ description: >
property, test TypeError is thrown when the [[Value]] field of
'desc' and the [[Value]] attribute value of 'name' are two strings
with different values (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
-
- Object.defineProperty(arrObj, 0, {
- value: "abcd",
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperty(arrObj, "0", { value: "fghj" });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", "abcd", false, false, false);
- }
+var arrObj = [];
+
+Object.defineProperty(arrObj, 0, {
+ value: "abcd",
+ writable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperty(arrObj, "0", { value: "fghj" });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "0", "abcd");
+
+ verifyNotWritable(arrObj, "0");
+
+ verifyNotEnumerable(arrObj, "0");
+
+ verifyNotConfigurable(arrObj, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-224.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-224.js
index 78d4ef9c6..f99e33c4b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-224.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-224.js
@@ -11,17 +11,19 @@ description: >
property, the [[Value]] field of 'desc' and the [[Value]]
attribute value of 'name' are two booleans with same value
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "0", { value: true });
+Object.defineProperty(arrObj, "0", { value: true });
+
+Object.defineProperty(arrObj, "0", { value: true });
+verifyEqualTo(arrObj, "0", true);
+
+verifyNotWritable(arrObj, "0");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", { value: true });
- return dataPropertyAttributesAreCorrect(arrObj, "0", true, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-225.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-225.js
index 40d655eca..aa26f857b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-225.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-225.js
@@ -11,25 +11,31 @@ description: >
property, test TypeError is thrown when the [[Value]] field of
'desc' and the [[Value]] attribute value of 'name' are two
booleans with different values (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
-
- Object.defineProperty(arrObj, 0, {
- value: true,
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperty(arrObj, "0", { value: false });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", true, false, false, false);
- }
+var arrObj = [];
+
+Object.defineProperty(arrObj, 0, {
+ value: true,
+ writable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperty(arrObj, "0", { value: false });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "0", true);
+
+ verifyNotWritable(arrObj, "0");
+
+ verifyNotEnumerable(arrObj, "0");
+
+ verifyNotConfigurable(arrObj, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-226.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-226.js
index 78d60fe0e..41a7d59b5 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-226.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-226.js
@@ -11,19 +11,21 @@ description: >
property, the [[Value]] field of 'desc' and the [[Value]]
attribute value of 'name' are two objects which refer to the same
object (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- var obj1 = { length: 10 };
+var obj1 = { length: 10 };
- Object.defineProperty(arrObj, "0", { value: obj1 });
+Object.defineProperty(arrObj, "0", { value: obj1 });
+
+Object.defineProperty(arrObj, "0", { value: obj1 });
+verifyEqualTo(arrObj, "0", obj1);
+
+verifyNotWritable(arrObj, "0");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", { value: obj1 });
- return dataPropertyAttributesAreCorrect(arrObj, "0", obj1, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-227.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-227.js
index 2d68820d7..159c41f79 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-227.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-227.js
@@ -11,28 +11,34 @@ description: >
property, test TypeError is thrown when the [[Value]] field of
'desc' and the [[Value]] attribute value of 'name' are two objects
which refer to two different objects (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- var obj1 = { length: 10 };
- Object.defineProperty(arrObj, 0, {
- value: obj1,
- writable: false,
- configurable: false
- });
+var obj1 = { length: 10 };
+Object.defineProperty(arrObj, 0, {
+ value: obj1,
+ writable: false,
+ configurable: false
+});
- var obj2 = { length: 20 };
+var obj2 = { length: 20 };
- try {
- Object.defineProperty(arrObj, "0", { value: obj2 });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "0", obj1, false, false, false);
- }
+try {
+ Object.defineProperty(arrObj, "0", { value: obj2 });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "0", obj1);
+
+ verifyNotWritable(arrObj, "0");
+
+ verifyNotEnumerable(arrObj, "0");
+
+ verifyNotConfigurable(arrObj, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-228.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-228.js
index e3e8b71df..060840988 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-228.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-228.js
@@ -11,17 +11,19 @@ description: >
property, the [[Writable]] field of 'desc' and the [[Writable]]
attribute value of 'name' are two booleans with same value
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "0", { writable: false });
+Object.defineProperty(arrObj, "0", { writable: false });
+
+Object.defineProperty(arrObj, "0", { writable: false });
+verifyEqualTo(arrObj, "0", undefined);
+
+verifyNotWritable(arrObj, "0");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", { writable: false });
- return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-229.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-229.js
index 8b6c5f7aa..981ee7d12 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-229.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-229.js
@@ -11,17 +11,18 @@ description: >
property, the [[Writable]] field of 'desc' and the [[Writable]]
attribute value of 'name' are two booleans with different values
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "0", { writable: false, configurable: true });
+Object.defineProperty(arrObj, "0", { writable: false, configurable: true });
- Object.defineProperty(arrObj, "0", { writable: true });
- return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, true, false, true);
- }
-runTestCase(testcase);
+Object.defineProperty(arrObj, "0", { writable: true });
+verifyEqualTo(arrObj, "0", undefined);
+
+verifyWritable(arrObj, "0");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-230.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-230.js
index d2e7d2b4a..e9e48f1c0 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-230.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-230.js
@@ -11,30 +11,31 @@ description: >
property, the [[Get]] field of 'desc' and the [[Get]] attribute
value of 'name' are two objects which refer to the same object
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
- arrObj.helpVerifySet = 10;
-
- function getFunc() {
- return arrObj.helpVerifySet;
- }
- function setFunc(value) {
- arrObj.helpVerifySet = value;
- }
-
- Object.defineProperty(arrObj, "0", {
- get: getFunc,
- set: setFunc
- });
-
- Object.defineProperty(arrObj, "0", {
- get: getFunc
- });
- return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, setFunc, "helpVerifySet", false, false);
- }
-runTestCase(testcase);
+var arrObj = [];
+arrObj.helpVerifySet = 10;
+
+function getFunc() {
+ return arrObj.helpVerifySet;
+}
+function setFunc(value) {
+ arrObj.helpVerifySet = value;
+}
+
+Object.defineProperty(arrObj, "0", {
+ get: getFunc,
+ set: setFunc
+});
+
+Object.defineProperty(arrObj, "0", {
+ get: getFunc
+});
+verifyEqualTo(arrObj, "0", getFunc());
+
+verifyWritable(arrObj, "0", "helpVerifySet");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-231.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-231.js
index 2e682ba13..2e68e8b08 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-231.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-231.js
@@ -11,35 +11,36 @@ description: >
property, the [[Get]] field of 'desc' and the [[Get]] attribute
value of 'name' are two objects which refer to the different
objects (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
- arrObj.helpVerifySet = 10;
-
- function getFunc1() {
- return 20;
- }
- function getFunc2() {
- return arrObj.helpVerifySet;
- }
- function setFunc(value) {
- arrObj.helpVerifySet = value;
- }
-
- Object.defineProperty(arrObj, "0", {
- get: getFunc1,
- set: setFunc,
- configurable: true
- });
-
- Object.defineProperty(arrObj, "0", {
- get: getFunc2
- });
-
- return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc2, setFunc, "helpVerifySet", false, true);
- }
-runTestCase(testcase);
+var arrObj = [];
+arrObj.helpVerifySet = 10;
+
+function getFunc1() {
+ return 20;
+}
+function getFunc2() {
+ return arrObj.helpVerifySet;
+}
+function setFunc(value) {
+ arrObj.helpVerifySet = value;
+}
+
+Object.defineProperty(arrObj, "0", {
+ get: getFunc1,
+ set: setFunc,
+ configurable: true
+});
+
+Object.defineProperty(arrObj, "0", {
+ get: getFunc2
+});
+
+verifyEqualTo(arrObj, "0", getFunc2());
+
+verifyWritable(arrObj, "0", "helpVerifySet");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-232.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-232.js
index 9c3a9425a..906183a7b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-232.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-232.js
@@ -11,21 +11,20 @@ description: >
property, the [[Set]] field of 'desc' and the [[Set]] attribute
value of 'name' are two objects which refer to the same object
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
- Object.defineProperty(arrObj, "0", { set: setFunc });
+Object.defineProperty(arrObj, "0", { set: setFunc });
- Object.defineProperty(arrObj, "0", { set: setFunc });
- return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", false, false);
- }
-runTestCase(testcase);
+Object.defineProperty(arrObj, "0", { set: setFunc });
+verifyWritable(arrObj, "0", "setVerifyHelpProp");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-233.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-233.js
index eb670a95f..e4fc9c0fa 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-233.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-233.js
@@ -11,26 +11,25 @@ description: >
property, the [[Set]] field of 'desc' and the [[Set]] attribute
value of 'name' are two objects which refer to the different
objects (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- function setFunc1() { }
+function setFunc1() { }
- Object.defineProperty(arrObj, "0", {
- set: setFunc1,
- configurable: true
- });
+Object.defineProperty(arrObj, "0", {
+ set: setFunc1,
+ configurable: true
+});
- function setFunc2(value) {
- arrObj.setVerifyHelpProp = value;
- }
+function setFunc2(value) {
+ arrObj.setVerifyHelpProp = value;
+}
- Object.defineProperty(arrObj, "0", { set: setFunc2 });
- return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc2, "setVerifyHelpProp", false, true);
- }
-runTestCase(testcase);
+Object.defineProperty(arrObj, "0", { set: setFunc2 });
+verifyWritable(arrObj, "0", "setVerifyHelpProp");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-234.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-234.js
index cab45f748..7844538c9 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-234.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-234.js
@@ -11,17 +11,19 @@ description: >
property, the [[Enumerable]] field of 'desc' and the
[[Enumerable]] attribute value of 'name' are two booleans with
same value (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "0", { enumerable: false });
+Object.defineProperty(arrObj, "0", { enumerable: false });
+
+Object.defineProperty(arrObj, "0", { enumerable: false });
+verifyEqualTo(arrObj, "0", undefined);
+
+verifyNotWritable(arrObj, "0");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", { enumerable: false });
- return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-235.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-235.js
index ff75a490f..b5589fd9b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-235.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-235.js
@@ -11,17 +11,19 @@ description: >
property, the [[Enumerable]] field of 'desc' and the
[[Enumerable]] attribute value of 'name' are two booleans with
different values (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "0", { enumerable: false, configurable: true });
+Object.defineProperty(arrObj, "0", { enumerable: false, configurable: true });
+
+Object.defineProperty(arrObj, "0", { enumerable: true });
+verifyEqualTo(arrObj, "0", undefined);
+
+verifyNotWritable(arrObj, "0");
+
+verifyEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", { enumerable: true });
- return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-236.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-236.js
index f4af3d3a1..675fd9e46 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-236.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-236.js
@@ -11,17 +11,18 @@ description: >
property, the [[Configurable]] field of 'desc' and the
[[Configurable]] attribute value of 'name' are two booleans with
same value (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "0", { configurable: false });
+Object.defineProperty(arrObj, "0", { configurable: false });
- Object.defineProperty(arrObj, "0", { configurable: false });
- return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, false, false);
- }
-runTestCase(testcase);
+Object.defineProperty(arrObj, "0", { configurable: false });
+verifyEqualTo(arrObj, "0", undefined);
+
+verifyNotWritable(arrObj, "0");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-237.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-237.js
index 1322e386a..b8c594548 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-237.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-237.js
@@ -11,17 +11,19 @@ description: >
property, the [[Configurable]] field of 'desc' and the
[[Configurable]] attribute value of 'name' are two booleans with
different values (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "0", { configurable: true });
+Object.defineProperty(arrObj, "0", { configurable: true });
+
+Object.defineProperty(arrObj, "0", { configurable: false });
+verifyEqualTo(arrObj, "0", undefined);
+
+verifyNotWritable(arrObj, "0");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", { configurable: false });
- return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-238.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-238.js
index 7fb3c4f0f..47f4d9991 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-238.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-238.js
@@ -11,31 +11,37 @@ description: >
named property, TypeError is thrown if the [[Configurable]]
attribute value of 'name' is false and the [[Configurable]] field
of 'desc' is true (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "1", {
- value: 3,
- writable: true,
- configurable: false
- });
+Object.defineProperty(arrObj, "1", {
+ value: 3,
+ writable: true,
+ configurable: false
+});
- try {
- Object.defineProperty(arrObj, "1", {
- value: 13,
- writable: true,
- configurable: true
- });
- return false;
+try {
+ Object.defineProperty(arrObj, "1", {
+ value: 13,
+ writable: true,
+ configurable: true
+ });
+ $ERROR("Expected an exception.");
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", 3, true, false, false);
- }
+} catch (e) {
+ verifyEqualTo(arrObj, "1", 3);
+
+ verifyWritable(arrObj, "1");
+
+ verifyNotEnumerable(arrObj, "1");
+
+ verifyNotConfigurable(arrObj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-239.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-239.js
index 5a965d5b3..1b51b2d64 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-239.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-239.js
@@ -12,32 +12,38 @@ description: >
attribute value of 'name' is false, and [[Enumerable]] of 'desc'
is present and its value is different from the [[Enumerable]]
attribute value of 'name' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "1", {
- value: 3,
- writable: true,
- configurable: false,
- enumerable: false
- });
+Object.defineProperty(arrObj, "1", {
+ value: 3,
+ writable: true,
+ configurable: false,
+ enumerable: false
+});
- try {
- Object.defineProperty(arrObj, "1", {
- value: 13,
- writable: true,
- enumerable: true
- });
- return false;
+try {
+ Object.defineProperty(arrObj, "1", {
+ value: 13,
+ writable: true,
+ enumerable: true
+ });
+ $ERROR("Expected an exception.");
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", 3, true, false, false);
- }
+} catch (e) {
+ verifyEqualTo(arrObj, "1", 3);
+
+ verifyWritable(arrObj, "1");
+
+ verifyNotEnumerable(arrObj, "1");
+
+ verifyNotConfigurable(arrObj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-240.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-240.js
index e25653ab1..dc6e35f5d 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-240.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-240.js
@@ -11,32 +11,36 @@ description: >
named property, TypeError is thrown if 'name' is accessor
property, and 'desc' is data descriptor, and the [[Configurable]]
attribute value of 'name' is false (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
- Object.defineProperty(arrObj, "1", {
- set: setFunc,
- configurable: false
- });
+Object.defineProperty(arrObj, "1", {
+ set: setFunc,
+ configurable: false
+});
- try {
- Object.defineProperty(arrObj, "1", {
- value: 13
- });
- return false;
+try {
+ Object.defineProperty(arrObj, "1", {
+ value: 13
+ });
+ $ERROR("Expected an exception.");
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "1", undefined, setFunc, "setVerifyHelpProp", false, false);
- }
+} catch (e) {
+ verifyWritable(arrObj, "1", "setVerifyHelpProp");
+
+ verifyNotEnumerable(arrObj, "1");
+
+ verifyNotConfigurable(arrObj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-241.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-241.js
index b09ad9e87..63556e2b2 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-241.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-241.js
@@ -11,28 +11,34 @@ description: >
named property, TypeError is thrown if 'name' is data property,
and'desc' is accessor descriptor, and the [[Configurable]]
attribute value of 'name' is false (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "1", {
- value: 3,
- configurable: false
- });
+Object.defineProperty(arrObj, "1", {
+ value: 3,
+ configurable: false
+});
- try {
- Object.defineProperty(arrObj, "1", {
- set: function () { }
- });
- return false;
+try {
+ Object.defineProperty(arrObj, "1", {
+ set: function () { }
+ });
+ $ERROR("Expected an exception.");
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", 3, false, false, false);
- }
+} catch (e) {
+ verifyEqualTo(arrObj, "1", 3);
+
+ verifyNotWritable(arrObj, "1");
+
+ verifyNotEnumerable(arrObj, "1");
+
+ verifyNotConfigurable(arrObj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-242-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-242-1.js
index b41c3a75e..555ab8914 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-242-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-242-1.js
@@ -11,21 +11,23 @@ description: >
named property, 'name' is data property and 'desc' is data
descriptor, and the [[Configurable]] attribute value of 'name' is
true, test 'name' is updated successfully (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [3];
+var arrObj = [3];
- Object.defineProperty(arrObj, "0", {
- value: 1001,
- writable: false,
- enumerable: false
- });
+Object.defineProperty(arrObj, "0", {
+ value: 1001,
+ writable: false,
+ enumerable: false
+});
+
+verifyEqualTo(arrObj, "0", 1001);
+
+verifyNotWritable(arrObj, "0");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
- return dataPropertyAttributesAreCorrect(arrObj, "0", 1001, false, false, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-242.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-242.js
index 1a93be344..30306ebd2 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-242.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-242.js
@@ -12,22 +12,21 @@ description: >
descriptor, and the [[Configurable]] attribute value of 'name' is
true, test 'name' is converted from data property to accessor
property (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [3];
+var arrObj = [3];
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
- Object.defineProperty(arrObj, "0", {
- set: setFunc
- });
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
+Object.defineProperty(arrObj, "0", {
+ set: setFunc
+});
- return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", true, true);
- }
-runTestCase(testcase);
+verifyWritable(arrObj, "0", "setVerifyHelpProp");
+
+verifyEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-243-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-243-1.js
index ee3e8ff4a..a3a5a6394 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-243-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-243-1.js
@@ -11,25 +11,25 @@ description: >
named property, 'name' is accessor property and assignment to
the accessor property, fails to convert accessor property from
accessor property to data property (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
+flags: [noStrict]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- function getFunc() {
- return 3;
- }
- Object.defineProperty(arrObj, "1", {
- get: getFunc,
- configurable: true
- });
+function getFunc() {
+ return 3;
+}
+Object.defineProperty(arrObj, "1", {
+ get: getFunc,
+ configurable: true
+});
- arrObj[1] = 4;
+arrObj[1] = 4;
- return accessorPropertyAttributesAreCorrect(arrObj, "1", getFunc, undefined, undefined, false, true);
- }
-runTestCase(testcase);
+verifyEqualTo(arrObj, "1", getFunc());
+
+verifyNotEnumerable(arrObj, "1");
+
+verifyConfigurable(arrObj, "1");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-243-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-243-2.js
new file mode 100644
index 000000000..c158aba39
--- /dev/null
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-243-2.js
@@ -0,0 +1,43 @@
+// Copyright (c) 2012 Ecma International. All rights reserved.
+// Ecma International makes this code available under the terms and conditions set
+// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+// "Use Terms"). Any redistribution of this code must retain the above
+// copyright and this notice and otherwise comply with the Use Terms.
+
+/*---
+es5id: 15.2.3.6-4-243-2
+description: >
+ Object.defineProperty - 'O' is an Array, 'name' is an array index
+ named property, 'name' is accessor property and assignment to
+ the accessor property, fails to convert accessor property from
+ accessor property to data property (15.4.5.1 step 4.c)
+includes: [propertyHelper.js]
+flags: [onlyStrict]
+---*/
+
+
+var arrObj = [];
+
+function getFunc() {
+ return 3;
+}
+Object.defineProperty(arrObj, "1", {
+ get: getFunc,
+ configurable: true
+});
+
+try {
+ arrObj[1] = 4;
+} catch (e) {
+ verifyEqualTo(arrObj, "1", getFunc());
+
+ verifyNotEnumerable(arrObj, "1");
+
+ verifyConfigurable(arrObj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+}
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-243.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-243.js
index 1f2db50eb..dd56d69bf 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-243.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-243.js
@@ -12,27 +12,29 @@ description: >
descriptor, and the [[Configurable]] attribute value of 'name' is
true, test 'name' is converted from accessor property to data
property (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- function getFunc() {
- return 3;
- }
- Object.defineProperty(arrObj, "1", {
- get: getFunc,
- configurable: true
- });
+function getFunc() {
+ return 3;
+}
+Object.defineProperty(arrObj, "1", {
+ get: getFunc,
+ configurable: true
+});
- Object.defineProperty(arrObj, "1", {
- value: 12
- });
+Object.defineProperty(arrObj, "1", {
+ value: 12
+});
+
+verifyEqualTo(arrObj, "1", 12);
+
+verifyNotWritable(arrObj, "1");
+
+verifyNotEnumerable(arrObj, "1");
+
+verifyConfigurable(arrObj, "1");
- return dataPropertyAttributesAreCorrect(arrObj, "1", 12, false, false, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-244.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-244.js
index df4ace8a4..1f2d865e0 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-244.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-244.js
@@ -13,28 +13,35 @@ description: >
false, test TypeError is thrown if the [[Writable]] attribute
value of 'name' is false and the [[Writable]] field of 'desc' is
true (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "1", {
- writable: false,
- configurable: false
- });
+Object.defineProperty(arrObj, "1", {
+ writable: false,
+ configurable: false
+});
- try {
+try {
- Object.defineProperty(arrObj, "1", {
- writable: true
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", undefined, false, false, false);
- }
+ Object.defineProperty(arrObj, "1", {
+ writable: true
+ });
+ $ERROR("Expected an exception.");
+
+} catch (e) {
+ verifyEqualTo(arrObj, "1", undefined);
+
+ verifyNotWritable(arrObj, "1");
+
+ verifyNotEnumerable(arrObj, "1");
+
+ verifyNotConfigurable(arrObj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-245.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-245.js
index 4db654f76..8a70e1d30 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-245.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-245.js
@@ -14,29 +14,34 @@ description: >
value of 'name' is false, and the type of the [[Value]] field of
'desc' is different from the type of the [[Value]] attribute value
of 'name' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "1", {
- value: 3,
- writable: false,
- configurable: false
- });
+Object.defineProperty(arrObj, "1", {
+ value: 3,
+ writable: false,
+ configurable: false
+});
- try {
+try {
+ Object.defineProperty(arrObj, "1", {
+ value: "abc"
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "1", 3);
- Object.defineProperty(arrObj, "1", {
- value: "abc"
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", 3, false, false, false);
- }
+ verifyNotWritable(arrObj, "1");
+
+ verifyNotEnumerable(arrObj, "1");
+
+ verifyNotConfigurable(arrObj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-246.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-246.js
index a822a5e88..50f518202 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-246.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-246.js
@@ -14,27 +14,32 @@ description: >
value of 'name' is false, and the [[Value]] field of 'desc' is +0,
and the [[Value]] attribute value of 'name' is -0 (15.4.5.1 step
4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "1", {
- value: -0
+Object.defineProperty(arrObj, "1", {
+ value: -0
- });
+});
- try {
- Object.defineProperty(arrObj, "1", {
- value: +0
- });
+try {
+ Object.defineProperty(arrObj, "1", {
+ value: +0
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "1", -0);
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", -0, false, false, false);
- }
+ verifyNotWritable(arrObj, "1");
+
+ verifyNotEnumerable(arrObj, "1");
+
+ verifyNotConfigurable(arrObj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-247.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-247.js
index 51e1acb3f..ebe4abfe8 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-247.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-247.js
@@ -14,26 +14,32 @@ description: >
value of 'name' is false, and the [[Value]] field of 'desc' is -0,
and the [[Value]] attribute value of 'name' is +0 (15.4.5.1 step
4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "1", {
- value: +0
- });
+Object.defineProperty(arrObj, "1", {
+ value: +0
+});
- try {
+try {
- Object.defineProperty(arrObj, "1", {
- value: -0
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", +0, false, false, false);
- }
+ Object.defineProperty(arrObj, "1", {
+ value: -0
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "1", +0);
+
+ verifyNotWritable(arrObj, "1");
+
+ verifyNotEnumerable(arrObj, "1");
+
+ verifyNotConfigurable(arrObj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-248.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-248.js
index 39f410325..8476bdb89 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-248.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-248.js
@@ -14,25 +14,31 @@ description: >
value of 'name' is false, and the [[Value]] field of 'desc' and
the [[Value]] attribute value of 'name' are two numbers with
different vaules (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
-
- Object.defineProperty(arrObj, "1", {
- value: 12
- });
-
- try {
- Object.defineProperty(arrObj, "1", {
- value: 15
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", 12, false, false, false);
- }
+var arrObj = [];
+
+Object.defineProperty(arrObj, "1", {
+ value: 12
+});
+
+try {
+ Object.defineProperty(arrObj, "1", {
+ value: 15
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "1", 12);
+
+ verifyNotWritable(arrObj, "1");
+
+ verifyNotEnumerable(arrObj, "1");
+
+ verifyNotConfigurable(arrObj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-249.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-249.js
index 84aaa2ed0..e8da0e5ff 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-249.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-249.js
@@ -14,26 +14,32 @@ description: >
value of 'name' is false, and the [[Value]] field of 'desc' and
the [[Value]] attribute value of 'name' are two strings with
different values (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "1", {
- value: "abc"
- });
+Object.defineProperty(arrObj, "1", {
+ value: "abc"
+});
- try {
- Object.defineProperty(arrObj, "1", {
- value: "fgh"
- });
+try {
+ Object.defineProperty(arrObj, "1", {
+ value: "fgh"
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "1", "abc");
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", "abc", false, false, false);
- }
+ verifyNotWritable(arrObj, "1");
+
+ verifyNotEnumerable(arrObj, "1");
+
+ verifyNotConfigurable(arrObj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-250.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-250.js
index 0c9a705ad..d7235a4f3 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-250.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-250.js
@@ -14,26 +14,31 @@ description: >
value of 'name' is false, and the [[Value]] field of 'desc' and
the [[Value]] attribute value of 'name' are two booleans with
different values (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "1", {
- value: false
- });
+Object.defineProperty(arrObj, "1", {
+ value: false
+});
- try {
- Object.defineProperty(arrObj, "1", {
- value: true
- });
+try {
+ Object.defineProperty(arrObj, "1", {
+ value: true
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "1", false);
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", false, false, false, false);
- }
+ verifyNotWritable(arrObj, "1");
+
+ verifyNotEnumerable(arrObj, "1");
+
+ verifyNotConfigurable(arrObj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-251.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-251.js
index ce1c459b3..0afa71a42 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-251.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-251.js
@@ -14,25 +14,31 @@ description: >
value of 'name' is false, and the [[Value]] field of 'desc' and
the [[Value]] attribute value of 'name' are two objects which
refer to the different objects (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
- var obj = { length: 10 };
+var arrObj = [];
+var obj = { length: 10 };
- Object.defineProperty(arrObj, "1", {
- value: obj
- });
+Object.defineProperty(arrObj, "1", {
+ value: obj
+});
- try {
- Object.defineProperty(arrObj, "1", { value: {} });
+try {
+ Object.defineProperty(arrObj, "1", { value: {} });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "1", obj);
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "1", obj, false, false, false);
- }
+ verifyNotWritable(arrObj, "1");
+
+ verifyNotEnumerable(arrObj, "1");
+
+ verifyNotConfigurable(arrObj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-252.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-252.js
index a098e29db..4f4dc16f7 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-252.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-252.js
@@ -14,29 +14,33 @@ description: >
present, and the [[Set]] field of 'desc' and the [[Set]] attribute
value of 'name' are two objects which refer to the different
objects (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
-
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
- Object.defineProperty(arrObj, "1", {
- set: setFunc
- });
-
- try {
- Object.defineProperty(arrObj, "1", {
- set: function () { }
- });
-
- return false;
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "1", undefined, setFunc, "setVerifyHelpProp", false, false);
- }
+var arrObj = [];
+
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
+Object.defineProperty(arrObj, "1", {
+ set: setFunc
+});
+
+try {
+ Object.defineProperty(arrObj, "1", {
+ set: function () { }
+ });
+ $ERROR("Expected an exception.");
+
+} catch (e) {
+ verifyWritable(arrObj, "1", "setVerifyHelpProp");
+
+ verifyNotEnumerable(arrObj, "1");
+
+ verifyNotConfigurable(arrObj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-253.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-253.js
index 6abe4e9bc..325da9709 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-253.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-253.js
@@ -13,29 +13,33 @@ description: >
false, test TypeError is thrown if the [[Set]] field of 'desc' is
present, and the [[Set]] field of 'desc' is an object and the
[[Set]] attribute value of 'name' is undefined (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
- function getFunc() {
- return 12;
- }
-
- Object.defineProperty(arrObj, "1", {
- get: getFunc,
- set: undefined
- });
-
- try {
- Object.defineProperty(arrObj, "1", {
- set: function () { }
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "1", getFunc, undefined, undefined, false, false);
- }
+var arrObj = [];
+function getFunc() {
+ return 12;
+}
+
+Object.defineProperty(arrObj, "1", {
+ get: getFunc,
+ set: undefined
+});
+
+try {
+ Object.defineProperty(arrObj, "1", {
+ set: function () { }
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "1", getFunc());
+
+ verifyNotEnumerable(arrObj, "1");
+
+ verifyNotConfigurable(arrObj, "1");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-257.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-257.js
index 9da91a48e..475da8ecd 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-257.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-257.js
@@ -13,31 +13,26 @@ description: >
false, test TypeError is not thrown if the [[Get]] field of 'desc'
is present, and the [[Get]] field of 'desc' and the [[Get]]
attribute value of 'name' are undefined (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
+var arrObj = [];
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
- Object.defineProperty(arrObj, "1", {
- get: undefined,
- set: setFunc,
- configurable: false
- });
+Object.defineProperty(arrObj, "1", {
+ get: undefined,
+ set: setFunc,
+ configurable: false
+});
- try {
- Object.defineProperty(arrObj, "1", {
- get: undefined
- });
+Object.defineProperty(arrObj, "1", {
+ get: undefined
+});
- return accessorPropertyAttributesAreCorrect(arrObj, "1", undefined, setFunc, "setVerifyHelpProp", false, false);
- } catch (e) {
- return false;
- }
- }
-runTestCase(testcase);
+verifyWritable(arrObj, "1", "setVerifyHelpProp");
+
+verifyNotEnumerable(arrObj, "1");
+
+verifyNotConfigurable(arrObj, "1");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-258.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-258.js
index d7b90d21f..b61831d41 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-258.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-258.js
@@ -11,18 +11,20 @@ description: >
named property, name is data property and 'desc' is data
descriptor, test updating the [[Value]] attribute value of 'name'
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [100];
+var arrObj = [100];
+
+Object.defineProperty(arrObj, "0", {
+ value: 200
+});
+verifyEqualTo(arrObj, "0", 200);
+
+verifyWritable(arrObj, "0");
+
+verifyEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", {
- value: 200
- });
- return dataPropertyAttributesAreCorrect(arrObj, "0", 200, true, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-259.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-259.js
index 9db099508..88aee4f4d 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-259.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-259.js
@@ -11,18 +11,20 @@ description: >
named property, name is data property and 'desc' is data
descriptor, test setting the [[Value]] attribute value of 'name'
as undefined (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [100];
+var arrObj = [100];
+
+Object.defineProperty(arrObj, "0", {
+ value: undefined
+});
+verifyEqualTo(arrObj, "0", undefined);
+
+verifyWritable(arrObj, "0");
+
+verifyEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", {
- value: undefined
- });
- return dataPropertyAttributesAreCorrect(arrObj, "0", undefined, true, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-260.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-260.js
index 7feaa01ce..e3f41ee66 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-260.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-260.js
@@ -11,17 +11,19 @@ description: >
named property, name is data property and 'desc' is data
descriptor, test setting the [[Value]] attribute value of 'name'
from undefined to number (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [undefined];
- Object.defineProperty(arrObj, "0", {
- value: 100
- });
- return dataPropertyAttributesAreCorrect(arrObj, "0", 100, true, true, true);
- }
-runTestCase(testcase);
+var arrObj = [undefined];
+Object.defineProperty(arrObj, "0", {
+ value: 100
+});
+verifyEqualTo(arrObj, "0", 100);
+
+verifyWritable(arrObj, "0");
+
+verifyEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-261.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-261.js
index 6fad4c8b2..39add1747 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-261.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-261.js
@@ -11,17 +11,19 @@ description: >
named property, name is data property and 'desc' is data
descriptor, test updating the [[Writable]] attribute value of
'name' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [100];
- Object.defineProperty(arrObj, "0", {
- writable: false
- });
- return dataPropertyAttributesAreCorrect(arrObj, "0", 100, false, true, true);
- }
-runTestCase(testcase);
+var arrObj = [100];
+Object.defineProperty(arrObj, "0", {
+ writable: false
+});
+verifyEqualTo(arrObj, "0", 100);
+
+verifyNotWritable(arrObj, "0");
+
+verifyEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-262.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-262.js
index 5eef4c6b0..cbca50654 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-262.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-262.js
@@ -11,18 +11,20 @@ description: >
named property, name is data property and 'desc' is data
descriptor, test updating the [[Enumerable]] attribute value of
'name' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [100];
+var arrObj = [100];
+
+Object.defineProperty(arrObj, "0", {
+ enumerable: false
+});
+verifyEqualTo(arrObj, "0", 100);
+
+verifyWritable(arrObj, "0");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", {
- enumerable: false
- });
- return dataPropertyAttributesAreCorrect(arrObj, "0", 100, true, false, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-263.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-263.js
index fd5644efe..4cc2aae0c 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-263.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-263.js
@@ -11,18 +11,20 @@ description: >
named property, name is data property and 'desc' is data
descriptor, test updating the [[Configurable]] attribute value of
'name' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [100];
+var arrObj = [100];
+
+Object.defineProperty(arrObj, "0", {
+ configurable: false
+});
+verifyEqualTo(arrObj, "0", 100);
+
+verifyWritable(arrObj, "0");
+
+verifyEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
- Object.defineProperty(arrObj, "0", {
- configurable: false
- });
- return dataPropertyAttributesAreCorrect(arrObj, "0", 100, true, true, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-264.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-264.js
index fab104a50..d85228620 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-264.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-264.js
@@ -11,19 +11,21 @@ description: >
named property, name is data property and 'desc' is data
descriptor, test updating multiple attribute values of 'name'
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [100];
- Object.defineProperty(arrObj, "0", {
- writable: false,
- enumerable: false,
- configurable: false
- });
- return dataPropertyAttributesAreCorrect(arrObj, "0", 100, false, false, false);
- }
-runTestCase(testcase);
+var arrObj = [100];
+Object.defineProperty(arrObj, "0", {
+ writable: false,
+ enumerable: false,
+ configurable: false
+});
+verifyEqualTo(arrObj, "0", 100);
+
+verifyNotWritable(arrObj, "0");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-265.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-265.js
index bcdcef965..dc9d0e4d4 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-265.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-265.js
@@ -11,27 +11,26 @@ description: >
named property, name is accessor property and 'desc' is accessor
descriptor, test updating the [[Get]] attribute value of 'name'
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- function getFunc() {
- return 100;
- }
- Object.defineProperty(arrObj, "0", {
- get: function () {
- return 12;
- },
- configurable: true
- });
- Object.defineProperty(arrObj, "0", {
- get: getFunc
- });
- return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, undefined, undefined, false, true);
- }
-runTestCase(testcase);
+function getFunc() {
+ return 100;
+}
+Object.defineProperty(arrObj, "0", {
+ get: function () {
+ return 12;
+ },
+ configurable: true
+});
+Object.defineProperty(arrObj, "0", {
+ get: getFunc
+});
+verifyEqualTo(arrObj, "0", getFunc());
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-266.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-266.js
index 4102d77f3..d6fd1826f 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-266.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-266.js
@@ -11,26 +11,23 @@ description: >
named property, name is accessor property and 'desc' is accessor
descriptor, test setting the [[Get]] attribute value of 'name' as
undefined (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
- function getFunc() {
- return 12;
- }
+var arrObj = [];
+function getFunc() {
+ return 12;
+}
- Object.defineProperty(arrObj, "0", {
- get: getFunc,
- configurable: true
- });
+Object.defineProperty(arrObj, "0", {
+ get: getFunc,
+ configurable: true
+});
- Object.defineProperty(arrObj, "0", {
- get: undefined
- });
- return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, undefined, undefined, false, true);
- }
-runTestCase(testcase);
+Object.defineProperty(arrObj, "0", {
+ get: undefined
+});
+verifyNotEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-267.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-267.js
index 2c8a50323..ddca9e2e3 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-267.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-267.js
@@ -11,26 +11,25 @@ description: >
named property, name is accessor property and 'desc' is accessor
descriptor, test updating the [[Get]] attribute value of 'name'
from undefined to function object (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- function getFunc() {
- return 12;
- }
- Object.defineProperty(arrObj, "0", {
- get: undefined,
- configurable: true
- });
+function getFunc() {
+ return 12;
+}
+Object.defineProperty(arrObj, "0", {
+ get: undefined,
+ configurable: true
+});
- Object.defineProperty(arrObj, "0", {
- get: getFunc
- });
- return accessorPropertyAttributesAreCorrect(arrObj, "0", getFunc, undefined, undefined, false, true);
- }
-runTestCase(testcase);
+Object.defineProperty(arrObj, "0", {
+ get: getFunc
+});
+verifyEqualTo(arrObj, "0", getFunc());
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-268.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-268.js
index 251838b55..5f5124f27 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-268.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-268.js
@@ -11,26 +11,25 @@ description: >
named property, name is accessor property and 'desc' is accessor
descriptor, test updating the [[Set]] attribute value of 'name'
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
- Object.defineProperty(arrObj, "0", {
- set: function () { },
- configurable: true
- });
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
+Object.defineProperty(arrObj, "0", {
+ set: function () { },
+ configurable: true
+});
- Object.defineProperty(arrObj, "0", {
- set: setFunc
- });
- return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", false, true);
- }
-runTestCase(testcase);
+Object.defineProperty(arrObj, "0", {
+ set: setFunc
+});
+verifyWritable(arrObj, "0", "setVerifyHelpProp");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-269.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-269.js
index 988ddeb48..c7443ae58 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-269.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-269.js
@@ -11,23 +11,20 @@ description: >
named property, name is accessor property and 'desc' is accessor
descriptor, test setting the [[Set]] attribute value of 'name' as
undefined (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "0", {
- set: function () { },
- configurable: true
- });
+Object.defineProperty(arrObj, "0", {
+ set: function () { },
+ configurable: true
+});
- Object.defineProperty(arrObj, "0", {
- set: undefined
- });
- return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, undefined, undefined, false, true);
- }
-runTestCase(testcase);
+Object.defineProperty(arrObj, "0", {
+ set: undefined
+});
+verifyNotEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-270.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-270.js
index 7d1d3a42b..595a006f4 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-270.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-270.js
@@ -11,27 +11,26 @@ description: >
named property, name is accessor property and 'desc' is accessor
descriptor, test updating the [[Set]] attribute value of 'name'
from undefined to function object (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
- Object.defineProperty(arrObj, "0", {
- set: undefined,
- configurable: true
- });
+Object.defineProperty(arrObj, "0", {
+ set: undefined,
+ configurable: true
+});
- Object.defineProperty(arrObj, "0", {
- set: setFunc
- });
- return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", false, true);
- }
-runTestCase(testcase);
+Object.defineProperty(arrObj, "0", {
+ set: setFunc
+});
+verifyWritable(arrObj, "0", "setVerifyHelpProp");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-271.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-271.js
index 82fab3164..3ff40cf0e 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-271.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-271.js
@@ -11,28 +11,27 @@ description: >
named property, name is accessor property and 'desc' is accessor
descriptor, test updating the [[Enumerable]] attribute value of
'name' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
- Object.defineProperty(arrObj, "0", {
- set: setFunc,
- enumerable: true,
- configurable: true
- });
+Object.defineProperty(arrObj, "0", {
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+});
- Object.defineProperty(arrObj, "0", {
- enumerable: false
- });
- return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", false, true);
- }
-runTestCase(testcase);
+Object.defineProperty(arrObj, "0", {
+ enumerable: false
+});
+verifyWritable(arrObj, "0", "setVerifyHelpProp");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-272.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-272.js
index e0a35ebd0..15bf2f351 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-272.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-272.js
@@ -11,26 +11,25 @@ description: >
named property, name is accessor property and 'desc' is accessor
descriptor, test updating the [[Configurable]] attribute value of
'name' (15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
+var arrObj = [];
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
- Object.defineProperty(arrObj, "0", {
- set: setFunc,
- configurable: true
- });
+Object.defineProperty(arrObj, "0", {
+ set: setFunc,
+ configurable: true
+});
- Object.defineProperty(arrObj, "0", {
- configurable: false
- });
- return accessorPropertyAttributesAreCorrect(arrObj, "0", undefined, setFunc, "setVerifyHelpProp", false, false);
- }
-runTestCase(testcase);
+Object.defineProperty(arrObj, "0", {
+ configurable: false
+});
+verifyWritable(arrObj, "0", "setVerifyHelpProp");
+
+verifyNotEnumerable(arrObj, "0");
+
+verifyNotConfigurable(arrObj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-273.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-273.js
index b79561e2c..51df8990e 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-273.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-273.js
@@ -11,35 +11,36 @@ description: >
named property, name is accessor property and 'desc' is accessor
descriptor, test updating multiple attribute values of 'name'
(15.4.5.1 step 4.c)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var arrObj = [];
-
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
- function getFunc() {
- return 12;
- }
- Object.defineProperty(arrObj, "1", {
- get: function () {
- return 6;
- },
- set: setFunc,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(arrObj, "1", {
- get: getFunc,
- enumerable: false,
- configurable: false
- });
- return accessorPropertyAttributesAreCorrect(arrObj, "1", getFunc, setFunc, "setVerifyHelpProp", false, false);
- }
-runTestCase(testcase);
+
+var arrObj = [];
+
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
+function getFunc() {
+ return 12;
+}
+Object.defineProperty(arrObj, "1", {
+ get: function () {
+ return 6;
+ },
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(arrObj, "1", {
+ get: getFunc,
+ enumerable: false,
+ configurable: false
+});
+verifyEqualTo(arrObj, "1", getFunc());
+
+verifyWritable(arrObj, "1", "setVerifyHelpProp");
+
+verifyNotEnumerable(arrObj, "1");
+
+verifyNotConfigurable(arrObj, "1");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-277.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-277.js
index cde4ef379..f017d274d 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-277.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-277.js
@@ -11,22 +11,24 @@ description: >
property that won't exist on 'O', and 'desc' is data descriptor,
test 'name' is defined in 'O' with all correct attribute values
(15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- Object.defineProperty(arrObj, "property", {
- value: 12,
- writable: true,
- enumerable: true,
- configurable: true
- });
+Object.defineProperty(arrObj, "property", {
+ value: 12,
+ writable: true,
+ enumerable: true,
+ configurable: true
+});
+
+verifyEqualTo(arrObj, "property", 12);
+
+verifyWritable(arrObj, "property");
+
+verifyEnumerable(arrObj, "property");
+
+verifyConfigurable(arrObj, "property");
- return dataPropertyAttributesAreCorrect(arrObj, "property", 12, true, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-278.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-278.js
index 832fbcb05..462bbbec4 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-278.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-278.js
@@ -10,29 +10,30 @@ description: >
Object.defineProperty - 'name' is generic property that won't
exist on 'O', and 'desc' is accessor descriptor, test 'name' is
defined in 'O' with all correct attribute values (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- function getFunc() {
- return 12;
- }
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
+function getFunc() {
+ return 12;
+}
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
- Object.defineProperty(arrObj, "property", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- });
+Object.defineProperty(arrObj, "property", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+});
- return accessorPropertyAttributesAreCorrect(arrObj, "property", getFunc, setFunc, "setVerifyHelpProp", true, true);
- }
-runTestCase(testcase);
+verifyEqualTo(arrObj, "property", getFunc());
+
+verifyWritable(arrObj, "property", "setVerifyHelpProp");
+
+verifyEnumerable(arrObj, "property");
+
+verifyConfigurable(arrObj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-279.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-279.js
index dc0f32a82..734a24344 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-279.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-279.js
@@ -10,35 +10,36 @@ description: >
Object.defineProperty - 'O' is an Array, 'name' is generic own
accessor property of 'O', and 'desc' is accessor descriptor, test
updating multiple attribute values of 'name' (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var arrObj = [];
-
- function getFunc() {
- return 12;
- }
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
- Object.defineProperty(arrObj, "property", {
- get: function () {
- return 24;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(arrObj, "property", {
- get: getFunc,
- set: setFunc,
- enumerable: false,
- configurable: false
- });
-
- return accessorPropertyAttributesAreCorrect(arrObj, "property", getFunc, setFunc, "setVerifyHelpProp", false, false);
- }
-runTestCase(testcase);
+
+var arrObj = [];
+
+function getFunc() {
+ return 12;
+}
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
+Object.defineProperty(arrObj, "property", {
+ get: function () {
+ return 24;
+ },
+ enumerable: true,
+ configurable: true
+});
+Object.defineProperty(arrObj, "property", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: false,
+ configurable: false
+});
+
+verifyEqualTo(arrObj, "property", getFunc());
+
+verifyWritable(arrObj, "property", "setVerifyHelpProp");
+
+verifyNotEnumerable(arrObj, "property");
+
+verifyNotConfigurable(arrObj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-280.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-280.js
index b27fcf84a..da869b279 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-280.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-280.js
@@ -10,23 +10,25 @@ description: >
Object.defineProperty - 'O' is an Array, 'name' is generic own
data property of 'O', and 'desc' is data descriptor, test updating
multiple attribute values of 'name' (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- arrObj.property = 12; // default value of attributes: writable: true, configurable: true, enumerable: true
+arrObj.property = 12; // default value of attributes: writable: true, configurable: true, enumerable: true
- Object.defineProperty(arrObj, "property", {
- writable: false,
- enumerable: false,
- configurable: false
- });
+Object.defineProperty(arrObj, "property", {
+ writable: false,
+ enumerable: false,
+ configurable: false
+});
+
+verifyEqualTo(arrObj, "property", 12);
+
+verifyNotWritable(arrObj, "property");
+
+verifyNotEnumerable(arrObj, "property");
+
+verifyNotConfigurable(arrObj, "property");
- return dataPropertyAttributesAreCorrect(arrObj, "property", 12, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-281.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-281.js
index 665ee2b40..f4309fe25 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-281.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-281.js
@@ -11,25 +11,31 @@ description: >
data property of 'O', test TypeError is thrown when updating the
[[Value]] attribute value of 'name' which is defined as
non-writable and non-configurable (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var arrObj = [];
-
- Object.defineProperty(arrObj, "property", {
- value: 12
- });
- try {
- Object.defineProperty(arrObj, "property", {
- value: 36
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "property", 12, false, false, false);
- }
+
+var arrObj = [];
+
+Object.defineProperty(arrObj, "property", {
+ value: 12
+});
+try {
+ Object.defineProperty(arrObj, "property", {
+ value: 36
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "property", 12);
+
+ verifyNotWritable(arrObj, "property");
+
+ verifyNotEnumerable(arrObj, "property");
+
+ verifyNotConfigurable(arrObj, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-282.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-282.js
index 1e965821a..807545446 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-282.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-282.js
@@ -11,25 +11,31 @@ description: >
data property of 'O', test TypeError is thrown when updating the
[[Writable]] attribute value of 'name' which is defined as
non-configurable (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var arrObj = [];
-
- Object.defineProperty(arrObj, "property", {
- writable: false
- });
- try {
- Object.defineProperty(arrObj, "property", {
- writable: true
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "property", undefined, false, false, false);
- }
+
+var arrObj = [];
+
+Object.defineProperty(arrObj, "property", {
+ writable: false
+});
+try {
+ Object.defineProperty(arrObj, "property", {
+ writable: true
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "property", undefined);
+
+ verifyNotWritable(arrObj, "property");
+
+ verifyNotEnumerable(arrObj, "property");
+
+ verifyNotConfigurable(arrObj, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-283.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-283.js
index bc6ae0069..c918fd736 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-283.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-283.js
@@ -11,25 +11,31 @@ description: >
data property of 'O', test TypeError is thrown when updating the
[[Enumerable]] attribute value of 'name' which is defined as
non-configurable (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
-
- Object.defineProperty(arrObj, "property", {
- value: 12,
- enumerable: false
- });
- try {
- Object.defineProperty(arrObj, "property", {
- enumerable: true
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "property", 12, false, false, false);
- }
+var arrObj = [];
+
+Object.defineProperty(arrObj, "property", {
+ value: 12,
+ enumerable: false
+});
+try {
+ Object.defineProperty(arrObj, "property", {
+ enumerable: true
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "property", 12);
+
+ verifyNotWritable(arrObj, "property");
+
+ verifyNotEnumerable(arrObj, "property");
+
+ verifyNotConfigurable(arrObj, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-284.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-284.js
index a59e05361..0492a581e 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-284.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-284.js
@@ -11,25 +11,31 @@ description: >
data property of 'O', test TypeError is thrown when updating the
[[Configurable]] attribute value of 'name' which is defined as
non-configurable (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var arrObj = [];
-
- Object.defineProperty(arrObj, "property", {
- value: 12
- });
- try {
- Object.defineProperty(arrObj, "property", {
- configurable: true
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arrObj, "property", 12, false, false, false);
- }
+
+var arrObj = [];
+
+Object.defineProperty(arrObj, "property", {
+ value: 12
+});
+try {
+ Object.defineProperty(arrObj, "property", {
+ configurable: true
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "property", 12);
+
+ verifyNotWritable(arrObj, "property");
+
+ verifyNotEnumerable(arrObj, "property");
+
+ verifyNotConfigurable(arrObj, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-285.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-285.js
index 35bb914e3..88de72252 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-285.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-285.js
@@ -11,34 +11,40 @@ description: >
accessor property of 'O', test TypeError is thrown when updating
the [[Get]] attribute value of 'name' which is defined as
non-configurable (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var arrObj = [];
+var arrObj = [];
- function getFunc() {
- return 12;
- }
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
- Object.defineProperty(arrObj, "property", {
- get: getFunc,
- set: setFunc
- });
- try {
- Object.defineProperty(arrObj, "property", {
- get: function () {
- return 36;
- }
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "property", getFunc, setFunc, "setVerifyHelpProp", false, false);
+function getFunc() {
+ return 12;
+}
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
+Object.defineProperty(arrObj, "property", {
+ get: getFunc,
+ set: setFunc
+});
+try {
+ Object.defineProperty(arrObj, "property", {
+ get: function () {
+ return 36;
}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(arrObj, "property", getFunc());
+
+ verifyWritable(arrObj, "property", "setVerifyHelpProp");
+
+ verifyNotEnumerable(arrObj, "property");
+
+ verifyNotConfigurable(arrObj, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-286.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-286.js
index 05930b970..5c0884c06 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-286.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-286.js
@@ -11,28 +11,32 @@ description: >
accessor property of 'O', and 'desc' is accessor descriptor, test
TypeError is thrown when updating the [[Set]] attribute value of
'name' (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var arrObj = [];
-
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
- Object.defineProperty(arrObj, "property", {
- set: setFunc
- });
- try {
- Object.defineProperty(arrObj, "property", {
- set: function () {}
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "property", undefined, setFunc, "setVerifyHelpProp", false, false);
- }
+
+var arrObj = [];
+
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
+Object.defineProperty(arrObj, "property", {
+ set: setFunc
+});
+try {
+ Object.defineProperty(arrObj, "property", {
+ set: function () {}
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyWritable(arrObj, "property", "setVerifyHelpProp");
+
+ verifyNotEnumerable(arrObj, "property");
+
+ verifyNotConfigurable(arrObj, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-287.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-287.js
index a2e2cb8a7..474e8d5c7 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-287.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-287.js
@@ -11,29 +11,33 @@ description: >
accessor property of 'O', test TypeError is thrown when updating
the [[Enumerable]] attribute value of 'name' which is defined as
non-configurable (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var arrObj = [];
-
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
- Object.defineProperty(arrObj, "property", {
- set: setFunc,
- enumerable: false
- });
- try {
- Object.defineProperty(arrObj, "property", {
- enumerable: true
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "property", undefined, setFunc, "setVerifyHelpProp", false, false);
- }
+
+var arrObj = [];
+
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
+Object.defineProperty(arrObj, "property", {
+ set: setFunc,
+ enumerable: false
+});
+try {
+ Object.defineProperty(arrObj, "property", {
+ enumerable: true
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyWritable(arrObj, "property", "setVerifyHelpProp");
+
+ verifyNotEnumerable(arrObj, "property");
+
+ verifyNotConfigurable(arrObj, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-288.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-288.js
index 77a5fc240..41212c239 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-288.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-288.js
@@ -11,29 +11,33 @@ description: >
accessor property of 'O', test TypeError is thrown when updating
the [[Configurable]] attribute value of 'name' which is defined as
non-configurable (15.4.5.1 step 5)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var arrObj = [];
-
- function setFunc(value) {
- arrObj.setVerifyHelpProp = value;
- }
- Object.defineProperty(arrObj, "property", {
- set: setFunc,
- configurable: false
- });
- try {
- Object.defineProperty(arrObj, "property", {
- configurable: true
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arrObj, "property", undefined, setFunc, "setVerifyHelpProp", false, false);
- }
+
+var arrObj = [];
+
+function setFunc(value) {
+ arrObj.setVerifyHelpProp = value;
+}
+Object.defineProperty(arrObj, "property", {
+ set: setFunc,
+ configurable: false
+});
+try {
+ Object.defineProperty(arrObj, "property", {
+ configurable: true
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyWritable(arrObj, "property", "setVerifyHelpProp");
+
+ verifyNotEnumerable(arrObj, "property");
+
+ verifyNotConfigurable(arrObj, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-289-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-289-1.js
index 07b2729e3..15cae2a8b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-289-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-289-1.js
@@ -7,28 +7,34 @@
/*---
es5id: 15.2.3.6-4-289-1
description: >
- Object.defineProperty - 'O' is an Arguments object of a function
- that has formal parameters, 'name' is own property which is
- defined in both [[ParameterMap]] of 'O' and 'O', and is deleted
- afterwards, and 'desc' is data descriptor, test 'name' is
- redefined in 'O' with all correct attribute values (10.6
- [[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
----*/
+ Object.defineProperty - 'O' is an Arguments object of a function
+ that has formal parameters, 'name' is own property which is
+ defined in both [[ParameterMap]] of 'O' and 'O', and is deleted
+ afterwards, and 'desc' is data descriptor, test 'name' is
+ redefined in 'O' with all correct attribute values (10.6
+ [[DefineOwnProperty]] step 3)
+includes: [propertyHelper.js]
+ ---*/
-function testcase() {
- return (function (a, b, c) {
- delete arguments[0];
- Object.defineProperty(arguments, "0", {
- value: 10,
- writable: true,
- enumerable: true,
- configurable: true
- });
- var verifyFormal = a === 0;
- return dataPropertyAttributesAreCorrect(arguments, "0", 10, true, true, true) && verifyFormal;
- }(0, 1, 2));
+;(function (a, b, c) {
+ delete arguments[0];
+
+ Object.defineProperty(arguments, "0", {
+ value: 10,
+ writable: true,
+ enumerable: true,
+ configurable: true
+ });
+
+ if (a !== 0) {
+ $ERROR("Expected a === 0, actually " + a);
}
-runTestCase(testcase);
+
+ verifyEqualTo(arguments, "0", 10);
+
+ verifyWritable(arguments, "0");
+
+ verifyEnumerable(arguments, "0");
+
+ verifyConfigurable(arguments, "0");
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-289.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-289.js
index 997f3ef56..f66c10d37 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-289.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-289.js
@@ -11,21 +11,23 @@ description: >
property of 'O', and is deleted afterwards, and 'desc' is data
descriptor, test 'name' is redefined in 'O' with all correct
attribute values (10.6 [[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- delete arguments[0];
- Object.defineProperty(arguments, "0", {
- value: 10,
- writable: true,
- enumerable: true,
- configurable: true
- });
- return dataPropertyAttributesAreCorrect(arguments, "0", 10, true, true, true);
- }(0, 1, 2));
- }
-runTestCase(testcase);
+(function () {
+ delete arguments[0];
+ Object.defineProperty(arguments, "0", {
+ value: 10,
+ writable: true,
+ enumerable: true,
+ configurable: true
+ });
+ verifyEqualTo(arguments, "0", 10);
+
+ verifyWritable(arguments, "0");
+
+ verifyEnumerable(arguments, "0");
+
+ verifyConfigurable(arguments, "0");
+}(0, 1, 2));
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-290-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-290-1.js
index e76e4ae23..515c5e985 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-290-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-290-1.js
@@ -13,28 +13,32 @@ description: >
afterwards, and 'desc' is accessor descriptor, test 'name' is
redefined in 'O' with all correct attribute values (10.6
[[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- delete arguments[0];
- function getFunc() {
- return 10;
- }
- function setFunc(value) {
- this.setVerifyHelpProp = value;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- });
- var verifyFormal = a === 0;
- return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, setFunc, "setVerifyHelpProp", true, true) && verifyFormal;
- }(0, 1, 2));
+(function (a, b, c) {
+ delete arguments[0];
+ function getFunc() {
+ return 10;
}
-runTestCase(testcase);
+ function setFunc(value) {
+ this.setVerifyHelpProp = value;
+ }
+ Object.defineProperty(arguments, "0", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+ });
+ if (a !== 0) {
+ $ERROR('Expected a === 0, actually ' + a);
+ }
+
+ verifyEqualTo(arguments, "0", getFunc());
+
+ verifyWritable(arguments, "0", "setVerifyHelpProp");
+
+ verifyEnumerable(arguments, "0");
+
+ verifyConfigurable(arguments, "0");
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-290.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-290.js
index 0736bdf06..87fe260e0 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-290.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-290.js
@@ -11,27 +11,28 @@ description: >
property of 'O', and is deleted afterwards, and 'desc' is accessor
descriptor, test 'name' is redefined in 'O' with all correct
attribute values (10.6 [[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- delete arguments[0];
- function getFunc() {
- return 10;
- }
- function setFunc(value) {
- this.setVerifyHelpProp = value;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- });
- return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, setFunc, "setVerifyHelpProp", true, true);
- }(0, 1, 2));
+(function () {
+ delete arguments[0];
+ function getFunc() {
+ return 10;
}
-runTestCase(testcase);
+ function setFunc(value) {
+ this.setVerifyHelpProp = value;
+ }
+ Object.defineProperty(arguments, "0", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+ });
+ verifyEqualTo(arguments, "0", getFunc());
+
+ verifyWritable(arguments, "0", "setVerifyHelpProp");
+
+ verifyEnumerable(arguments, "0");
+
+ verifyConfigurable(arguments, "0");
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-291-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-291-1.js
index cc4ca1012..17e1248af 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-291-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-291-1.js
@@ -12,31 +12,33 @@ description: >
which is also defined in [[ParameterMap]] of 'O', and 'desc' is
accessor descriptor, test updating multiple attribute values of
'name' (10.6 [[DefineOwnProperty]] step 3 and 5.a.i)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- function getFunc1() {
- return 10;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc1,
- enumerable: true,
- configurable: true
- });
- function getFunc2() {
- return 20;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc2,
- enumerable: false,
- configurable: false
- });
- var verifyFormal = a === 0;
- return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc2, undefined, undefined, false, false) && verifyFormal;
- }(0, 1, 2));
+(function (a, b, c) {
+ function getFunc1() {
+ return 10;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "0", {
+ get: getFunc1,
+ enumerable: true,
+ configurable: true
+ });
+ function getFunc2() {
+ return 20;
+ }
+ Object.defineProperty(arguments, "0", {
+ get: getFunc2,
+ enumerable: false,
+ configurable: false
+ });
+ if (a !== 0) {
+ $ERROR('Expected a === 0, actually ' + a);
+ }
+
+ verifyEqualTo(arguments, "0", getFunc2());
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-291.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-291.js
index d15626609..be6a15731 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-291.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-291.js
@@ -11,30 +11,29 @@ description: >
accessor property of 'O', and 'desc' is accessor descriptor, test
updating multiple attribute values of 'name' (10.6
[[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- function getFunc1() {
- return 10;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc1,
- enumerable: true,
- configurable: true
- });
- function getFunc2() {
- return 20;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc2,
- enumerable: false,
- configurable: false
- });
- return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc2, undefined, undefined, false, false);
- }(0, 1, 2));
+(function () {
+ function getFunc1() {
+ return 10;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "0", {
+ get: getFunc1,
+ enumerable: true,
+ configurable: true
+ });
+ function getFunc2() {
+ return 20;
+ }
+ Object.defineProperty(arguments, "0", {
+ get: getFunc2,
+ enumerable: false,
+ configurable: false
+ });
+ verifyEqualTo(arguments, "0", getFunc2());
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-292-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-292-1.js
index 392578ffd..81810554b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-292-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-292-1.js
@@ -12,21 +12,27 @@ description: >
also defined in [[ParameterMap]] of 'O', and 'desc' is data
descriptor, test updating multiple attribute values of 'name'
(10.6 [[DefineOwnProperty]] step 3 and 5.b)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
+flags: [noStrict]
---*/
-function testcase() {
- return (function (a, b, c) {
- Object.defineProperty(arguments, "0", {
- value: 20,
- writable: false,
- enumerable: false,
- configurable: false
- });
- var verifyFormal = a === 20;
- return dataPropertyAttributesAreCorrect(arguments, "0", 20, false, false, false) && verifyFormal;
- }(0, 1, 2));
+(function (a, b, c) {
+ Object.defineProperty(arguments, "0", {
+ value: 20,
+ writable: false,
+ enumerable: false,
+ configurable: false
+ });
+
+ if (a !== 20) {
+ $ERROR('Expected a === 20, actually ' + a);
}
-runTestCase(testcase);
+
+ verifyEqualTo(arguments, "0", 20);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-292-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-292-2.js
new file mode 100644
index 000000000..312f82a29
--- /dev/null
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-292-2.js
@@ -0,0 +1,40 @@
+// Copyright (c) 2012 Ecma International. All rights reserved.
+// Ecma International makes this code available under the terms and conditions set
+// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+// "Use Terms"). Any redistribution of this code must retain the above
+// copyright and this notice and otherwise comply with the Use Terms.
+
+/*---
+es5id: 15.2.3.6-4-292-1
+description: >
+ Object.defineProperty - 'O' is an Arguments object of a function
+ that has formal parameters, 'name' is own property of 'O' which is
+ also defined in [[ParameterMap]] of 'O', and 'desc' is data
+ descriptor, test updating multiple attribute values of 'name'
+ (10.6 [[DefineOwnProperty]] step 3 and 5.b)
+includes: [propertyHelper.js]
+flags: [onlyStrict]
+---*/
+
+(function (a, b, c) {
+ "use strict";
+
+ Object.defineProperty(arguments, "0", {
+ value: 20,
+ writable: false,
+ enumerable: false,
+ configurable: false
+ });
+
+ if (a !== 0) {
+ $ERROR('Expected a === 0, actually ' + a);
+ }
+
+ verifyEqualTo(arguments, "0", 20);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-292.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-292.js
index 64d9d5de9..6aad654c3 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-292.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-292.js
@@ -11,20 +11,22 @@ description: >
data property of 'O', and 'desc' is data descriptor, test updating
multiple attribute values of 'name' (10.6 [[DefineOwnProperty]]
step 3)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "0", {
- value: 20,
- writable: false,
- enumerable: false,
- configurable: false
- });
- return dataPropertyAttributesAreCorrect(arguments, "0", 20, false, false, false);
- }(0, 1, 2));
- }
-runTestCase(testcase);
+(function () {
+ Object.defineProperty(arguments, "0", {
+ value: 20,
+ writable: false,
+ enumerable: false,
+ configurable: false
+ });
+ verifyEqualTo(arguments, "0", 20);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+}(0, 1, 2));
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-293-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-293-1.js
index d7d07da1d..f8fb8cc92 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-293-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-293-1.js
@@ -12,21 +12,23 @@ description: >
the [[Value]] attribute value of 'name' which is defined as
non-writable and configurable (10.6 [[DefineOwnProperty]] step 3
and 5b)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "0", {
- value: 10,
- writable: false
- });
- Object.defineProperty(arguments, "0", {
- value: 20
- });
- return dataPropertyAttributesAreCorrect(arguments, "0", 20, false, true, true);
- }(0, 1, 2));
- }
-runTestCase(testcase);
+(function () {
+ Object.defineProperty(arguments, "0", {
+ value: 10,
+ writable: false
+ });
+ Object.defineProperty(arguments, "0", {
+ value: 20
+ });
+ verifyEqualTo(arguments, "0", 20);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyEnumerable(arguments, "0");
+
+ verifyConfigurable(arguments, "0");
+}(0, 1, 2));
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-293-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-293-2.js
index d4659057b..5cfdd482b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-293-2.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-293-2.js
@@ -13,28 +13,40 @@ description: >
is thrown when updating the [[Value]] attribute value of 'name'
which is defined as unwritable and non-configurable (10.6
[[DefineOwnProperty]] step 4 and step 5b)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
+flags: [noStrict]
---*/
-function testcase() {
- return (function (a, b, c) {
- Object.defineProperty(arguments, "0", {
- value: 10,
- writable: false,
- enumerable: false,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- value: 20
- });
- } catch (e) {
- var verifyFormal = a === 10;
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false) && verifyFormal;
- }
- return false;
- }(0, 1, 2));
+(function (a, b, c) {
+ Object.defineProperty(arguments, "0", {
+ value: 10,
+ writable: false,
+ enumerable: false,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ value: 20
+ });
+ $ERROR("Expected an exception.");
+
+ } catch (e) {
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ verifyEqualTo(arguments, "0", 10);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (a !== 10) {
+ $ERROR('Expected "a === 10", actually ' + a);
+ }
+
}
-runTestCase(testcase);
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-293-3.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-293-3.js
index 91068d57c..1f51f9870 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-293-3.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-293-3.js
@@ -13,22 +13,27 @@ description: >
is not thrown when updating the [[Value]] attribute value of
'name' which is defined as non-writable and configurable (10.6
[[DefineOwnProperty]] step 3 and step 5.b)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
+flags: [noStrict]
---*/
-function testcase() {
- return (function (a, b, c) {
- Object.defineProperty(arguments, "0", {
- value: 10,
- writable: false,
- });
- Object.defineProperty(arguments, "0", {
- value: 20
- });
- var verifyFormal = a === 10;
- return dataPropertyAttributesAreCorrect(arguments, "0", 20, false, true, true) && verifyFormal;
- }(0, 1, 2));
+(function (a, b, c) {
+ Object.defineProperty(arguments, "0", {
+ value: 10,
+ writable: false,
+ });
+ Object.defineProperty(arguments, "0", {
+ value: 20
+ });
+ if (a !== 10) {
+ $ERROR('Expected "a === 10", actually ' + a);
}
-runTestCase(testcase);
+
+ verifyEqualTo(arguments, "0", 20);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyEnumerable(arguments, "0");
+
+ verifyConfigurable(arguments, "0");
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-293-4.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-293-4.js
new file mode 100644
index 000000000..5296f3f3f
--- /dev/null
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-293-4.js
@@ -0,0 +1,39 @@
+// Copyright (c) 2012 Ecma International. All rights reserved.
+// Ecma International makes this code available under the terms and conditions set
+// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
+// "Use Terms"). Any redistribution of this code must retain the above
+// copyright and this notice and otherwise comply with the Use Terms.
+
+/*---
+es5id: 15.2.3.6-4-293-4
+description: >
+ Object.defineProperty - 'O' is an Arguments object of a function
+ that has formal parameters, 'name' is own data property of 'O'
+ which is also defined in [[ParameterMap]] of 'O', test TypeError
+ is not thrown when updating the [[Value]] attribute value of
+ 'name' which is defined as non-writable and configurable (10.6
+ [[DefineOwnProperty]] step 3 and step 5.b)
+includes: [propertyHelper.js]
+flags: [onlyStrict]
+---*/
+
+(function (a, b, c) {
+ Object.defineProperty(arguments, "0", {
+ value: 10,
+ writable: false,
+ });
+ Object.defineProperty(arguments, "0", {
+ value: 20
+ });
+ if (a !== 0) {
+ $ERROR('Expected "a === 0", actually ' + a);
+ }
+
+ verifyEqualTo(arguments, "0", 20);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyEnumerable(arguments, "0");
+
+ verifyConfigurable(arguments, "0");
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-293.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-293.js
index a24456bad..767d96531 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-293.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-293.js
@@ -12,27 +12,33 @@ description: >
[[Value]] attribute value of 'name' which is defined as
non-writable and non-configurable (10.6 [[DefineOwnProperty]] step
3)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "0", {
- value: 10,
- writable: false,
- enumerable: false,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- value: 20
- });
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false);
- }
- return false;
- }(0, 1, 2));
+(function () {
+ Object.defineProperty(arguments, "0", {
+ value: 10,
+ writable: false,
+ enumerable: false,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ value: 20
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "0", 10);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-294-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-294-1.js
index 100ec52e1..4bc30b1f7 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-294-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-294-1.js
@@ -13,28 +13,41 @@ description: >
is thrown when updating the [[Writable]] attribute value of 'name'
which is defined as non-configurable (10.6 [[DefineOwnProperty]]
step 4 and 5b)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
+flags: [noStrict]
---*/
-function testcase() {
- return (function (a, b, c) {
- Object.defineProperty(arguments, "0", {
- value: 10,
- writable: false,
- enumerable: false,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- writable: true
- });
- } catch (e) {
- var verifyFormal = a === 10;
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false) && verifyFormal;
- }
- return false;
- }(0, 1, 2));
+(function (a, b, c) {
+ Object.defineProperty(arguments, "0", {
+ value: 10,
+ writable: false,
+ enumerable: false,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ writable: true
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ verifyEqualTo(arguments, "0", 10);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (a !== 10) {
+ $ERROR('Expected "a === 10", actually ' + a);
+ }
+
}
-runTestCase(testcase);
+
+}(0, 1, 2));
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-294.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-294.js
index 5b82a901a..44566f5ce 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-294.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-294.js
@@ -11,27 +11,33 @@ description: >
data property of 'O', test TypeError is thrown when updating the
[[Writable]] attribute value of 'name' which is defined as
non-configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "0", {
- value: 10,
- writable: false,
- enumerable: false,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- writable: true
- });
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false);
- }
- return false;
- }(0, 1, 2));
+(function () {
+ Object.defineProperty(arguments, "0", {
+ value: 10,
+ writable: false,
+ enumerable: false,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ writable: true
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "0", 10);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-295-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-295-1.js
index c485e86c6..d8c53d426 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-295-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-295-1.js
@@ -13,28 +13,38 @@ description: >
is thrown when updating the [[Enumerable]] attribute value of
'name' which is defined as non-configurable (10.6
[[DefineOwnProperty]] step 4 and step 5b)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
+flags: [noStrict]
---*/
-function testcase() {
- return (function (a, b, c) {
- Object.defineProperty(arguments, "0", {
- value: 10,
- writable: false,
- enumerable: true,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- enumerable: false
- });
- } catch (e) {
- var verifyFormal = a === 10;
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, true, false) && verifyFormal;
- }
- return false;
- }(0, 1, 2));
+
+(function (a, b, c) {
+ Object.defineProperty(arguments, "0", {
+ value: 10,
+ writable: false,
+ enumerable: true,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ enumerable: false
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ verifyEqualTo(arguments, "0", 10);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (a !== 10) {
+ $ERROR('Expected "a === 10", actually ' + a);
+ }
}
-runTestCase(testcase);
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-295.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-295.js
index 4965a2aa7..a15919c64 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-295.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-295.js
@@ -11,27 +11,33 @@ description: >
data property of 'O', test TypeError is thrown when updating the
[[Enumerable]] attribute value of 'name' which is defined as
non-configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "0", {
- value: 10,
- writable: false,
- enumerable: true,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- enumerable: false
- });
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, true, false);
- }
- return false;
- }(0, 1, 2));
+(function () {
+ Object.defineProperty(arguments, "0", {
+ value: 10,
+ writable: false,
+ enumerable: true,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ enumerable: false
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "0", 10);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-296-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-296-1.js
index 570a234da..ff03da101 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-296-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-296-1.js
@@ -13,28 +13,37 @@ description: >
is thrown when updating the [[Configurable]] attribute value of
'name' which is defined as non-configurable (10.6
[[DefineOwnProperty]] step 4 and step 5b)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
+flags: [noStrict]
---*/
-function testcase() {
- return (function (a, b, c) {
- Object.defineProperty(arguments, "0", {
- value: 10,
- writable: false,
- enumerable: false,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- configurable: true
- });
- } catch (e) {
- var verifyFormal = a === 10;
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false) && verifyFormal;
- }
- return false;
- }(0, 1, 2));
+(function (a, b, c) {
+ Object.defineProperty(arguments, "0", {
+ value: 10,
+ writable: false,
+ enumerable: false,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ configurable: true
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ verifyEqualTo(arguments, "0", 10);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (a !== 10) {
+ $ERROR('Expected "a === 10", actually ' + a);
+ }
}
-runTestCase(testcase);
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-296.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-296.js
index 45ee0515f..ec812f9c1 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-296.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-296.js
@@ -11,27 +11,33 @@ description: >
data property of 'O', test TypeError is thrown when updating the
[[Configurable]] attribute value of 'name' which is defined as
non-configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "0", {
- value: 10,
- writable: false,
- enumerable: false,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- configurable: true
- });
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false);
- }
- return false;
- }(0, 1, 2));
+(function () {
+ Object.defineProperty(arguments, "0", {
+ value: 10,
+ writable: false,
+ enumerable: false,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ configurable: true
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "0", 10);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-297-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-297-1.js
index d4fe4f15f..a5ac8f351 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-297-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-297-1.js
@@ -13,33 +13,40 @@ description: >
is thrown when updating the [[Get]] attribute value of 'name'
which is defined as non-configurable (10.6 [[DefineOwnProperty]]
step 4 and step 5a)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- function getFunc1() {
- return 10;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc1,
- enumerable: false,
- configurable: false
- });
- function getFunc2() {
- return 20;
- }
- try {
- Object.defineProperty(arguments, "0", {
- get: getFunc2
- });
- } catch (e) {
- var verifyFormal = a === 0;
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc1, undefined, undefined, false, false) && verifyFormal;
- }
- return false;
- }(0, 1, 2));
+(function (a, b, c) {
+ function getFunc1() {
+ return 10;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "0", {
+ get: getFunc1,
+ enumerable: false,
+ configurable: false
+ });
+ function getFunc2() {
+ return 20;
+ }
+ try {
+ Object.defineProperty(arguments, "0", {
+ get: getFunc2
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ if (a !== 0) {
+ $ERROR('Expected a === 0, actually ' + a);
+ }
+
+ verifyEqualTo(arguments, "0", getFunc1());
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ }
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-297.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-297.js
index 6544efa66..7af355e33 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-297.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-297.js
@@ -11,32 +11,36 @@ description: >
accessor property of 'O', test TypeError is thrown when updating
the [[Get]] attribute value of 'name' which is defined as
non-configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- function getFunc1() {
- return 10;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc1,
- enumerable: false,
- configurable: false
- });
- function getFunc2() {
- return 20;
- }
- try {
- Object.defineProperty(arguments, "0", {
- get: getFunc2
- });
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc1, undefined, undefined, false, false);
- }
- return false;
- }(0, 1, 2));
+(function () {
+ function getFunc1() {
+ return 10;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "0", {
+ get: getFunc1,
+ enumerable: false,
+ configurable: false
+ });
+ function getFunc2() {
+ return 20;
+ }
+ try {
+ Object.defineProperty(arguments, "0", {
+ get: getFunc2
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "0", getFunc1());
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ }
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-298-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-298-1.js
index 6e701c1e2..8e6244fff 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-298-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-298-1.js
@@ -13,35 +13,41 @@ description: >
is thrown when updating the [[Set]] attribute value of 'name'
which is defined as non-configurable (10.6 [[DefineOwnProperty]]
steps 4 and 5a)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- function getFunc() {
- return 10;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc,
- set: undefined,
- enumerable: false,
- configurable: false
- });
- function setFunc(value) {
- this.setVerifyHelpProp = value;
- }
- try {
- Object.defineProperty(arguments, "0", {
- set: setFunc
- });
- } catch (e) {
- var verifyFormal = a === 0;
- return e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, false, false) && verifyFormal;
- }
- return false;
- }(0, 1, 2));
+(function (a, b, c) {
+ function getFunc() {
+ return 10;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "0", {
+ get: getFunc,
+ set: undefined,
+ enumerable: false,
+ configurable: false
+ });
+ function setFunc(value) {
+ this.setVerifyHelpProp = value;
+ }
+ try {
+ Object.defineProperty(arguments, "0", {
+ set: setFunc
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ if (a !== 0) {
+ $ERROR('Expected a === 0, actually ' + a);
+ }
+
+ verifyEqualTo(arguments, "0", getFunc());
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ }
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-298.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-298.js
index 1e3ac280d..628dd20af 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-298.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-298.js
@@ -11,33 +11,37 @@ description: >
accessor property of 'O', test TypeError is thrown when updating
the [[Set]] attribute value of 'name' which is defined as
non-configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- function getFunc() {
- return 10;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc,
- set: undefined,
- enumerable: false,
- configurable: false
- });
- function setFunc(value) {
- this.setVerifyHelpProp = value;
- }
- try {
- Object.defineProperty(arguments, "0", {
- set: setFunc
- });
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, false, false);
- }
- return false;
- }(0, 1, 2));
+(function () {
+ function getFunc() {
+ return 10;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "0", {
+ get: getFunc,
+ set: undefined,
+ enumerable: false,
+ configurable: false
+ });
+ function setFunc(value) {
+ this.setVerifyHelpProp = value;
+ }
+ try {
+ Object.defineProperty(arguments, "0", {
+ set: setFunc
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "0", getFunc());
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ }
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-299-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-299-1.js
index 38ce1f45b..160f649ef 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-299-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-299-1.js
@@ -13,31 +13,36 @@ description: >
is thrown when updating the [[Enumerable]] attribute value of
'name' which is defined as non-configurable (10.6
[[DefineOwnProperty]] steps 4 and 5a)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- function getFunc() {
- return 10;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc,
- enumerable: true,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- enumerable: false
- });
- } catch (e) {
- var verifyFormal = a === 0;
- return e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false) && verifyFormal;
- }
- return false;
- }(0, 1, 2));
+(function (a, b, c) {
+ function getFunc() {
+ return 10;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "0", {
+ get: getFunc,
+ enumerable: true,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ enumerable: false
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ if (a !== 0) {
+ $ERROR('Expected a === 0, actually ' + a);
+ }
+ verifyEqualTo(arguments, "0", getFunc());
+
+ verifyEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ }
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-299.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-299.js
index fa0817b65..a6721b999 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-299.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-299.js
@@ -11,29 +11,33 @@ description: >
accessor property of 'O', test TypeError is thrown when updating
the [[Enumerable]] attribute value of 'name' which is defined as
non-configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- function getFunc() {
- return 10;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc,
- enumerable: true,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- enumerable: false
- });
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false);
- }
- return false;
- }(0, 1, 2));
+(function () {
+ function getFunc() {
+ return 10;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "0", {
+ get: getFunc,
+ enumerable: true,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ enumerable: false
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "0", getFunc());
+
+ verifyEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ }
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-300-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-300-1.js
index 8ad3eae8f..c48975ff1 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-300-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-300-1.js
@@ -13,31 +13,36 @@ description: >
is thrown when updating the [[Configurable]] attribute value of
'name' which is defined as non-configurable (10.6
[[DefineOwnProperty]] step 4 and step 5a)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- function getFunc() {
- return 0;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc,
- enumerable: true,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- configurable: true
- });
- } catch (e) {
- var verifyFormal = a === 0;
- return e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false) && verifyFormal;
- }
- return false;
- }(0, 1, 2));
+(function (a, b, c) {
+ function getFunc() {
+ return 0;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "0", {
+ get: getFunc,
+ enumerable: true,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ configurable: true
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ if (a !== 0) {
+ $ERROR('Expected a === 0, actually ' + a);
+ }
+ verifyEqualTo(arguments, "0", getFunc());
+
+ verifyEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ }
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-300.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-300.js
index c126506f1..61f4ecc5a 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-300.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-300.js
@@ -11,29 +11,33 @@ description: >
accessor property of 'O', test TypeError is thrown when updating
the [[Configurable]] attribute value of 'name' which is defined as
non-configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- function getFunc() {
- return 10;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc,
- enumerable: true,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- configurable: true
- });
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false);
- }
- return false;
- }(0, 1, 2));
+(function () {
+ function getFunc() {
+ return 10;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "0", {
+ get: getFunc,
+ enumerable: true,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ configurable: true
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "0", getFunc());
+
+ verifyEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ }
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-301-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-301-1.js
index 6b1ec784e..10b1e63ec 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-301-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-301-1.js
@@ -12,22 +12,26 @@ description: >
'O', and 'desc' is data descriptor, test 'name' is defined in 'O'
with all correct attribute values (10.6 [[DefineOwnProperty]] step
3)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- delete arguments[0];
- Object.defineProperty(arguments, "0", {
- value: 10,
- writable: false,
- enumerable: false,
- configurable: false
- });
- var verifyFormal = a === 0;
- return dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false) && verifyFormal;
- }(0, 1, 2));
+(function (a, b, c) {
+ delete arguments[0];
+ Object.defineProperty(arguments, "0", {
+ value: 10,
+ writable: false,
+ enumerable: false,
+ configurable: false
+ });
+ if (a !== 0) {
+ $ERROR("Expected a === 0, actually " + a);
}
-runTestCase(testcase);
+ verifyEqualTo(arguments, "0", 10);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+}(0, 1, 2));
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-301.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-301.js
index 84af90c00..1708a50cd 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-301.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-301.js
@@ -12,21 +12,23 @@ description: >
[[ParameterMap]] of 'O', and 'desc' is data descriptor, test
'name' is defined in 'O' with all correct attribute values (10.6
[[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- delete arguments[0];
- Object.defineProperty(arguments, "0", {
- value: 10,
- writable: false,
- enumerable: false,
- configurable: false
- });
- return dataPropertyAttributesAreCorrect(arguments, "0", 10, false, false, false);
- }(0, 1, 2));
- }
-runTestCase(testcase);
+(function () {
+ delete arguments[0];
+ Object.defineProperty(arguments, "0", {
+ value: 10,
+ writable: false,
+ enumerable: false,
+ configurable: false
+ });
+ verifyEqualTo(arguments, "0", 10);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+}(0, 1, 2));
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-302-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-302-1.js
index f64d1b88b..86faf6022 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-302-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-302-1.js
@@ -13,28 +13,31 @@ description: >
accessor descriptor, test 'name' is defined in 'O' with all
correct attribute values (10.6 [[DefineOwnProperty]] step 3 and
step 5a)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- delete arguments[0];
- function getFunc() {
- return 10;
- }
- function setFunc(value) {
- this.setVerifyHelpProp = value;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc,
- set: setFunc,
- enumerable: false,
- configurable: false
- });
- var verifyFormal = a === 0;
- return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, setFunc, "setVerifyHelpProp", false, false) && verifyFormal;
- }(0, 1, 2));
+(function (a, b, c) {
+ delete arguments[0];
+ function getFunc() {
+ return 10;
}
-runTestCase(testcase);
+ function setFunc(value) {
+ this.setVerifyHelpProp = value;
+ }
+ Object.defineProperty(arguments, "0", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: false,
+ configurable: false
+ });
+ if (a !== 0) {
+ $ERROR('Expected a === 0, actually ' + a);
+ }
+ verifyEqualTo(arguments, "0", getFunc());
+
+ verifyWritable(arguments, "0", "setVerifyHelpProp");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-302.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-302.js
index 030cbe3dd..cb92c27f8 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-302.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-302.js
@@ -12,27 +12,28 @@ description: >
'O', and 'desc' is accessor descriptor, test 'name' is defined in
'O' with all correct attribute values (10.6 [[DefineOwnProperty]]
step 3)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- delete arguments[0];
- function getFunc() {
- return 10;
- }
- function setFunc(value) {
- this.setVerifyHelpProp = value;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc,
- set: setFunc,
- enumerable: false,
- configurable: false
- });
- return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, setFunc, "setVerifyHelpProp", false, false);
- }(0, 1, 2));
+(function () {
+ delete arguments[0];
+ function getFunc() {
+ return 10;
}
-runTestCase(testcase);
+ function setFunc(value) {
+ this.setVerifyHelpProp = value;
+ }
+ Object.defineProperty(arguments, "0", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: false,
+ configurable: false
+ });
+ verifyEqualTo(arguments, "0", getFunc());
+
+ verifyWritable(arguments, "0", "setVerifyHelpProp");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+}(0, 1, 2));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-303.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-303.js
index 4cc9b8b56..215818404 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-303.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-303.js
@@ -12,30 +12,29 @@ description: >
[[ParameterMap]] of 'O', and 'desc' is accessor descriptor, test
updating multiple attribute values of 'name' (10.6
[[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- function getFunc1() {
- return 10;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc1,
- enumerable: true,
- configurable: true
- });
- function getFunc2() {
- return 20;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc2,
- enumerable: false,
- configurable: false
- });
- return accessorPropertyAttributesAreCorrect(arguments, "0", getFunc2, undefined, undefined, false, false);
- }());
+(function () {
+ function getFunc1() {
+ return 10;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "0", {
+ get: getFunc1,
+ enumerable: true,
+ configurable: true
+ });
+ function getFunc2() {
+ return 20;
+ }
+ Object.defineProperty(arguments, "0", {
+ get: getFunc2,
+ enumerable: false,
+ configurable: false
+ });
+ verifyEqualTo(arguments, "0", getFunc2());
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+}());
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-304.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-304.js
index 0af11ce92..5bf3c965b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-304.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-304.js
@@ -12,20 +12,22 @@ description: >
[[ParameterMap]] of 'O', and 'desc' is data descriptor, test
updating multiple attribute values of 'name' (10.6
[[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "0", {
- value: 20,
- writable: false,
- enumerable: false,
- configurable: false
- });
- return dataPropertyAttributesAreCorrect(arguments, "0", 20, false, false, false);
- }());
- }
-runTestCase(testcase);
+(function () {
+ Object.defineProperty(arguments, "0", {
+ value: 20,
+ writable: false,
+ enumerable: false,
+ configurable: false
+ });
+ verifyEqualTo(arguments, "0", 20);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+}());
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-305.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-305.js
index a16f290b5..1d788184b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-305.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-305.js
@@ -12,27 +12,33 @@ description: >
[[ParameterMap]] of 'O', test TypeError is thrown when updating
the [[Value]] attribute value of 'name' which is not writable and
not configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "0", {
- value: 0,
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperty(arguments, "0", {
- value: 10
- });
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 0, false, false, false);
- }
- return false;
- }());
+(function () {
+ Object.defineProperty(arguments, "0", {
+ value: 0,
+ writable: false,
+ configurable: false
+ });
+
+ try {
+ Object.defineProperty(arguments, "0", {
+ value: 10
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "0", 0);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}());
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-306.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-306.js
index a9f64c1dd..ba9d9b100 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-306.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-306.js
@@ -12,27 +12,33 @@ description: >
[[ParameterMap]] of 'O', test TypeError is thrown when updating
the [[Writable]] attribute value of 'name' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "0", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- writable: true
- });
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 0, false, false, false);
- }
- return false;
- }());
+(function () {
+ Object.defineProperty(arguments, "0", {
+ value: 0,
+ writable: false,
+ enumerable: false,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ writable: true
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "0", 0);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}());
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-307.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-307.js
index 933c5503a..3a63380cc 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-307.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-307.js
@@ -12,27 +12,33 @@ description: >
[[ParameterMap]] of 'O', test TypeError is thrown when updating
the [[Enumerable]] attribute value of 'name' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "0", {
- value: 0,
- writable: false,
- enumerable: true,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- enumerable: false
- });
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 0, false, true, false);
- }
- return false;
- }());
+(function () {
+ Object.defineProperty(arguments, "0", {
+ value: 0,
+ writable: false,
+ enumerable: true,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ enumerable: false
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "0", 0);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}());
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-308.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-308.js
index 68decc8ec..54c2560eb 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-308.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-308.js
@@ -12,27 +12,33 @@ description: >
[[ParameterMap]] of 'O', test TypeError is thrown when updating
the [[Configurable]] attribute value of 'name' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "0", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- configurable: true
- });
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(arguments, "0", 0, false, false, false);
- }
- return false;
- }());
+(function () {
+ Object.defineProperty(arguments, "0", {
+ value: 0,
+ writable: false,
+ enumerable: false,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ configurable: true
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "0", 0);
+
+ verifyNotWritable(arguments, "0");
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}());
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-309.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-309.js
index 5fda8e75c..db14b5bed 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-309.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-309.js
@@ -12,32 +12,36 @@ description: >
[[ParameterMap]] of 'O', test TypeError is thrown when updating
the [[Get]] attribute value of 'name' which is not configurable
(10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- function getFunc1() {
- return 0;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc1,
- enumerable: false,
- configurable: false
- });
- function getFunc2() {
- return 10;
- }
- try {
- Object.defineProperty(arguments, "0", {
- get: getFunc2
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc1, undefined, undefined, false, false);
- }
- }());
+(function () {
+ function getFunc1() {
+ return 0;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "0", {
+ get: getFunc1,
+ enumerable: false,
+ configurable: false
+ });
+ function getFunc2() {
+ return 10;
+ }
+ try {
+ Object.defineProperty(arguments, "0", {
+ get: getFunc2
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "0", getFunc1());
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ }
+}());
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-310.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-310.js
index e37e898cf..6d82c2650 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-310.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-310.js
@@ -12,33 +12,37 @@ description: >
[[ParameterMap]] of 'O', test TypeError is thrown when updating
the [[Set]] attribute value of 'name' which is not configurable
(10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- function getFunc() {
- return 0;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc,
- set: undefined,
- enumerable: false,
- configurable: false
- });
- function setFunc(value) {
- this.setVerifyHelpProp = value;
- }
- try {
- Object.defineProperty(arguments, "0", {
- set: setFunc
- });
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, false, false);
- }
- return false;
- }());
+(function () {
+ function getFunc() {
+ return 0;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "0", {
+ get: getFunc,
+ set: undefined,
+ enumerable: false,
+ configurable: false
+ });
+ function setFunc(value) {
+ this.setVerifyHelpProp = value;
+ }
+ try {
+ Object.defineProperty(arguments, "0", {
+ set: setFunc
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "0", getFunc());
+
+ verifyNotEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ }
+}());
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-311.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-311.js
index 2c267d325..55652b21c 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-311.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-311.js
@@ -12,29 +12,33 @@ description: >
[[ParameterMap]] of 'O', test TypeError is thrown when updating
the [[Enumerable]] attribute value of 'name' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- function getFunc() {
- return 0;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc,
- enumerable: true,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- enumerable: false
- });
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false);
- }
- return false;
- }());
+(function () {
+ function getFunc() {
+ return 0;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "0", {
+ get: getFunc,
+ enumerable: true,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ enumerable: false
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "0", getFunc());
+
+ verifyEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ }
+}());
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-312.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-312.js
index 2ff370650..779971a74 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-312.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-312.js
@@ -12,29 +12,32 @@ description: >
[[ParameterMap]] of 'O', test TypeError is thrown when updating
the [[Configurable]] attribute value of 'name' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- function getFunc() {
- return 0;
- }
- Object.defineProperty(arguments, "0", {
- get: getFunc,
- enumerable: true,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "0", {
- configurable: true
- });
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(arguments, "0", getFunc, undefined, undefined, true, false);
- }
- return false;
- }());
+(function () {
+ function getFunc() {
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "0", {
+ get: getFunc,
+ enumerable: true,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "0", {
+ configurable: true
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "0", getFunc());
+
+ verifyEnumerable(arguments, "0");
+
+ verifyNotConfigurable(arguments, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ }
+}());
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-313-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-313-1.js
index 94b29a6e3..48f7ad4c5 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-313-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-313-1.js
@@ -11,20 +11,22 @@ description: >
that has formal parameters, 'P' is own property, and 'desc' is
data descriptor, test 'P' is defined in 'O' with all correct
attribute values (10.6 [[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- Object.defineProperty(arguments, "genericProperty", {
- value: 1001,
- writable: true,
- enumerable: true,
- configurable: true
- });
- return dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1001, true, true, true);
- }(1, 2, 3));
- }
-runTestCase(testcase);
+(function (a, b, c) {
+ Object.defineProperty(arguments, "genericProperty", {
+ value: 1001,
+ writable: true,
+ enumerable: true,
+ configurable: true
+ });
+ verifyEqualTo(arguments, "genericProperty", 1001);
+
+ verifyWritable(arguments, "genericProperty");
+
+ verifyEnumerable(arguments, "genericProperty");
+
+ verifyConfigurable(arguments, "genericProperty");
+}(1, 2, 3));
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-313.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-313.js
index 1061ac675..3157bc48a 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-313.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-313.js
@@ -11,20 +11,22 @@ description: >
property, and 'desc' is data descriptor, test 'P' is defined in
'O' with all correct attribute values (10.6 [[DefineOwnProperty]]
step 3)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "genericProperty", {
- value: 1001,
- writable: true,
- enumerable: true,
- configurable: true
- });
- return dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1001, true, true, true);
- }(1, 2, 3));
- }
-runTestCase(testcase);
+(function () {
+ Object.defineProperty(arguments, "genericProperty", {
+ value: 1001,
+ writable: true,
+ enumerable: true,
+ configurable: true
+ });
+ verifyEqualTo(arguments, "genericProperty", 1001);
+
+ verifyWritable(arguments, "genericProperty");
+
+ verifyEnumerable(arguments, "genericProperty");
+
+ verifyConfigurable(arguments, "genericProperty");
+}(1, 2, 3));
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-314-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-314-1.js
index 11dcfd9a0..26d60af34 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-314-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-314-1.js
@@ -11,26 +11,27 @@ description: >
that has formal parameters, 'P' is property, and 'desc' is
accessor descriptor, test 'P' is defined in 'O' with all correct
attribute values (10.6 [[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- function getFunc() {
- return "getFunctionString";
- }
- function setFunc(value) {
- this.testgetFunction = value;
- }
- Object.defineProperty(arguments, "genericProperty", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- });
- return accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "testgetFunction", true, true);
- }(1, 2, 3));
+(function (a, b, c) {
+ function getFunc() {
+ return "getFunctionString";
}
-runTestCase(testcase);
+ function setFunc(value) {
+ this.testgetFunction = value;
+ }
+ Object.defineProperty(arguments, "genericProperty", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+ });
+ verifyEqualTo(arguments, "genericProperty", getFunc());
+
+ verifyWritable(arguments, "genericProperty", "testgetFunction");
+
+ verifyEnumerable(arguments, "genericProperty");
+
+ verifyConfigurable(arguments, "genericProperty");
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-314.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-314.js
index a82c9fe4e..1072420a0 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-314.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-314.js
@@ -11,26 +11,27 @@ description: >
property, and 'desc' is accessor descriptor, test 'P' is defined
in 'O' with all correct attribute values (10.6
[[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- function getFunc() {
- return "getFunctionString";
- }
- function setFunc(value) {
- this.testgetFunction = value;
- }
- Object.defineProperty(arguments, "genericProperty", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- });
- return accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "testgetFunction", true, true);
- }(1, 2, 3));
+(function () {
+ function getFunc() {
+ return "getFunctionString";
}
-runTestCase(testcase);
+ function setFunc(value) {
+ this.testgetFunction = value;
+ }
+ Object.defineProperty(arguments, "genericProperty", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+ });
+ verifyEqualTo(arguments, "genericProperty", getFunc());
+
+ verifyWritable(arguments, "genericProperty", "testgetFunction");
+
+ verifyEnumerable(arguments, "genericProperty");
+
+ verifyConfigurable(arguments, "genericProperty");
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-315-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-315-1.js
index 934c465e4..82c7cb360 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-315-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-315-1.js
@@ -11,37 +11,41 @@ description: >
that has formal parameters, 'P' is own accessor property of 'O',
and 'desc' is accessor descriptor, test updating multiple
attribute values of 'P' (10.6 [[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- Object.defineProperty(arguments, "genericProperty", {
- get: function () {
- return 1001;
- },
- set: function (value) {
- this.testgetFunction1 = value;
- },
- enumerable: true,
- configurable: true
- });
- function getFunc() {
- return "getFunctionString";
- }
- function setFunc(value) {
- this.testgetFunction = value;
- }
- Object.defineProperty(arguments, "genericProperty", {
- get: getFunc,
- set: setFunc,
- enumerable: false,
- configurable: false
- });
- var verifyFormal = c === 3;
- return accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "testgetFunction", false, false) && verifyFormal;
- }(1, 2, 3));
+(function (a, b, c) {
+ Object.defineProperty(arguments, "genericProperty", {
+ get: function () {
+ return 1001;
+ },
+ set: function (value) {
+ this.testgetFunction1 = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ function getFunc() {
+ return "getFunctionString";
}
-runTestCase(testcase);
+ function setFunc(value) {
+ this.testgetFunction = value;
+ }
+ Object.defineProperty(arguments, "genericProperty", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: false,
+ configurable: false
+ });
+ if (c !== 3) {
+ $ERROR('Expected c === 3, actually ' + c);
+ }
+
+ verifyEqualTo(arguments, "genericProperty", getFunc());
+
+ verifyWritable(arguments, "genericProperty", "testgetFunction");
+
+ verifyNotEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-315.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-315.js
index b999c2634..980da213f 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-315.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-315.js
@@ -11,36 +11,37 @@ description: >
own accessor property of 'O', and 'desc' is accessor descriptor,
test updating multiple attribute values of 'P' (10.6
[[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "genericProperty", {
- get: function () {
- return 1001;
- },
- set: function (value) {
- this.testgetFunction1 = value;
- },
- enumerable: true,
- configurable: true
- });
- function getFunc() {
- return "getFunctionString";
- }
- function setFunc(value) {
- this.testgetFunction = value;
- }
- Object.defineProperty(arguments, "genericProperty", {
- get: getFunc,
- set: setFunc,
- enumerable: false,
- configurable: false
- });
- return accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "testgetFunction", false, false);
- }(1, 2, 3));
+(function () {
+ Object.defineProperty(arguments, "genericProperty", {
+ get: function () {
+ return 1001;
+ },
+ set: function (value) {
+ this.testgetFunction1 = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ function getFunc() {
+ return "getFunctionString";
}
-runTestCase(testcase);
+ function setFunc(value) {
+ this.testgetFunction = value;
+ }
+ Object.defineProperty(arguments, "genericProperty", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: false,
+ configurable: false
+ });
+ verifyEqualTo(arguments, "genericProperty", getFunc());
+
+ verifyWritable(arguments, "genericProperty", "testgetFunction");
+
+ verifyNotEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-316-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-316-1.js
index 4f9b50861..5ffa599e0 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-316-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-316-1.js
@@ -11,25 +11,27 @@ description: >
that has formal parameters, 'P' is own data property of 'O', and
'desc' is data descriptor, test updating multiple attribute values
of 'P' (10.6 [[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- Object.defineProperty(arguments, "genericProperty", {
- value: 1001,
- writable: true,
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(arguments, "genericProperty", {
- value: 1002,
- enumerable: false,
- configurable: false
- });
- return dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1002, true, false, false);
- }(1, 2, 3));
- }
-runTestCase(testcase);
+(function (a, b, c) {
+ Object.defineProperty(arguments, "genericProperty", {
+ value: 1001,
+ writable: true,
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(arguments, "genericProperty", {
+ value: 1002,
+ enumerable: false,
+ configurable: false
+ });
+ verifyEqualTo(arguments, "genericProperty", 1002);
+
+ verifyWritable(arguments, "genericProperty");
+
+ verifyNotEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+}(1, 2, 3));
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-316.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-316.js
index c12cf363c..f72c0bc9c 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-316.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-316.js
@@ -11,25 +11,27 @@ description: >
own data property of 'O', and 'desc' is data descriptor, test
updating multiple attribute values of 'P' (10.6
[[DefineOwnProperty]] step 3)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "genericProperty", {
- value: 1001,
- writable: true,
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(arguments, "genericProperty", {
- value: 1002,
- enumerable: false,
- configurable: false
- });
- return dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1002, true, false, false);
- }(1, 2, 3));
- }
-runTestCase(testcase);
+(function () {
+ Object.defineProperty(arguments, "genericProperty", {
+ value: 1001,
+ writable: true,
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(arguments, "genericProperty", {
+ value: 1002,
+ enumerable: false,
+ configurable: false
+ });
+ verifyEqualTo(arguments, "genericProperty", 1002);
+
+ verifyWritable(arguments, "genericProperty");
+
+ verifyNotEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+}(1, 2, 3));
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-317-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-317-1.js
index 67f92c911..a518f7efb 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-317-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-317-1.js
@@ -12,28 +12,36 @@ description: >
TypeError is thrown when updating the [[Value]] attribute value of
'P' which is not writable and not configurable (10.6
[[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- Object.defineProperty(arguments, "genericProperty", {
- value: 1001,
- writable: false,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "genericProperty", {
- value: 1002
- });
- } catch (e) {
- var verifyFormal = b === 2;
- return e instanceof TypeError &&
- dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1001, false, false, false) && verifyFormal;
- }
- return false;
- }(1, 2, 3));
+(function (a, b, c) {
+ Object.defineProperty(arguments, "genericProperty", {
+ value: 1001,
+ writable: false,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "genericProperty", {
+ value: 1002
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ if (b !== 2) {
+ $ERROR('Expected "b === 2;", actually ' + b);
+ }
+
+ verifyEqualTo(arguments, "genericProperty", 1001);
+
+ verifyNotWritable(arguments, "genericProperty");
+
+ verifyNotEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-317.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-317.js
index d6932e0c0..c3f3d8140 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-317.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-317.js
@@ -11,27 +11,32 @@ description: >
own data property of 'O', test TypeError is thrown when updating
the [[Value]] attribute value of 'P' which is not writable and not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "genericProperty", {
- value: 1001,
- writable: false,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "genericProperty", {
- value: 1002
- });
- } catch (e) {
- return e instanceof TypeError &&
- dataPropertyAttributesAreCorrect(arguments, "genericProperty", 1001, false, false, false);
- }
- return false;
- }(1, 2, 3));
+(function () {
+ Object.defineProperty(arguments, "genericProperty", {
+ value: 1001,
+ writable: false,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "genericProperty", {
+ value: 1002
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "genericProperty", 1001);
+
+ verifyNotWritable(arguments, "genericProperty");
+
+ verifyNotEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-318-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-318-1.js
index 27d5c6a7d..95ab97a73 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-318-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-318-1.js
@@ -12,26 +12,31 @@ description: >
test TypeError is thrown when updating the [[Writable]] attribute
value of 'name' which is not configurable (10.6
[[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- Object.defineProperty(arguments, "genericProperty", {
- writable: false,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "genericProperty", {
- writable: true
- });
- } catch (e) {
- return e instanceof TypeError &&
- dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, false, false);
- }
- return false;
- }(1, 2, 3));
+(function (a, b, c) {
+ Object.defineProperty(arguments, "genericProperty", {
+ writable: false,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "genericProperty", {
+ writable: true
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "genericProperty", undefined);
+
+ verifyNotWritable(arguments, "genericProperty");
+
+ verifyNotEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-318.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-318.js
index f1425044d..c09bc8683 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-318.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-318.js
@@ -11,26 +11,33 @@ description: >
generic own data property of 'O', test TypeError is thrown when
updating the [[Writable]] attribute value of 'name' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "genericProperty", {
- writable: false,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "genericProperty", {
- writable: true
- });
- } catch (e) {
- return e instanceof TypeError &&
- dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, false, false);
- }
- return false;
- }(1, 2, 3));
+(function () {
+ Object.defineProperty(arguments, "genericProperty", {
+ writable: false,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "genericProperty", {
+ writable: true
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "genericProperty", undefined);
+
+ verifyNotWritable(arguments, "genericProperty");
+
+ verifyNotEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-319-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-319-1.js
index 2df5b34ad..b1615409b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-319-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-319-1.js
@@ -12,26 +12,32 @@ description: >
TypeError is thrown when updating the [[Enumerable]] attribute
value of 'P' which is not configurable (10.6 [[DefineOwnProperty]]
step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- Object.defineProperty(arguments, "genericProperty", {
- enumerable: true,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "genericProperty", {
- enumerable: false
- });
- } catch (e) {
- return e instanceof TypeError &&
- dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, true, false);
- }
- return false;
- }(1, 2, 3));
+(function (a, b, c) {
+ Object.defineProperty(arguments, "genericProperty", {
+ enumerable: true,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "genericProperty", {
+ enumerable: false
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "genericProperty", undefined);
+
+ verifyNotWritable(arguments, "genericProperty");
+
+ verifyEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-319.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-319.js
index 916de4531..0811edd62 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-319.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-319.js
@@ -11,26 +11,31 @@ description: >
data property of 'O', test TypeError is thrown when updating the
[[Enumerable]] attribute value of 'P' which is not configurable
(10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "genericProperty", {
- enumerable: true,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "genericProperty", {
- enumerable: false
- });
- } catch (e) {
- return e instanceof TypeError &&
- dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, true, false);
- }
- return false;
- }(1, 2, 3));
+(function () {
+ Object.defineProperty(arguments, "genericProperty", {
+ enumerable: true,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "genericProperty", {
+ enumerable: false
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "genericProperty", undefined);
+
+ verifyNotWritable(arguments, "genericProperty");
+
+ verifyEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-320-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-320-1.js
index 614468a7c..c1c9a1790 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-320-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-320-1.js
@@ -12,25 +12,30 @@ description: >
TypeError is thrown when updating the [[Configurable]] attribute
value of 'P' which is not configurable (10.6 [[DefineOwnProperty]]
step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- Object.defineProperty(arguments, "genericProperty", {
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "genericProperty", {
- configurable: true
- });
- } catch (e) {
- return e instanceof TypeError &&
- dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, false, false);
- }
- return false;
- }(1, 2, 3));
+(function (a, b, c) {
+ Object.defineProperty(arguments, "genericProperty", {
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "genericProperty", {
+ configurable: true
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "genericProperty", undefined);
+
+ verifyNotWritable(arguments, "genericProperty");
+
+ verifyNotEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-320.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-320.js
index 7ad8de9e6..32d2987c1 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-320.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-320.js
@@ -11,25 +11,32 @@ description: >
data property of 'O', test TypeError is thrown when updating the
[[Configurable]] attribute value of 'P' which is not configurable
(10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- Object.defineProperty(arguments, "genericProperty", {
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "genericProperty", {
- configurable: true
- });
- } catch (e) {
- return e instanceof TypeError &&
- dataPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, false, false, false);
- }
- return false;
- }(1, 2, 3));
+(function () {
+ Object.defineProperty(arguments, "genericProperty", {
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "genericProperty", {
+ configurable: true
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "genericProperty", undefined);
+
+ verifyNotWritable(arguments, "genericProperty");
+
+ verifyNotEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-321-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-321-1.js
index 3805e0f28..323460968 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-321-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-321-1.js
@@ -12,36 +12,44 @@ description: >
test TypeError is thrown when updating the [[Get]] attribute value
of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step
4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- function getFunc() {
- return "genericPropertyString";
- }
- function setFunc(value) {
- this.helpVerifyGet = value;
- }
- Object.defineProperty(arguments, "genericProperty", {
- get: getFunc,
- set: setFunc,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "genericProperty", {
- get: function () {
- return "overideGenericPropertyString";
- }
- });
- } catch (e) {
- var verifyFormal = a === 1;
- return e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "helpVerifyGet", false, false, false) && verifyFormal;
+(function (a, b, c) {
+ function getFunc() {
+ return "genericPropertyString";
+ }
+ function setFunc(value) {
+ this.helpVerifyGet = value;
+ }
+ Object.defineProperty(arguments, "genericProperty", {
+ get: getFunc,
+ set: setFunc,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "genericProperty", {
+ get: function () {
+ return "overideGenericPropertyString";
}
- return false;
- }(1, 2, 3));
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ if (a !== 1) {
+ $ERROR('Expected a === 1, actually ' + a);
+ }
+
+ verifyEqualTo(arguments, "genericProperty", getFunc());
+
+ verifyWritable(arguments, "genericProperty", "helpVerifyGet");
+
+ verifyNotEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-321.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-321.js
index 90a378c1c..4abc7358d 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-321.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-321.js
@@ -11,35 +11,40 @@ description: >
accessor property of 'O', test TypeError is thrown when updating
the [[Get]] attribute value of 'P' which is not configurable (10.6
[[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- function getFunc() {
- return "genericPropertyString";
- }
- function setFunc(value) {
- this.helpVerifyGet = value;
- }
- Object.defineProperty(arguments, "genericProperty", {
- get: getFunc,
- set: setFunc,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "genericProperty", {
- get: function () {
- return "overideGenericPropertyString";
- }
- });
- } catch (e) {
- return e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(arguments, "genericProperty", getFunc, setFunc, "helpVerifyGet", false, false, false);
+(function () {
+ function getFunc() {
+ return "genericPropertyString";
+ }
+ function setFunc(value) {
+ this.helpVerifyGet = value;
+ }
+ Object.defineProperty(arguments, "genericProperty", {
+ get: getFunc,
+ set: setFunc,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "genericProperty", {
+ get: function () {
+ return "overideGenericPropertyString";
}
- return false;
- }(1, 2, 3));
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyEqualTo(arguments, "genericProperty", getFunc());
+
+ verifyWritable(arguments, "genericProperty", "helpVerifyGet");
+
+ verifyNotEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-322-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-322-1.js
index c62fde716..ca8a2ebcc 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-322-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-322-1.js
@@ -12,31 +12,34 @@ description: >
test TypeError is thrown when updating the [[Set]] attribute value
of 'P' which is not configurable (10.6 [[DefineOwnProperty]] step
4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- function setFunc(value) {
- this.genericPropertyString = value;
- }
- Object.defineProperty(arguments, "genericProperty", {
- set: setFunc,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "genericProperty", {
- set: function (value) {
- this.genericPropertyString1 = value;
- }
- });
- } catch (e) {
- return e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", false, false, false);
+(function (a, b, c) {
+ function setFunc(value) {
+ this.genericPropertyString = value;
+ }
+ Object.defineProperty(arguments, "genericProperty", {
+ set: setFunc,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "genericProperty", {
+ set: function (value) {
+ this.genericPropertyString1 = value;
}
- return false;
- }(1, 2, 3));
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyWritable(arguments, "genericProperty", "genericPropertyString");
+
+ verifyNotEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-322.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-322.js
index f53eb4ed2..fdb86cd9b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-322.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-322.js
@@ -11,31 +11,34 @@ description: >
accessor property of 'O', test TypeError is thrown when updating
the [[Set]] attribute value of 'P' which is not configurable (10.6
[[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- function setFunc(value) {
- this.genericPropertyString = value;
- }
- Object.defineProperty(arguments, "genericProperty", {
- set: setFunc,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "genericProperty", {
- set: function (value) {
- this.genericPropertyString1 = value;
- }
- });
- } catch (e) {
- return e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", false, false, false);
+(function () {
+ function setFunc(value) {
+ this.genericPropertyString = value;
+ }
+ Object.defineProperty(arguments, "genericProperty", {
+ set: setFunc,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "genericProperty", {
+ set: function (value) {
+ this.genericPropertyString1 = value;
}
- return false;
- }(1, 2, 3));
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyWritable(arguments, "genericProperty", "genericPropertyString");
+
+ verifyNotEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
}
-runTestCase(testcase);
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-323-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-323-1.js
index 4f38a7210..9f6d38845 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-323-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-323-1.js
@@ -12,31 +12,37 @@ description: >
test TypeError is thrown when updating the [[Enumerable]]
attribute value of 'P' which is not configurable (10.6
[[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- function setFunc(value) {
- this.genericPropertyString = value;
- }
- Object.defineProperty(arguments, "genericProperty", {
- set: setFunc,
- enumerable: true,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "genericProperty", {
- enumerable: false
- });
- } catch (e) {
- verifyFormal = c === 3;
- return e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", true, false) && verifyFormal;
- }
- return false;
- }(1, 2, 3));
+(function (a, b, c) {
+ function setFunc(value) {
+ this.genericPropertyString = value;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "genericProperty", {
+ set: setFunc,
+ enumerable: true,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "genericProperty", {
+ enumerable: false
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ if (c !== 3) {
+ $ERROR('Expected c === 3, actually ' + c);
+ }
+ verifyWritable(arguments, "genericProperty", "genericPropertyString");
+
+ verifyEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ }
+
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-323.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-323.js
index 7b3937b84..f353c688d 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-323.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-323.js
@@ -11,30 +11,33 @@ description: >
accessor property of 'O', test TypeError is thrown when updating
the [[Enumerable]] attribute value of 'P' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- function setFunc(value) {
- this.genericPropertyString = value;
- }
- Object.defineProperty(arguments, "genericProperty", {
- set: setFunc,
- enumerable: true,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "genericProperty", {
- enumerable: false
- });
- } catch (e) {
- return e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", true, false);
- }
- return false;
- }(1, 2, 3));
+(function () {
+ function setFunc(value) {
+ this.genericPropertyString = value;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "genericProperty", {
+ set: setFunc,
+ enumerable: true,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "genericProperty", {
+ enumerable: false
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyWritable(arguments, "genericProperty", "genericPropertyString");
+
+ verifyEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ }
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-324-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-324-1.js
index 12384ea2a..821ebbcab 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-324-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-324-1.js
@@ -12,29 +12,32 @@ description: >
test TypeError is thrown when updating the [[Configurable]]
attribute value of 'P' which is not configurable (10.6
[[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function (a, b, c) {
- function setFunc(value) {
- this.genericPropertyString = value;
- }
- Object.defineProperty(arguments, "genericProperty", {
- set: setFunc,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "genericProperty", {
- configurable: true
- });
- } catch (e) {
- return e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", false, false, false);
- }
- return false;
- }(1, 2, 3));
+(function (a, b, c) {
+ function setFunc(value) {
+ this.genericPropertyString = value;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "genericProperty", {
+ set: setFunc,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "genericProperty", {
+ configurable: true
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyWritable(arguments, "genericProperty", "genericPropertyString");
+
+ verifyNotEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ }
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-324.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-324.js
index 00e2d81dc..6fdb4a774 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-324.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-324.js
@@ -11,29 +11,33 @@ description: >
accessor property of 'O', test TypeError is thrown when updating
the [[Configurable]] attribute value of 'P' which is not
configurable (10.6 [[DefineOwnProperty]] step 4)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- return (function () {
- function setFunc(value) {
- this.genericPropertyString = value;
- }
- Object.defineProperty(arguments, "genericProperty", {
- set: setFunc,
- configurable: false
- });
- try {
- Object.defineProperty(arguments, "genericProperty", {
- configurable: true
- });
- } catch (e) {
- return e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(arguments, "genericProperty", undefined, setFunc, "genericPropertyString", false, false, false);
- }
- return false;
- }(1, 2, 3));
+(function () {
+ function setFunc(value) {
+ this.genericPropertyString = value;
}
-runTestCase(testcase);
+ Object.defineProperty(arguments, "genericProperty", {
+ set: setFunc,
+ configurable: false
+ });
+ try {
+ Object.defineProperty(arguments, "genericProperty", {
+ configurable: true
+ });
+ $ERROR("Expected an exception.");
+ } catch (e) {
+ verifyWritable(arguments, "genericProperty", "genericPropertyString");
+
+ verifyNotEnumerable(arguments, "genericProperty");
+
+ verifyNotConfigurable(arguments, "genericProperty");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+ }
+ false;
+}(1, 2, 3));
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-1.js
index 3e91e0e6a..9acb30ee4 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-1.js
@@ -11,25 +11,27 @@ description: >
property 'P' successfully when [[Configurable]] attribute is
false, [[Writable]] attribute is true and 'O' is an Object object
(8.12.9 - step 10)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "property", {
- value: 1001,
- writable: true,
- configurable: false
- });
+Object.defineProperty(obj, "property", {
+ value: 1001,
+ writable: true,
+ configurable: false
+});
- Object.defineProperty(obj, "property", {
- value: 1002
- });
+Object.defineProperty(obj, "property", {
+ value: 1002
+});
+
+verifyEqualTo(obj, "property", 1002);
+
+verifyWritable(obj, "property");
+
+verifyNotEnumerable(obj, "property");
+
+verifyNotConfigurable(obj, "property");
- return dataPropertyAttributesAreCorrect(obj, "property", 1002, true, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-2.js
index 12981e797..9bba5f341 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-2.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-2.js
@@ -11,25 +11,27 @@ description: >
property 'P' successfully when [[Configurable]] attribute is
false, [[Writable]] attribute is true and 'A' is an Array object
(8.12.9 - step 10)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = [];
+var obj = [];
- Object.defineProperty(obj, "0", {
- value: 1001,
- writable: true,
- configurable: false
- });
+Object.defineProperty(obj, "0", {
+ value: 1001,
+ writable: true,
+ configurable: false
+});
- Object.defineProperty(obj, "0", {
- value: 1002
- });
+Object.defineProperty(obj, "0", {
+ value: 1002
+});
+
+verifyEqualTo(obj, "0", 1002);
+
+verifyWritable(obj, "0");
+
+verifyNotEnumerable(obj, "0");
+
+verifyNotConfigurable(obj, "0");
- return dataPropertyAttributesAreCorrect(obj, "0", 1002, true, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-3.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-3.js
index 140ddcb5e..a5501e2d1 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-3.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-3.js
@@ -11,27 +11,29 @@ description: >
property 'P' successfully when [[Configurable]] attribute is
false, [[Writable]] attribute is true and 'O' is an Arguments
object (8.12.9 - step 10)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = (function () {
- return arguments;
- }());
+var obj = (function () {
+ return arguments;
+}());
- Object.defineProperty(obj, "property", {
- value: 1001,
- writable: true,
- configurable: false
- });
+Object.defineProperty(obj, "property", {
+ value: 1001,
+ writable: true,
+ configurable: false
+});
- Object.defineProperty(obj, "property", {
- value: 1002
- });
+Object.defineProperty(obj, "property", {
+ value: 1002
+});
+
+verifyEqualTo(obj, "property", 1002);
+
+verifyWritable(obj, "property");
+
+verifyNotEnumerable(obj, "property");
+
+verifyNotConfigurable(obj, "property");
- return dataPropertyAttributesAreCorrect(obj, "property", 1002, true, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-6.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-6.js
index d76802574..4655075d3 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-6.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-6.js
@@ -11,25 +11,27 @@ description: >
property 'P' successfully when [[Configurable]] attribute is
false, [[Writable]] attribute is true and 'O' is an Object object
(8.12.9 - step 10)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "0", {
- value: 1001,
- writable: true,
- configurable: false
- });
+Object.defineProperty(obj, "0", {
+ value: 1001,
+ writable: true,
+ configurable: false
+});
- Object.defineProperty(obj, "0", {
- value: 1002
- });
+Object.defineProperty(obj, "0", {
+ value: 1002
+});
+
+verifyEqualTo(obj, "0", 1002);
+
+verifyWritable(obj, "0");
+
+verifyNotEnumerable(obj, "0");
+
+verifyNotConfigurable(obj, "0");
- return dataPropertyAttributesAreCorrect(obj, "0", 1002, true, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-7.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-7.js
index 4f15006f1..fd7dcdef7 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-7.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-7.js
@@ -11,25 +11,27 @@ description: >
property 'P' successfully when [[Configurable]] attribute is
false, [[Writable]] attribute is true and 'A' is an Array object
(8.12.9 - step 10)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = [];
+var obj = [];
- Object.defineProperty(obj, "prop", {
- value: 1001,
- writable: true,
- configurable: false
- });
+Object.defineProperty(obj, "prop", {
+ value: 1001,
+ writable: true,
+ configurable: false
+});
- Object.defineProperty(obj, "prop", {
- value: 1002
- });
+Object.defineProperty(obj, "prop", {
+ value: 1002
+});
+
+verifyEqualTo(obj, "prop", 1002);
+
+verifyWritable(obj, "prop");
+
+verifyNotEnumerable(obj, "prop");
+
+verifyNotConfigurable(obj, "prop");
- return dataPropertyAttributesAreCorrect(obj, "prop", 1002, true, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-8.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-8.js
index 89d18fed0..14962c467 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-333-8.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-333-8.js
@@ -11,27 +11,29 @@ description: >
property 'P'successfully when [[Configurable]] attribute is false,
[[Writable]] attribute is true and 'O' is an Arguments object
(8.12.9 - step 10)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = (function () {
- return arguments;
- }());
+var obj = (function () {
+ return arguments;
+}());
- Object.defineProperty(obj, "0", {
- value: 1001,
- writable: true,
- configurable: false
- });
+Object.defineProperty(obj, "0", {
+ value: 1001,
+ writable: true,
+ configurable: false
+});
- Object.defineProperty(obj, "0", {
- value: 1002
- });
+Object.defineProperty(obj, "0", {
+ value: 1002
+});
+
+verifyEqualTo(obj, "0", 1002);
+
+verifyWritable(obj, "0");
+
+verifyNotEnumerable(obj, "0");
+
+verifyNotConfigurable(obj, "0");
- return dataPropertyAttributesAreCorrect(obj, "0", 1002, true, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-1.js
index 6df341a79..8a0ec1cfe 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-1.js
@@ -11,25 +11,27 @@ description: >
property 'P' successfully when [[Configurable]] attribute is true
and [[Writable]] attribute is false, 'O' is an Object object
(8.12.9 step - Note)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "property", {
- value: 1001,
- writable: false,
- configurable: true
- });
+Object.defineProperty(obj, "property", {
+ value: 1001,
+ writable: false,
+ configurable: true
+});
- Object.defineProperty(obj, "property", {
- value: 1002
- });
+Object.defineProperty(obj, "property", {
+ value: 1002
+});
+
+verifyEqualTo(obj, "property", 1002);
+
+verifyNotWritable(obj, "property");
+
+verifyNotEnumerable(obj, "property");
+
+verifyConfigurable(obj, "property");
- return dataPropertyAttributesAreCorrect(obj, "property", 1002, false, false, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-10.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-10.js
index be6c69226..b88803773 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-10.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-10.js
@@ -11,25 +11,27 @@ description: >
property 'P' successfully when [[Configurable]] attribute is true
and [[Writable]] attribute is false, 'O' is an Object object
(8.12.9 step - Note)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "0", {
- value: 1001,
- writable: false,
- configurable: true
- });
+Object.defineProperty(obj, "0", {
+ value: 1001,
+ writable: false,
+ configurable: true
+});
- Object.defineProperty(obj, "0", {
- value: 1002
- });
+Object.defineProperty(obj, "0", {
+ value: 1002
+});
+
+verifyEqualTo(obj, "0", 1002);
+
+verifyNotWritable(obj, "0");
+
+verifyNotEnumerable(obj, "0");
+
+verifyConfigurable(obj, "0");
- return dataPropertyAttributesAreCorrect(obj, "0", 1002, false, false, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-11.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-11.js
index d93238f5f..c82f6340f 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-11.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-11.js
@@ -11,25 +11,27 @@ description: >
property 'P' successfully when [[Configurable]] attribute is true
and [[Writable]] attribute is false, 'A' is an Array object
(8.12.9 step - Note)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = [];
+var obj = [];
- Object.defineProperty(obj, "prop", {
- value: 1001,
- writable: false,
- configurable: true
- });
+Object.defineProperty(obj, "prop", {
+ value: 1001,
+ writable: false,
+ configurable: true
+});
- Object.defineProperty(obj, "prop", {
- value: 1002
- });
+Object.defineProperty(obj, "prop", {
+ value: 1002
+});
+
+verifyEqualTo(obj, "prop", 1002);
+
+verifyNotWritable(obj, "prop");
+
+verifyNotEnumerable(obj, "prop");
+
+verifyConfigurable(obj, "prop");
- return dataPropertyAttributesAreCorrect(obj, "prop", 1002, false, false, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-12.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-12.js
index d3f8b3467..f0381b5f9 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-12.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-12.js
@@ -11,27 +11,29 @@ description: >
property successfully when [[Configurable]] attribute is true and
[[Writable]] attribute is false, 'O' is an Arguments object
(8.12.9 - step Note)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = (function () {
- return arguments;
- }());
+var obj = (function () {
+ return arguments;
+}());
- Object.defineProperty(obj, "0", {
- value: 1001,
- writable: false,
- configurable: true
- });
+Object.defineProperty(obj, "0", {
+ value: 1001,
+ writable: false,
+ configurable: true
+});
- Object.defineProperty(obj, "0", {
- value: 1002
- });
+Object.defineProperty(obj, "0", {
+ value: 1002
+});
+
+verifyEqualTo(obj, "0", 1002);
+
+verifyNotWritable(obj, "0");
+
+verifyNotEnumerable(obj, "0");
+
+verifyConfigurable(obj, "0");
- return dataPropertyAttributesAreCorrect(obj, "0", 1002, false, false, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-13.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-13.js
index 3f7aece49..9c6c7f101 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-13.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-13.js
@@ -11,30 +11,31 @@ description: >
property successfully when [[Configurable]] attribute is true and
[[Writable]] attribute is false, 'O' is the global object (8.12.9
- step Note)
-includes:
- - runTestCase.js
- - fnGlobalObject.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js, fnGlobalObject.js]
---*/
-function testcase() {
- var obj = fnGlobalObject();
+var obj = fnGlobalObject();
- try {
- Object.defineProperty(obj, "0", {
- value: 1001,
- writable: false,
- configurable: true
- });
+try {
+ Object.defineProperty(obj, "0", {
+ value: 1001,
+ writable: false,
+ configurable: true
+ });
- Object.defineProperty(obj, "0", {
- value: 1002
- });
+ Object.defineProperty(obj, "0", {
+ value: 1002
+ });
+
+ verifyEqualTo(obj, "0", 1002);
+
+ verifyNotWritable(obj, "0");
+
+ verifyNotEnumerable(obj, "0");
+
+ verifyConfigurable(obj, "0");
+} finally {
+ delete obj[0];
+}
- return dataPropertyAttributesAreCorrect(obj, "0", 1002, false, false, true);
- } finally {
- delete obj[0];
- }
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-2.js
index 3719a1991..ce4b5919c 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-2.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-2.js
@@ -11,25 +11,27 @@ description: >
property 'P' successfully when [[Configurable]] attribute is true
and [[Writable]] attribute is false, 'A' is an Array object
(8.12.9 step - Note)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js, fnGlobalObject.js]
---*/
-function testcase() {
- var obj = [];
+var obj = [];
- Object.defineProperty(obj, "0", {
- value: 1001,
- writable: false,
- configurable: true
- });
+Object.defineProperty(obj, "0", {
+ value: 1001,
+ writable: false,
+ configurable: true
+});
- Object.defineProperty(obj, "0", {
- value: 1002
- });
+Object.defineProperty(obj, "0", {
+ value: 1002
+});
+
+verifyEqualTo(obj, "0", 1002);
+
+verifyNotWritable(obj, "0");
+
+verifyNotEnumerable(obj, "0");
+
+verifyConfigurable(obj, "0");
- return dataPropertyAttributesAreCorrect(obj, "0", 1002, false, false, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-3.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-3.js
index f5dfce189..5e824ae5c 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-3.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-3.js
@@ -10,27 +10,29 @@ description: >
Object.defineProperty will update [[Value]] attribute successfully
when [[Configurable]] attribute is true and [[Writable]] attribute
is false, 'O' is an Arguments object (8.12.9 - step Note)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = (function () {
- return arguments;
- }());
+var obj = (function () {
+ return arguments;
+}());
- Object.defineProperty(obj, "property", {
- value: 1001,
- writable: false,
- configurable: true
- });
+Object.defineProperty(obj, "property", {
+ value: 1001,
+ writable: false,
+ configurable: true
+});
- Object.defineProperty(obj, "property", {
- value: 1002
- });
+Object.defineProperty(obj, "property", {
+ value: 1002
+});
+
+verifyEqualTo(obj, "property", 1002);
+
+verifyNotWritable(obj, "property");
+
+verifyNotEnumerable(obj, "property");
+
+verifyConfigurable(obj, "property");
- return dataPropertyAttributesAreCorrect(obj, "property", 1002, false, false, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-4.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-4.js
index fc5e8d4d4..0958aa32d 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-354-4.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-354-4.js
@@ -10,30 +10,31 @@ description: >
Object.defineProperty will update [[Value]] attribute successfully
when [[Configurable]] attribute is true and [[Writable]] attribute
is false, 'O' is the global object (8.12.9 - step Note)
-includes:
- - runTestCase.js
- - fnGlobalObject.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js, fnGlobalObject.js]
---*/
-function testcase() {
- var obj = fnGlobalObject();
+var obj = fnGlobalObject();
- try {
- Object.defineProperty(obj, "property", {
- value: 1001,
- writable: false,
- configurable: true
- });
+try {
+ Object.defineProperty(obj, "property", {
+ value: 1001,
+ writable: false,
+ configurable: true
+ });
- Object.defineProperty(obj, "property", {
- value: 1002
- });
+ Object.defineProperty(obj, "property", {
+ value: 1002
+ });
+
+ verifyEqualTo(obj, "property", 1002);
+
+ verifyNotWritable(obj, "property");
+
+ verifyNotEnumerable(obj, "property");
+
+ verifyConfigurable(obj, "property");
+} finally {
+ delete obj.property;
+}
- return dataPropertyAttributesAreCorrect(obj, "property", 1002, false, false, true);
- } finally {
- delete obj.property;
- }
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-360-7.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-360-7.js
index dee88492b..909ce5308 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-360-7.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-360-7.js
@@ -11,35 +11,44 @@ description: >
attributes are [[Writable]]: false, [[Enumerable]]: true,
[[Configurable]]: true to an accessor property, 'O' is the global
object (8.12.9 - step 9.b.i)
-includes:
- - runTestCase.js
- - fnGlobalObject.js
+includes: [propertyHelper.js, fnGlobalObject.js]
---*/
-function testcase() {
- var obj = fnGlobalObject();
- try {
- Object.defineProperty(obj, "0", {
- value: 2010,
- writable: false,
- enumerable: true,
- configurable: true
- });
- var desc1 = Object.getOwnPropertyDescriptor(obj, "0");
-
- function getFunc() {
- return 20;
- }
- Object.defineProperty(obj, "0", {
- get: getFunc
- });
- var desc2 = Object.getOwnPropertyDescriptor(obj, "0");
-
- return desc1.hasOwnProperty("value") && desc2.hasOwnProperty("get") &&
- desc2.enumerable === true && desc2.configurable === true &&
- obj[0] === 20 && typeof desc2.set === "undefined" && desc2.get === getFunc;
- } finally {
- delete obj[0];
- }
+function getFunc() {
+ return 20;
}
-runTestCase(testcase);
+
+var obj = fnGlobalObject();
+try {
+ Object.defineProperty(obj, "0", {
+ value: 2010,
+ writable: false,
+ enumerable: true,
+ configurable: true
+ });
+ var desc1 = Object.getOwnPropertyDescriptor(obj, "0");
+
+ Object.defineProperty(obj, "0", {
+ get: getFunc
+ });
+ var desc2 = Object.getOwnPropertyDescriptor(obj, "0");
+
+ if (!Object.prototype.hasOwnProperty.call(desc1, "value")) {
+ $ERROR("Expected to find ownProperty 'value'");
+ }
+
+ if (!(desc2.hasOwnProperty("get") && desc2.enumerable === true &&
+ desc2.configurable === true && obj[0] === 20 &&
+ (typeof desc2.set === "undefined") && desc2.get === getFunc)) {
+ $ERROR("Expected desc2 to be as configured.");
+ }
+
+ verifyEqualTo(obj, "0", getFunc());
+
+ verifyEnumerable(obj, "0");
+
+ verifyConfigurable(obj, "0");
+
+} finally {
+ delete obj[0];
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-38.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-38.js
index ed21f8542..fd2189dd3 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-38.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-38.js
@@ -10,21 +10,23 @@ description: >
Object.defineProperty - 'O' is the Math object that uses Object's
[[GetOwnProperty]] method to access the 'name' property (8.12.9
step 1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- try {
- Object.defineProperty(Math, "foo", {
- value: 12,
- configurable: true
- });
-
- return dataPropertyAttributesAreCorrect(Math, "foo", 12, false, false, true);
- } finally {
- delete Math.foo;
- }
- }
-runTestCase(testcase);
+try {
+ Object.defineProperty(Math, "foo", {
+ value: 12,
+ configurable: true
+ });
+
+ verifyEqualTo(Math, "foo", 12);
+
+ verifyNotWritable(Math, "foo");
+
+ verifyNotEnumerable(Math, "foo");
+
+ verifyConfigurable(Math, "foo");
+} finally {
+ delete Math.foo;
+}
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-41.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-41.js
index 895eeff91..fbf40e15c 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-41.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-41.js
@@ -10,22 +10,22 @@ description: >
Object.defineProperty - 'O' is the JSON object that uses Object's
[[GetOwnProperty]] method to access the 'name' property (8.12.9
step 1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- try {
- Object.defineProperty(JSON, "foo", {
- value: 12,
- configurable: true
- });
+Object.defineProperty(JSON, "foo", {
+value: 12,
+configurable: true
+});
+
+verifyEqualTo(JSON, "foo", 12);
+
+verifyNotWritable(JSON, "foo");
+
+verifyNotEnumerable(JSON, "foo");
+
+verifyConfigurable(JSON, "foo");
+
+delete JSON.foo;
- return dataPropertyAttributesAreCorrect(JSON, "foo", 12, false, false, true);
- } finally {
- delete JSON.foo;
- }
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-45.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-45.js
index ced4ff42f..337ce1e7d 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-45.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-45.js
@@ -10,22 +10,18 @@ description: >
Object.defineProperty - 'O' is the global object that uses
Object's [[GetOwnProperty]] method to access the 'name' property
(8.12.9 step 1)
-includes:
- - runTestCase.js
- - fnGlobalObject.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js, fnGlobalObject.js]
---*/
-function testcase() {
- try {
- Object.defineProperty(fnGlobalObject(), "foo", {
- value: 12,
- configurable: true
- });
+Object.defineProperty(fnGlobalObject(), "foo", {
+ value: 12,
+ configurable: true
+});
- return dataPropertyAttributesAreCorrect(fnGlobalObject(), "foo", 12, false, false, true);
- } finally {
- delete fnGlobalObject().foo;
- }
- }
-runTestCase(testcase);
+verifyEqualTo(fnGlobalObject(), "foo", 12);
+
+verifyNotWritable(fnGlobalObject(), "foo");
+
+verifyNotEnumerable(fnGlobalObject(), "foo");
+
+verifyConfigurable(fnGlobalObject(), "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-47.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-47.js
index ed2dec6ae..b5d193705 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-47.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-47.js
@@ -10,20 +10,22 @@ description: >
Object.defineProperty - 'name' property doesn't exist in 'O',
[[Value]] of 'name' property is set as undefined if it is absent
in data descriptor 'desc' (8.12.9 step 4.a.i)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "property", {
- writable: true,
- enumerable: true,
- configurable: false
- });
+Object.defineProperty(obj, "property", {
+ writable: true,
+ enumerable: true,
+ configurable: false
+});
+
+verifyEqualTo(obj, "property", undefined);
+
+verifyWritable(obj, "property");
+
+verifyEnumerable(obj, "property");
+
+verifyNotConfigurable(obj, "property");
- return dataPropertyAttributesAreCorrect(obj, "property", undefined, true, true, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-48.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-48.js
index 602305b60..6ce013387 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-48.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-48.js
@@ -10,20 +10,22 @@ description: >
Object.defineProperty - 'name' property doesn't exist in 'O', test
[[Writable]] of 'name' property of 'Attributes' is set as false
value if absent in data descriptor 'desc' (8.12.9 step 4.a.i)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "property", {
- value: 1001,
- enumerable: true,
- configurable: false
- });
+Object.defineProperty(obj, "property", {
+ value: 1001,
+ enumerable: true,
+ configurable: false
+});
+
+verifyEqualTo(obj, "property", 1001);
+
+verifyNotWritable(obj, "property");
+
+verifyEnumerable(obj, "property");
+
+verifyNotConfigurable(obj, "property");
- return dataPropertyAttributesAreCorrect(obj, "property", 1001, false, true, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-49.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-49.js
index dcce16400..e55dcba15 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-49.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-49.js
@@ -10,19 +10,21 @@ description: >
Object.defineProperty - 'name' property doesn't exist in 'O', test
[[Enumerable]] of 'name' property of 'Attributes' is set as false
value if absent in data descriptor 'desc' (8.12.9 step 4.a.i)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
+
+Object.defineProperty(obj, "property", {
+ value: 1001,
+ writable: true,
+ configurable: true
+});
+verifyEqualTo(obj, "property", 1001);
+
+verifyWritable(obj, "property");
+
+verifyNotEnumerable(obj, "property");
+
+verifyConfigurable(obj, "property");
- Object.defineProperty(obj, "property", {
- value: 1001,
- writable: true,
- configurable: true
- });
- return dataPropertyAttributesAreCorrect(obj, "property", 1001, true, false, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-50.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-50.js
index 30d55351b..f983d6272 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-50.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-50.js
@@ -10,19 +10,21 @@ description: >
Object.defineProperty - 'name' property doesn't exist in 'O', test
[[Configurable]] of 'name' property is set as false if it is
absent in data descriptor 'desc' (8.12.9 step 4.a.i)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
+
+Object.defineProperty(obj, "property", {
+ value: 1001,
+ writable: true,
+ enumerable: true
+});
+verifyEqualTo(obj, "property", 1001);
+
+verifyWritable(obj, "property");
+
+verifyEnumerable(obj, "property");
+
+verifyNotConfigurable(obj, "property");
- Object.defineProperty(obj, "property", {
- value: 1001,
- writable: true,
- enumerable: true
- });
- return dataPropertyAttributesAreCorrect(obj, "property", 1001, true, true, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-51.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-51.js
index e865661aa..87cfab043 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-51.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-51.js
@@ -9,21 +9,23 @@ es5id: 15.2.3.6-4-51
description: >
Object.defineProperty - desc is data descriptor, test updating all
attribute values of 'name' (8.12.9 step 4.a.i)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = { "property": 1 }; // default value of attributes: writable: true, configurable: true, enumerable: true
+var obj = { "property": 1 }; // default value of attributes: writable: true, configurable: true, enumerable: true
- Object.defineProperty(obj, "property", {
- value: 1001,
- writable: false,
- enumerable: false,
- configurable: false
- });
+Object.defineProperty(obj, "property", {
+ value: 1001,
+ writable: false,
+ enumerable: false,
+ configurable: false
+});
+
+verifyEqualTo(obj, "property", 1001);
+
+verifyNotWritable(obj, "property");
+
+verifyNotEnumerable(obj, "property");
+
+verifyNotConfigurable(obj, "property");
- return dataPropertyAttributesAreCorrect(obj, "property", 1001, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-52.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-52.js
index 416aeac5f..cc6e4b8c9 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-52.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-52.js
@@ -10,16 +10,18 @@ description: >
Object.defineProperty - 'desc' is generic descriptor without any
attribute, test 'name' is defined in 'obj' with all default
attribute values (8.12.9 step 4.a.i)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "property", {});
+Object.defineProperty(obj, "property", {});
+
+verifyEqualTo(obj, "property", undefined);
+
+verifyNotWritable(obj, "property");
+
+verifyNotEnumerable(obj, "property");
+
+verifyNotConfigurable(obj, "property");
- return dataPropertyAttributesAreCorrect(obj, "property", undefined, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-53.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-53.js
index 5076fe14d..79784c6b7 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-53.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-53.js
@@ -10,23 +10,22 @@ description: >
Object.defineProperty - 'name' property doesn't exist in 'O', test
[[Get]] of 'name' property is set as undefined if it is absent in
accessor descriptor 'desc' (8.12.9 step 4.b)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
- var setFunc = function (value) {
- obj.setVerifyHelpProp = value;
- };
+var obj = {};
+var setFunc = function (value) {
+ obj.setVerifyHelpProp = value;
+};
- Object.defineProperty(obj, "property", {
- set: setFunc,
- enumerable: true,
- configurable: true
- });
+Object.defineProperty(obj, "property", {
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+});
- return accessorPropertyAttributesAreCorrect(obj, "property", undefined, setFunc, "setVerifyHelpProp", true, true);
- }
-runTestCase(testcase);
+verifyWritable(obj, "property", "setVerifyHelpProp");
+
+verifyEnumerable(obj, "property");
+
+verifyConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-1.js
index c361ec258..f775b7597 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-1.js
@@ -10,38 +10,39 @@ description: >
Object.defineProperty will update [[Get]] and [[Set]] attributes
of named accessor property 'P' successfully when [[Configurable]]
attribute is true, 'O' is an Object object (8.12.9 step 11)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- obj.verifySetFunction = "data";
- Object.defineProperty(obj, "property", {
- get: function () {
- return obj.verifySetFunction;
- },
- set: function (value) {
- obj.verifySetFunction = value;
- },
- configurable: true
- });
-
- obj.verifySetFunction1 = "data1";
- var getFunc = function () {
- return obj.verifySetFunction1;
- };
- var setFunc = function (value) {
- obj.verifySetFunction1 = value;
- };
-
- Object.defineProperty(obj, "property", {
- get: getFunc,
- set: setFunc
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction1", false, true);
- }
-runTestCase(testcase);
+
+var obj = {};
+obj.verifySetFunction = "data";
+Object.defineProperty(obj, "property", {
+ get: function () {
+ return obj.verifySetFunction;
+ },
+ set: function (value) {
+ obj.verifySetFunction = value;
+ },
+ configurable: true
+});
+
+obj.verifySetFunction1 = "data1";
+var getFunc = function () {
+ return obj.verifySetFunction1;
+};
+var setFunc = function (value) {
+ obj.verifySetFunction1 = value;
+};
+
+Object.defineProperty(obj, "property", {
+ get: getFunc,
+ set: setFunc
+});
+
+verifyEqualTo(obj, "property", getFunc());
+
+verifyWritable(obj, "property", "verifySetFunction1");
+
+verifyNotEnumerable(obj, "property");
+
+verifyConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-10.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-10.js
index 4a9823406..b849c330a 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-10.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-10.js
@@ -11,39 +11,40 @@ description: >
of indexed accessor property 'P' successfully when
[[Configurable]] attribute is true, 'O' is an Object object
(8.12.9 step 11)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- obj.verifySetFunction = "data";
- Object.defineProperty(obj, "0", {
- get: function () {
- return obj.verifySetFunction;
- },
- set: function (value) {
- obj.verifySetFunction = value;
- },
- configurable: true
- });
-
- obj.verifySetFunction1 = "data1";
- var getFunc = function () {
- return obj.verifySetFunction1;
- };
- var setFunc = function (value) {
- obj.verifySetFunction1 = value;
- };
-
- Object.defineProperty(obj, "0", {
- get: getFunc,
- set: setFunc
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction1", false, true);
- }
-runTestCase(testcase);
+
+var obj = {};
+
+obj.verifySetFunction = "data";
+Object.defineProperty(obj, "0", {
+ get: function () {
+ return obj.verifySetFunction;
+ },
+ set: function (value) {
+ obj.verifySetFunction = value;
+ },
+ configurable: true
+});
+
+obj.verifySetFunction1 = "data1";
+var getFunc = function () {
+ return obj.verifySetFunction1;
+};
+var setFunc = function (value) {
+ obj.verifySetFunction1 = value;
+};
+
+Object.defineProperty(obj, "0", {
+ get: getFunc,
+ set: setFunc
+});
+
+verifyEqualTo(obj, "0", getFunc());
+
+verifyWritable(obj, "0", "verifySetFunction1");
+
+verifyNotEnumerable(obj, "0");
+
+verifyConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-11.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-11.js
index b2a8871a5..22b4b2774 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-11.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-11.js
@@ -10,39 +10,40 @@ description: >
Object.defineProperty will update [[Get]] and [[Set]] attributes
of named accessor property 'P' successfully when [[Configurable]]
attribute is true, 'A' is an Array object (8.12.9 step 11)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = [];
-
- obj.verifySetFunction = "data";
- Object.defineProperty(obj, "prop", {
- get: function () {
- return obj.verifySetFunction;
- },
- set: function (value) {
- obj.verifySetFunction = value;
- },
- configurable: true
- });
-
- obj.verifySetFunction1 = "data1";
- var getFunc = function () {
- return obj.verifySetFunction1;
- };
- var setFunc = function (value) {
- obj.verifySetFunction1 = value;
- };
-
- Object.defineProperty(obj, "prop", {
- get: getFunc,
- set: setFunc
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "prop", getFunc, setFunc, "verifySetFunction1", false, true);
- }
-runTestCase(testcase);
+
+var obj = [];
+
+obj.verifySetFunction = "data";
+Object.defineProperty(obj, "prop", {
+ get: function () {
+ return obj.verifySetFunction;
+ },
+ set: function (value) {
+ obj.verifySetFunction = value;
+ },
+ configurable: true
+});
+
+obj.verifySetFunction1 = "data1";
+var getFunc = function () {
+ return obj.verifySetFunction1;
+};
+var setFunc = function (value) {
+ obj.verifySetFunction1 = value;
+};
+
+Object.defineProperty(obj, "prop", {
+ get: getFunc,
+ set: setFunc
+});
+
+verifyEqualTo(obj, "prop", getFunc());
+
+verifyWritable(obj, "prop", "verifySetFunction1");
+
+verifyNotEnumerable(obj, "prop");
+
+verifyConfigurable(obj, "prop");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-12.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-12.js
index ee06fc899..eacd44a57 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-12.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-12.js
@@ -10,41 +10,42 @@ description: >
Object.defineProperty will update [[Get]] and [[Set]] attributes
of indexed accessor property successfully when [[Configurable]]
attribute is true, 'O' is an Arguments object (8.12.9 step 11)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = (function () {
- return arguments;
- }());
-
- obj.verifySetFunction = "data";
- Object.defineProperty(obj, "0", {
- get: function () {
- return obj.verifySetFunction;
- },
- set: function (value) {
- obj.verifySetFunction = value;
- },
- configurable: true
- });
-
- obj.verifySetFunction1 = "data1";
- var getFunc = function () {
- return obj.verifySetFunction1;
- };
- var setFunc = function (value) {
- obj.verifySetFunction1 = value;
- };
-
- Object.defineProperty(obj, "0", {
- get: getFunc,
- set: setFunc
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction1", false, true);
- }
-runTestCase(testcase);
+
+var obj = (function () {
+ return arguments;
+}());
+
+obj.verifySetFunction = "data";
+Object.defineProperty(obj, "0", {
+ get: function () {
+ return obj.verifySetFunction;
+ },
+ set: function (value) {
+ obj.verifySetFunction = value;
+ },
+ configurable: true
+});
+
+obj.verifySetFunction1 = "data1";
+var getFunc = function () {
+ return obj.verifySetFunction1;
+};
+var setFunc = function (value) {
+ obj.verifySetFunction1 = value;
+};
+
+Object.defineProperty(obj, "0", {
+ get: getFunc,
+ set: setFunc
+});
+
+verifyEqualTo(obj, "0", getFunc());
+
+verifyWritable(obj, "0", "verifySetFunction1");
+
+verifyNotEnumerable(obj, "0");
+
+verifyConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-13.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-13.js
index 70f387324..440b9c107 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-13.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-13.js
@@ -11,45 +11,45 @@ description: >
of indexed accessor property 'P' successfully when
[[Configurable]] attribute is true, 'O' is the global object
(8.12.9 step 11)
-includes:
- - runTestCase.js
- - fnGlobalObject.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js, fnGlobalObject.js]
---*/
-function testcase() {
-
- var obj = fnGlobalObject();
- try {
- obj.verifySetFunction = "data";
- Object.defineProperty(obj, "0", {
- get: function () {
- return obj.verifySetFunction;
- },
- set: function (value) {
- obj.verifySetFunction = value;
- },
- configurable: true
- });
-
- obj.verifySetFunction1 = "data1";
- var getFunc = function () {
- return obj.verifySetFunction1;
- };
- var setFunc = function (value) {
- obj.verifySetFunction1 = value;
- };
-
- Object.defineProperty(obj, "0", {
- get: getFunc,
- set: setFunc
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction1", false, true);
- } finally {
- delete obj[0];
- delete obj.verifySetFunction;
- delete obj.verifySetFunction1;
- }
- }
-runTestCase(testcase);
+
+var obj = fnGlobalObject();
+try {
+ obj.verifySetFunction = "data";
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return obj.verifySetFunction;
+ },
+ set: function (value) {
+ obj.verifySetFunction = value;
+ },
+ configurable: true
+ });
+
+ obj.verifySetFunction1 = "data1";
+ var getFunc = function () {
+ return obj.verifySetFunction1;
+ };
+ var setFunc = function (value) {
+ obj.verifySetFunction1 = value;
+ };
+
+ Object.defineProperty(obj, "0", {
+ get: getFunc,
+ set: setFunc
+ });
+
+ verifyEqualTo(obj, "0", getFunc());
+
+ verifyWritable(obj, "0", "verifySetFunction1");
+
+ verifyNotEnumerable(obj, "0");
+
+ verifyConfigurable(obj, "0");
+} finally {
+ delete obj[0];
+ delete obj.verifySetFunction;
+ delete obj.verifySetFunction1;
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-2.js
index e705a17bd..15baa9b12 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-2.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-2.js
@@ -11,39 +11,40 @@ description: >
of indexed accessor property 'P' successfully when
[[Configurable]] attribute is true, 'A' is an Array object (8.12.9
step 11)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = [];
-
- obj.verifySetFunction = "data";
- Object.defineProperty(obj, "0", {
- get: function () {
- return obj.verifySetFunction;
- },
- set: function (value) {
- obj.verifySetFunction = value;
- },
- configurable: true
- });
-
- obj.verifySetFunction1 = "data1";
- var getFunc = function () {
- return obj.verifySetFunction1;
- };
- var setFunc = function (value) {
- obj.verifySetFunction1 = value;
- };
-
- Object.defineProperty(obj, "0", {
- get: getFunc,
- set: setFunc
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction1", false, true);
- }
-runTestCase(testcase);
+
+var obj = [];
+
+obj.verifySetFunction = "data";
+Object.defineProperty(obj, "0", {
+ get: function () {
+ return obj.verifySetFunction;
+ },
+ set: function (value) {
+ obj.verifySetFunction = value;
+ },
+ configurable: true
+});
+
+obj.verifySetFunction1 = "data1";
+var getFunc = function () {
+ return obj.verifySetFunction1;
+};
+var setFunc = function (value) {
+ obj.verifySetFunction1 = value;
+};
+
+Object.defineProperty(obj, "0", {
+ get: getFunc,
+ set: setFunc
+});
+
+verifyEqualTo(obj, "0", getFunc());
+
+verifyWritable(obj, "0", "verifySetFunction1");
+
+verifyNotEnumerable(obj, "0");
+
+verifyConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-3.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-3.js
index 85fe3ca93..458556b0d 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-3.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-3.js
@@ -10,41 +10,42 @@ description: >
Object.defineProperty will update [[Get]] and [[Set]] attributes
of named accessor property successfully when [[Configurable]]
attribute is true, 'O' is an Arguments object (8.12.9 step 11)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = (function () {
- return arguments;
- }());
-
- obj.verifySetFunction = "data";
- Object.defineProperty(obj, "property", {
- get: function () {
- return obj.verifySetFunction;
- },
- set: function (value) {
- obj.verifySetFunction = value;
- },
- configurable: true
- });
-
- obj.verifySetFunction1 = "data1";
- var getFunc = function () {
- return obj.verifySetFunction1;
- };
- var setFunc = function (value) {
- obj.verifySetFunction1 = value;
- };
-
- Object.defineProperty(obj, "property", {
- get: getFunc,
- set: setFunc
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction1", false, true);
- }
-runTestCase(testcase);
+
+var obj = (function () {
+ return arguments;
+}());
+
+obj.verifySetFunction = "data";
+Object.defineProperty(obj, "property", {
+ get: function () {
+ return obj.verifySetFunction;
+ },
+ set: function (value) {
+ obj.verifySetFunction = value;
+ },
+ configurable: true
+});
+
+obj.verifySetFunction1 = "data1";
+var getFunc = function () {
+ return obj.verifySetFunction1;
+};
+var setFunc = function (value) {
+ obj.verifySetFunction1 = value;
+};
+
+Object.defineProperty(obj, "property", {
+ get: getFunc,
+ set: setFunc
+});
+
+verifyEqualTo(obj, "property", getFunc());
+
+verifyWritable(obj, "property", "verifySetFunction1");
+
+verifyNotEnumerable(obj, "property");
+
+verifyConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-4.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-4.js
index b0f2a8034..54a495661 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-531-4.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-531-4.js
@@ -10,45 +10,45 @@ description: >
Object.defineProperty will update [[Get]] and [[Set]] attributes
of named accessor property 'P' successfully when [[Configurable]]
attribute is true, 'O' is the global object (8.12.9 step 11)
-includes:
- - runTestCase.js
- - fnGlobalObject.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js, fnGlobalObject.js]
---*/
-function testcase() {
-
- var obj = fnGlobalObject();
- try {
- obj.verifySetFunction = "data";
- Object.defineProperty(obj, "property", {
- get: function () {
- return obj.verifySetFunction;
- },
- set: function (value) {
- obj.verifySetFunction = value;
- },
- configurable: true
- });
-
- obj.verifySetFunction1 = "data1";
- var getFunc = function () {
- return obj.verifySetFunction1;
- };
- var setFunc = function (value) {
- obj.verifySetFunction1 = value;
- };
-
- Object.defineProperty(obj, "property", {
- get: getFunc,
- set: setFunc
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction1", false, true);
- } finally {
- delete obj.property;
- delete obj.verifySetFunction;
- delete obj.verifySetFunction1;
- }
- }
-runTestCase(testcase);
+
+var obj = fnGlobalObject();
+try {
+ obj.verifySetFunction = "data";
+ Object.defineProperty(obj, "property", {
+ get: function () {
+ return obj.verifySetFunction;
+ },
+ set: function (value) {
+ obj.verifySetFunction = value;
+ },
+ configurable: true
+ });
+
+ obj.verifySetFunction1 = "data1";
+ var getFunc = function () {
+ return obj.verifySetFunction1;
+ };
+ var setFunc = function (value) {
+ obj.verifySetFunction1 = value;
+ };
+
+ Object.defineProperty(obj, "property", {
+ get: getFunc,
+ set: setFunc
+ });
+
+ verifyEqualTo(obj, "property", getFunc());
+
+ verifyWritable(obj, "property", "verifySetFunction1");
+
+ verifyNotEnumerable(obj, "property");
+
+ verifyConfigurable(obj, "property");
+} finally {
+ delete obj.property;
+ delete obj.verifySetFunction;
+ delete obj.verifySetFunction1;
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-1.js
index ce59418d5..99918d563 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-1.js
@@ -10,38 +10,53 @@ description: >
ES5 Attributes - Updating an indexed 'P' whose [[Configurable]]
attribute is true to a data property is successful, 'A' is an
Array object (8.12.9 - step 9.c.i)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = [];
-
- obj.verifySetFunc = "data";
- var getFunc = function () {
- return obj.verifySetFunc;
- };
-
- var setFunc = function (value) {
- obj.verifySetFunc = value;
- };
-
- Object.defineProperty(obj, "0", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- });
- var desc1 = Object.getOwnPropertyDescriptor(obj, "0");
-
- Object.defineProperty(obj, "0", {
- value: 1001
- });
- var desc2 = Object.getOwnPropertyDescriptor(obj, "0");
-
- return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value") &&
- typeof desc2.get === "undefined" && typeof desc2.get === "undefined" &&
- dataPropertyAttributesAreCorrect(obj, "0", 1001, false, true, true);
- }
-runTestCase(testcase);
+var obj = [];
+
+obj.verifySetFunc = "data";
+var getFunc = function () {
+ return obj.verifySetFunc;
+};
+
+var setFunc = function (value) {
+ obj.verifySetFunc = value;
+};
+
+Object.defineProperty(obj, "0", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "0");
+
+Object.defineProperty(obj, "0", {
+ value: 1001
+});
+var desc2 = Object.getOwnPropertyDescriptor(obj, "0");
+
+if (!desc1.hasOwnProperty("get")) {
+ $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get"));
+}
+
+if (!desc2.hasOwnProperty("value")) {
+ $ERROR('Expected desc2.hasOwnProperty("value") to be true, actually ' + desc2.hasOwnProperty("value"));
+}
+
+if (typeof desc2.get !== "undefined") {
+ $ERROR('Expected typeof desc2.get === "undefined", actually ' + typeof desc2.get);
+}
+
+if (typeof desc2.set !== "undefined") {
+ $ERROR('Expected typeof desc2.set === "undefined", actually ' + typeof desc2.set);
+}
+
+verifyEqualTo(obj, "0", 1001);
+
+verifyNotWritable(obj, "0");
+
+verifyEnumerable(obj, "0");
+
+verifyConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-2.js
index d40aa701b..86e34a4f3 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-2.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-2.js
@@ -10,40 +10,57 @@ description: >
ES5 Attributes - Updating a named accessor property 'P' whose
[[Configurable]] attribute is true to a data property is
successful, 'O' is an Arguments object
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = (function () {
- return arguments;
- }());
-
- obj.verifySetFunc = "data";
- var getFunc = function () {
- return obj.verifySetFunc;
- };
-
- var setFunc = function (value) {
- obj.verifySetFunc = value;
- };
-
- Object.defineProperty(obj, "prop", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- });
- var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
-
- Object.defineProperty(obj, "prop", {
- value: 1001
- });
- var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-
- return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value") &&
- typeof desc2.get === "undefined" && typeof desc2.get === "undefined" &&
- dataPropertyAttributesAreCorrect(obj, "prop", 1001, false, true, true);
- }
-runTestCase(testcase);
+var obj = (function () {
+ return arguments;
+}());
+
+obj.verifySetFunc = "data";
+var getFunc = function () {
+ return obj.verifySetFunc;
+};
+
+var setFunc = function (value) {
+ obj.verifySetFunc = value;
+};
+
+Object.defineProperty(obj, "prop", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+Object.defineProperty(obj, "prop", {
+ value: 1001
+});
+var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+if (!desc1.hasOwnProperty("get") ) {
+ $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get"));
+}
+
+if (!desc2.hasOwnProperty("value") ) {
+ $ERROR('Expected desc2.hasOwnProperty("value") to be true, actually ' + desc2.hasOwnProperty("value"));
+}
+
+if (typeof desc2.get !== "undefined" ) {
+ $ERROR('Expected typeof desc2.get === "undefined" , actually ' + typeof desc2.get );
+}
+
+if (typeof desc2.set !== "undefined" ) {
+ $ERROR('Expected typeof desc2.set === "undefined" , actually ' + typeof desc2.set );
+}
+
+verifyEqualTo(obj, "prop", 1001);
+
+verifyNotWritable(obj, "prop");
+
+verifyEnumerable(obj, "prop");
+
+verifyConfigurable(obj, "prop");
+
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-3.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-3.js
index 5f1078e3d..2f247104a 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-3.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-3.js
@@ -10,43 +10,59 @@ description: >
ES5 Attributes - Updating a named accessor property 'P' whose
[[Configurable]] attribute is true to a data property is
successful, 'O' is the global object
-includes:
- - runTestCase.js
- - fnGlobalObject.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js, fnGlobalObject.js]
---*/
-function testcase() {
- var obj = fnGlobalObject();
-
- obj.verifySetFunc = "data";
- var getFunc = function () {
- return obj.verifySetFunc;
- };
-
- var setFunc = function (value) {
- obj.verifySetFunc = value;
- };
- try {
- Object.defineProperty(obj, "prop", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- });
- var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
-
- Object.defineProperty(obj, "prop", {
- value: 1001
- });
- var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-
- return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value") &&
- typeof desc2.get === "undefined" && typeof desc2.get === "undefined" &&
- dataPropertyAttributesAreCorrect(obj, "prop", 1001, false, true, true);
- } finally {
- delete obj.prop;
- delete obj.verifySetFunc;
- }
+var obj = fnGlobalObject();
+
+obj.verifySetFunc = "data";
+var getFunc = function () {
+ return obj.verifySetFunc;
+};
+
+var setFunc = function (value) {
+ obj.verifySetFunc = value;
+};
+try {
+ Object.defineProperty(obj, "prop", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+ });
+ var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+ Object.defineProperty(obj, "prop", {
+ value: 1001
+ });
+ var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+ if (!desc1.hasOwnProperty("get")) {
+ $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get"));
}
-runTestCase(testcase);
+
+ if (!desc2.hasOwnProperty("value")) {
+ $ERROR('Expected desc2.hasOwnProperty("value") to be true, actually ' + desc2.hasOwnProperty("value"));
+ }
+
+ if (typeof desc2.get !== "undefined") {
+ $ERROR('Expected typeof desc2.get === "undefined", actually ' + typeof desc2.get);
+ }
+
+ if (typeof desc2.set !== "undefined") {
+ $ERROR('Expected typeof desc2.set === "undefined", actually ' + typeof desc2.set);
+ }
+
+ verifyEqualTo(obj, "prop", 1001);
+
+ verifyNotWritable(obj, "prop");
+
+ verifyEnumerable(obj, "prop");
+
+ verifyConfigurable(obj, "prop");
+
+} finally {
+ delete obj.prop;
+ delete obj.verifySetFunc;
+}
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-5.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-5.js
index e6b8c1596..4cf7c3c4e 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-5.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-5.js
@@ -10,38 +10,56 @@ description: >
ES5 Attributes - Updating a named accessor property 'P' whose
[[Configurable]] attribute is true to a data property is
successful, 'A' is an Array object (8.12.9 - step 9.c.i)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = [];
-
- obj.verifySetFunc = "data";
- var getFunc = function () {
- return obj.verifySetFunc;
- };
-
- var setFunc = function (value) {
- obj.verifySetFunc = value;
- };
-
- Object.defineProperty(obj, "prop", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- });
- var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
-
- Object.defineProperty(obj, "prop", {
- value: 1001
- });
- var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-
- return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value") &&
- typeof desc2.get === "undefined" && typeof desc2.get === "undefined" &&
- dataPropertyAttributesAreCorrect(obj, "prop", 1001, false, true, true);
- }
-runTestCase(testcase);
+var obj = [];
+
+obj.verifySetFunc = "data";
+var getFunc = function () {
+ return obj.verifySetFunc;
+};
+
+var setFunc = function (value) {
+ obj.verifySetFunc = value;
+};
+
+Object.defineProperty(obj, "prop", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+Object.defineProperty(obj, "prop", {
+ value: 1001
+});
+var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+if (!desc1.hasOwnProperty("get") ) {
+ $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get"));
+}
+
+if (!desc2.hasOwnProperty("value") ) {
+ $ERROR('Expected desc2.hasOwnProperty("value") to be true, actually ' + desc2.hasOwnProperty("value"));
+}
+
+if (typeof desc2.get !== "undefined" ) {
+ $ERROR('Expected typeof desc2.get === "undefined" , actually ' + typeof desc2.get);
+}
+
+if (typeof desc2.set !== "undefined" ) {
+ $ERROR('Expected typeof desc2.set === "undefined" , actually ' + typeof desc2.set);
+}
+
+
+verifyEqualTo(obj, "prop", 1001);
+
+verifyNotWritable(obj, "prop");
+
+verifyEnumerable(obj, "prop");
+
+verifyConfigurable(obj, "prop");
+
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-6.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-6.js
index 40ce80c5f..3d61bc301 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-6.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-6.js
@@ -10,40 +10,55 @@ description: >
ES5 Attributes - Updating an indexed accessor property 'P' whose
[[Configurable]] attribute is true to a data property is
successful, 'O' is an Arguments object
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = (function () {
- return arguments;
- }());
-
- obj.verifySetFunc = "data";
- var getFunc = function () {
- return obj.verifySetFunc;
- };
-
- var setFunc = function (value) {
- obj.verifySetFunc = value;
- };
-
- Object.defineProperty(obj, "0", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- });
- var desc1 = Object.getOwnPropertyDescriptor(obj, "0");
-
- Object.defineProperty(obj, "0", {
- value: 1001
- });
- var desc2 = Object.getOwnPropertyDescriptor(obj, "0");
-
- return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value") &&
- typeof desc2.get === "undefined" && typeof desc2.get === "undefined" &&
- dataPropertyAttributesAreCorrect(obj, "0", 1001, false, true, true);
- }
-runTestCase(testcase);
+var obj = (function () {
+ return arguments;
+}());
+
+obj.verifySetFunc = "data";
+var getFunc = function () {
+ return obj.verifySetFunc;
+};
+
+var setFunc = function (value) {
+ obj.verifySetFunc = value;
+};
+
+Object.defineProperty(obj, "0", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "0");
+
+Object.defineProperty(obj, "0", {
+ value: 1001
+});
+var desc2 = Object.getOwnPropertyDescriptor(obj, "0");
+
+if (!desc1.hasOwnProperty("get") ) {
+ $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get"));
+}
+
+if (!desc2.hasOwnProperty("value") ) {
+ $ERROR('Expected desc2.hasOwnProperty("value") to be true, actually ' + desc2.hasOwnProperty("value"));
+}
+
+if (typeof desc2.get !== "undefined" ) {
+ $ERROR('Expected typeof desc2.get === "undefined" , actually ' + typeof desc2.get);
+}
+
+if (typeof desc2.set !== "undefined" ) {
+ $ERROR('Expected typeof desc2.set === "undefined" , actually ' + typeof desc2.set);
+}
+
+verifyEqualTo(obj, "0", 1001);
+
+verifyNotWritable(obj, "0");
+
+verifyEnumerable(obj, "0");
+
+verifyConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-7.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-7.js
index 1273fd5e3..b7c43a7de 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-538-7.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-538-7.js
@@ -10,43 +10,58 @@ description: >
ES5 Attributes - Updating an indexed accessor property 'P' whose
[[Configurable]] attribute is true to a data property is
successful, 'O' is the global object
-includes:
- - runTestCase.js
- - fnGlobalObject.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js, fnGlobalObject.js]
---*/
-function testcase() {
- var obj = fnGlobalObject();
-
- obj.verifySetFunc = "data";
- var getFunc = function () {
- return obj.verifySetFunc;
- };
-
- var setFunc = function (value) {
- obj.verifySetFunc = value;
- };
- try {
- Object.defineProperty(obj, "0", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- });
- var desc1 = Object.getOwnPropertyDescriptor(obj, "0");
-
- Object.defineProperty(obj, "0", {
- value: 1001
- });
- var desc2 = Object.getOwnPropertyDescriptor(obj, "0");
-
- return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value") &&
- typeof desc2.get === "undefined" && typeof desc2.get === "undefined" &&
- dataPropertyAttributesAreCorrect(obj, "0", 1001, false, true, true);
- } finally {
- delete obj[0];
- delete obj.verifySetFunc;
- }
+var obj = fnGlobalObject();
+
+obj.verifySetFunc = "data";
+var getFunc = function () {
+ return obj.verifySetFunc;
+};
+
+var setFunc = function (value) {
+ obj.verifySetFunc = value;
+};
+try {
+ Object.defineProperty(obj, "0", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+ });
+ var desc1 = Object.getOwnPropertyDescriptor(obj, "0");
+
+ Object.defineProperty(obj, "0", {
+ value: 1001
+ });
+ var desc2 = Object.getOwnPropertyDescriptor(obj, "0");
+
+ if (!desc1.hasOwnProperty("get")) {
+ $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get"));
+ }
+
+ if (!desc2.hasOwnProperty("value")) {
+ $ERROR('Expected desc2.hasOwnProperty("value") to be true, actually ' + desc2.hasOwnProperty("value"));
+ }
+
+ if (typeof desc2.get !== "undefined") {
+ $ERROR('Expected typeof desc2.get === "undefined", actually ' + typeof desc2.get);
}
-runTestCase(testcase);
+
+ if (typeof desc2.set !== "undefined") {
+ $ERROR('Expected typeof desc2.set === "undefined", actually ' + typeof desc2.get);
+ }
+
+ verifyEqualTo(obj, "0", 1001);
+
+ verifyNotWritable(obj, "0");
+
+ verifyEnumerable(obj, "0");
+
+ verifyConfigurable(obj, "0");
+} finally {
+ delete obj[0];
+ delete obj.verifySetFunc;
+}
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-538.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-538.js
index 753a63d81..19eb123e4 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-538.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-538.js
@@ -10,38 +10,53 @@ description: >
ES5 Attributes - success to update the accessor property ([[Get]]
is a Function, [[Set]] is a Function, [[Enumerable]] is true,
[[Configurable]] is true) to a data property
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
-
- var getFunc = function () {
- return 1001;
- };
-
- var verifySetFunc = "data";
- var setFunc = function (value) {
- verifySetFunc = value;
- };
-
- Object.defineProperty(obj, "prop", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- });
- var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
-
- Object.defineProperty(obj, "prop", {
- value: 1001
- });
- var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-
- return desc1.hasOwnProperty("get") && desc2.hasOwnProperty("value") &&
- typeof desc2.get === "undefined" && typeof desc2.get === "undefined" &&
- dataPropertyAttributesAreCorrect(obj, "prop", 1001, false, true, true);
- }
-runTestCase(testcase);
+var obj = {};
+
+var getFunc = function () {
+ return 1001;
+};
+
+var verifySetFunc = "data";
+var setFunc = function (value) {
+ verifySetFunc = value;
+};
+
+Object.defineProperty(obj, "prop", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+Object.defineProperty(obj, "prop", {
+ value: 1001
+});
+var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+if (!desc1.hasOwnProperty("get") ) {
+ $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get"));
+}
+
+if (!desc2.hasOwnProperty("value") ) {
+ $ERROR('Expected desc2.hasOwnProperty("value") to be true, actually ' + desc2.hasOwnProperty("value"));
+}
+
+if (typeof desc2.get !== "undefined" ) {
+ $ERROR('Expected typeof desc2.get === "undefined" , actually ' + typeof desc2.get );
+}
+
+
+verifyEqualTo(obj, "prop", 1001);
+
+verifyNotWritable(obj, "prop");
+
+verifyEnumerable(obj, "prop");
+
+verifyConfigurable(obj, "prop");
+
+
+
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-1.js
index 8017d5d92..a94d61d7f 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-1.js
@@ -11,48 +11,63 @@ description: >
attributes of a named accessor property 'P' whose [[Configurable]]
attribute is false and throws TypeError exception, 'O' is an
Object object (8.12.9 step 11.a)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
-
- obj.verifySetFunction = "data";
- var getFunc = function () {
- return obj.verifySetFunction;
- };
- var setFunc = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "property", {
- get: getFunc,
- set: setFunc,
- configurable: false
- });
-
- var result = false;
- try {
- Object.defineProperty(obj, "property", {
- get: function () {
- return 100;
- }
- });
- } catch (e) {
- result = e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction", false, false);
+var obj = {};
+
+obj.verifySetFunction = "data";
+var getFunc = function () {
+ return obj.verifySetFunction;
+};
+var setFunc = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "property", {
+ get: getFunc,
+ set: setFunc,
+ configurable: false
+});
+
+var result = false;
+try {
+ Object.defineProperty(obj, "property", {
+ get: function () {
+ return 100;
}
+ });
+} catch (e) {
+ result = e instanceof TypeError;
+ verifyEqualTo(obj, "property", getFunc());
+
+ verifyWritable(obj, "property", "verifySetFunction");
- try {
- Object.defineProperty(obj, "property", {
- set: function (value) {
- obj.verifySetFunction1 = value;
- }
- });
- } catch (e1) {
- return result && e1 instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction", false, false);
+ verifyNotEnumerable(obj, "property");
+
+ verifyNotConfigurable(obj, "property");
+}
+
+try {
+ Object.defineProperty(obj, "property", {
+ set: function (value) {
+ obj.verifySetFunction1 = value;
}
+ });
+} catch (e) {
+ if (!result) {
+ $ERROR('Expected result to be true, actually ' + result);
}
-runTestCase(testcase);
+
+ verifyEqualTo(obj, "property", getFunc());
+
+ verifyWritable(obj, "property", "verifySetFunction");
+
+ verifyNotEnumerable(obj, "property");
+
+ verifyNotConfigurable(obj, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-2.js
index b02f2b210..a4bb927b8 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-2.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-2.js
@@ -11,48 +11,63 @@ description: >
attributes of an indexed property 'P' whose [[Configurable]]
attribute is false and throws TypeError exception, 'A' is an Array
object (8.12.9 step 11.a)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = [];
-
- obj.verifySetFunction = "data";
- var getFunc = function () {
- return obj.verifySetFunction;
- };
- var setFunc = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "0", {
- get: getFunc,
- set: setFunc,
- configurable: false
- });
-
- var result = false;
- try {
- Object.defineProperty(obj, "0", {
- get: function () {
- return 100;
- }
- });
- } catch (e) {
- result = e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction", false, false);
+var obj = [];
+
+obj.verifySetFunction = "data";
+var getFunc = function () {
+ return obj.verifySetFunction;
+};
+var setFunc = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "0", {
+ get: getFunc,
+ set: setFunc,
+ configurable: false
+});
+
+var result = false;
+try {
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return 100;
}
+ });
+} catch (e) {
+ result = e instanceof TypeError;
+ verifyEqualTo(obj, "0", getFunc());
+
+ verifyWritable(obj, "0", "verifySetFunction");
- try {
- Object.defineProperty(obj, "0", {
- set: function (value) {
- obj.verifySetFunction1 = value;
- }
- });
- } catch (e1) {
- return result && e1 instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction", false, false);
+ verifyNotEnumerable(obj, "0");
+
+ verifyNotConfigurable(obj, "0");
+}
+
+try {
+ Object.defineProperty(obj, "0", {
+ set: function (value) {
+ obj.verifySetFunction1 = value;
}
+ });
+} catch (e) {
+ if (!result ) {
+ $ERROR('Expected result to be true, actually ' + result );
}
-runTestCase(testcase);
+
+ verifyEqualTo(obj, "0", getFunc());
+
+ verifyWritable(obj, "0", "verifySetFunction");
+
+ verifyNotEnumerable(obj, "0");
+
+ verifyNotConfigurable(obj, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-3.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-3.js
index af693e648..53abf3c1c 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-3.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-3.js
@@ -10,50 +10,66 @@ description: >
Object.defineProperty fails to update [[Get]] and [[Set]]
attributes of a named accessor property 'P' whose [[Configurable]]
attribute is false, 'O' is an Arguments object (8.12.9 step 11.a)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = (function () {
- return arguments;
- }());
-
- obj.verifySetFunction = "data";
- var getFunc = function () {
- return obj.verifySetFunction;
- };
- var setFunc = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "property", {
- get: getFunc,
- set: setFunc,
- configurable: false
- });
-
- var result = false;
- try {
- Object.defineProperty(obj, "property", {
- get: function () {
- return 100;
- }
- });
- } catch (e) {
- result = e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction", false, false);
+var obj = (function () {
+ return arguments;
+}());
+
+obj.verifySetFunction = "data";
+var getFunc = function () {
+ return obj.verifySetFunction;
+};
+var setFunc = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "property", {
+ get: getFunc,
+ set: setFunc,
+ configurable: false
+});
+
+var result = false;
+try {
+ Object.defineProperty(obj, "property", {
+ get: function () {
+ return 100;
}
+ });
+} catch (e) {
+ result = e instanceof TypeError;
+ verifyEqualTo(obj, "property", getFunc());
+
+ verifyWritable(obj, "property", "verifySetFunction");
+
+ verifyNotEnumerable(obj, "property");
- try {
- Object.defineProperty(obj, "property", {
- set: function (value) {
- obj.verifySetFunction1 = value;
- }
- });
- } catch (e1) {
- return result && e1 instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "verifySetFunction", false, false);
+ verifyNotConfigurable(obj, "property");
+}
+
+try {
+ Object.defineProperty(obj, "property", {
+ set: function (value) {
+ obj.verifySetFunction1 = value;
}
+ });
+} catch (e) {
+
+ if (!result) {
+ $ERROR('Expected result to be true, actually ' + result);
}
-runTestCase(testcase);
+
+ verifyEqualTo(obj, "property", getFunc());
+
+ verifyWritable(obj, "property", "verifySetFunction");
+
+ verifyNotEnumerable(obj, "property");
+
+ verifyNotConfigurable(obj, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-6.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-6.js
index b6cf00397..86b70029c 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-6.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-6.js
@@ -11,48 +11,65 @@ description: >
attributes of an indexed accessor property 'P' whose
[[Configurable]] attribute is false and throws TypeError
exception, 'O' is an Object object (8.12.9 step 11.a)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
-
- obj.verifySetFunction = "data";
- var getFunc = function () {
- return obj.verifySetFunction;
- };
- var setFunc = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "0", {
- get: getFunc,
- set: setFunc,
- configurable: false
- });
-
- var result = false;
- try {
- Object.defineProperty(obj, "0", {
- get: function () {
- return 100;
- }
- });
- } catch (e) {
- result = e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction", false, false);
+var obj = {};
+
+obj.verifySetFunction = "data";
+var getFunc = function () {
+ return obj.verifySetFunction;
+};
+var setFunc = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "0", {
+ get: getFunc,
+ set: setFunc,
+ configurable: false
+});
+
+var result = false;
+try {
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return 100;
}
+ });
+} catch (e) {
+ result = e instanceof TypeError;
+
+ verifyEqualTo(obj, "0", getFunc());
+
+ verifyWritable(obj, "0", "verifySetFunction");
- try {
- Object.defineProperty(obj, "0", {
- set: function (value) {
- obj.verifySetFunction1 = value;
- }
- });
- } catch (e1) {
- return result && e1 instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction", false, false);
+ verifyNotEnumerable(obj, "0");
+
+ verifyNotConfigurable(obj, "0");
+}
+
+try {
+ Object.defineProperty(obj, "0", {
+ set: function (value) {
+ obj.verifySetFunction1 = value;
}
+ });
+} catch (e) {
+ if (!result) {
+ $ERROR('Expected result to be true, actually ' + result);
}
-runTestCase(testcase);
+
+ verifyEqualTo(obj, "0", getFunc());
+
+ verifyWritable(obj, "0", "verifySetFunction");
+
+ verifyNotEnumerable(obj, "0");
+
+ verifyNotConfigurable(obj, "0");
+
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-7.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-7.js
index bbf262895..930d477ca 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-7.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-7.js
@@ -11,48 +11,65 @@ description: >
attributes of a named property 'P' whose [[Configurable]]
attribute is false and throws TypeError exception, 'A' is an Array
object (8.12.9 step 11.a)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = [];
-
- obj.verifySetFunction = "data";
- var getFunc = function () {
- return obj.verifySetFunction;
- };
- var setFunc = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "prop", {
- get: getFunc,
- set: setFunc,
- configurable: false
- });
-
- var result = false;
- try {
- Object.defineProperty(obj, "prop", {
- get: function () {
- return 100;
- }
- });
- } catch (e) {
- result = e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "prop", getFunc, setFunc, "verifySetFunction", false, false);
+var obj = [];
+
+obj.verifySetFunction = "data";
+var getFunc = function () {
+ return obj.verifySetFunction;
+};
+var setFunc = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "prop", {
+ get: getFunc,
+ set: setFunc,
+ configurable: false
+});
+
+var result = false;
+try {
+ Object.defineProperty(obj, "prop", {
+ get: function () {
+ return 100;
}
+ });
+} catch (e) {
+ result = e instanceof TypeError;
+ verifyEqualTo(obj, "prop", getFunc());
+
+ verifyWritable(obj, "prop", "verifySetFunction");
+
+ verifyNotEnumerable(obj, "prop");
- try {
- Object.defineProperty(obj, "prop", {
- set: function (value) {
- obj.verifySetFunction1 = value;
- }
- });
- } catch (e1) {
- return result && e1 instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "prop", getFunc, setFunc, "verifySetFunction", false, false);
+ verifyNotConfigurable(obj, "prop");
+}
+
+try {
+ Object.defineProperty(obj, "prop", {
+ set: function (value) {
+ obj.verifySetFunction1 = value;
}
+ });
+} catch (e1) {
+ if (!result) {
+ $ERROR('Expected result to be true, actually ' + result);
}
-runTestCase(testcase);
+
+
+ verifyEqualTo(obj, "prop", getFunc());
+
+ verifyWritable(obj, "prop", "verifySetFunction");
+
+ verifyNotEnumerable(obj, "prop");
+
+ verifyNotConfigurable(obj, "prop");
+
+
+ if (!(e1 instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e1);
+ }
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-8.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-8.js
index b1851c950..5049fac76 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-540-8.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-540-8.js
@@ -11,50 +11,65 @@ description: >
attributes of an indexed accessor property 'P' whose
[[Configurable]] attribute is false, 'O' is an Arguments object
(8.12.9 step 11.a)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = (function () {
- return arguments;
- }());
-
- obj.verifySetFunction = "data";
- var getFunc = function () {
- return obj.verifySetFunction;
- };
- var setFunc = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "0", {
- get: getFunc,
- set: setFunc,
- configurable: false
- });
-
- var result = false;
- try {
- Object.defineProperty(obj, "0", {
- get: function () {
- return 100;
- }
- });
- } catch (e) {
- result = e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction", false, false);
+var obj = (function () {
+ return arguments;
+}());
+
+obj.verifySetFunction = "data";
+var getFunc = function () {
+ return obj.verifySetFunction;
+};
+var setFunc = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "0", {
+ get: getFunc,
+ set: setFunc,
+ configurable: false
+});
+
+var result = false;
+try {
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return 100;
}
+ });
+} catch (e) {
+ result = e instanceof TypeError;
+ verifyEqualTo(obj, "0", getFunc());
+
+ verifyWritable(obj, "0", "verifySetFunction");
- try {
- Object.defineProperty(obj, "0", {
- set: function (value) {
- obj.verifySetFunction1 = value;
- }
- });
- } catch (e1) {
- return result && e1 instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunction", false, false);
+ verifyNotEnumerable(obj, "0");
+
+ verifyNotConfigurable(obj, "0");
+}
+
+try {
+ Object.defineProperty(obj, "0", {
+ set: function (value) {
+ obj.verifySetFunction1 = value;
}
+ });
+} catch (e) {
+ if (!result ) {
+ $ERROR('Expected result to be true, actually ' + result );
}
-runTestCase(testcase);
+
+ verifyEqualTo(obj, "0", getFunc());
+
+ verifyWritable(obj, "0", "verifySetFunction");
+
+ verifyNotEnumerable(obj, "0");
+
+ verifyNotConfigurable(obj, "0");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-547-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-547-1.js
index dd7ef5a03..64f55d76a 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-547-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-547-1.js
@@ -10,42 +10,57 @@ description: >
ES5 Attributes - Updating an indexed accessor property 'P' whose
[[Configurable]] attribute is false to a data property does not
succeed, 'A' is an Array object (8.12.9 step 9.a)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = [];
-
- obj.verifySetFunc = "data";
- var getFunc = function () {
- return obj.verifySetFunc;
- };
-
- var setFunc = function (value) {
- obj.verifySetFunc = value;
- };
-
- Object.defineProperty(obj, "0", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: false
- });
- var desc1 = Object.getOwnPropertyDescriptor(obj, "0");
-
- try {
- Object.defineProperty(obj, "0", {
- value: 1001
- });
-
- return false;
- } catch (e) {
- var desc2 = Object.getOwnPropertyDescriptor(obj, "0");
-
- return desc1.hasOwnProperty("get") && !desc2.hasOwnProperty("value") && e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunc", true, false);
+var obj = [];
+
+obj.verifySetFunc = "data";
+var getFunc = function () {
+ return obj.verifySetFunc;
+};
+
+var setFunc = function (value) {
+ obj.verifySetFunc = value;
+};
+
+Object.defineProperty(obj, "0", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: false
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "0");
+
+try {
+ Object.defineProperty(obj, "0", {
+ value: 1001
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ var desc2 = Object.getOwnPropertyDescriptor(obj, "0");
+
+ if (!desc1.hasOwnProperty("get")) {
+ $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get"));
+ }
+
+ if (desc2.hasOwnProperty("value")) {
+ $ERROR('Expected !desc2.hasOwnProperty("value") to be true, actually ' + !desc2.hasOwnProperty("value"));
}
+
+
+ verifyEqualTo(obj, "0", getFunc());
+
+ verifyWritable(obj, "0", "verifySetFunc");
+
+ verifyEnumerable(obj, "0");
+
+ verifyNotConfigurable(obj, "0");
+
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-547-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-547-2.js
index a3a5b8e36..6fac38d03 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-547-2.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-547-2.js
@@ -10,44 +10,59 @@ description: >
ES5 Attributes - Updating a named accessor property 'P' whose
[[Configurable]] attribute is false to a data property does not
succeed, 'A' is an Arguments object (8.12.9 step 9.a)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = (function () {
- return arguments;
- }());
-
- obj.verifySetFunc = "data";
- var getFunc = function () {
- return obj.verifySetFunc;
- };
-
- var setFunc = function (value) {
- obj.verifySetFunc = value;
- };
-
- Object.defineProperty(obj, "prop", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: false
- });
- var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
-
- try {
- Object.defineProperty(obj, "prop", {
- value: 1001
- });
-
- return false;
- } catch (e) {
- var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-
- return desc1.hasOwnProperty("get") && !desc2.hasOwnProperty("value") && e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "prop", getFunc, setFunc, "verifySetFunc", true, false);
+var obj = (function () {
+ return arguments;
+}());
+
+obj.verifySetFunc = "data";
+var getFunc = function () {
+ return obj.verifySetFunc;
+};
+
+var setFunc = function (value) {
+ obj.verifySetFunc = value;
+};
+
+Object.defineProperty(obj, "prop", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: false
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+try {
+ Object.defineProperty(obj, "prop", {
+ value: 1001
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+ if (!desc1.hasOwnProperty("get")) {
+ $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get"));
}
+
+ if (desc2.hasOwnProperty("value")) {
+ $ERROR('Expected !desc2.hasOwnProperty("value") to be true, actually ' + !desc2.hasOwnProperty("value"));
}
-runTestCase(testcase);
+
+
+ verifyEqualTo(obj, "prop", getFunc());
+
+ verifyWritable(obj, "prop", "verifySetFunc");
+
+ verifyEnumerable(obj, "prop");
+
+ verifyNotConfigurable(obj, "prop");
+
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-547-3.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-547-3.js
index f0723406d..621b573af 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-547-3.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-547-3.js
@@ -10,42 +10,56 @@ description: >
ES5 Attributes - Updating a named accessor property 'P' whose
[[Configurable]] attribute is false to a data property does not
succeed, 'A' is an Array object (8.12.9 step 9.a)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = [];
-
- obj.verifySetFunc = "data";
- var getFunc = function () {
- return obj.verifySetFunc;
- };
-
- var setFunc = function (value) {
- obj.verifySetFunc = value;
- };
-
- Object.defineProperty(obj, "prop", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: false
- });
- var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
-
- try {
- Object.defineProperty(obj, "prop", {
- value: 1001
- });
-
- return false;
- } catch (e) {
- var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
-
- return desc1.hasOwnProperty("get") && !desc2.hasOwnProperty("value") && e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "prop", getFunc, setFunc, "verifySetFunc", true, false);
- }
+var obj = [];
+
+obj.verifySetFunc = "data";
+var getFunc = function () {
+ return obj.verifySetFunc;
+};
+
+var setFunc = function (value) {
+ obj.verifySetFunc = value;
+};
+
+Object.defineProperty(obj, "prop", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: false
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+try {
+ Object.defineProperty(obj, "prop", {
+ value: 1001
+ });
+
+ $ERROR("Expected an exception.");
+} catch (e) {
+ var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
+
+ if (!desc1.hasOwnProperty("get")) {
+ $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get"));
+ }
+
+ if (desc2.hasOwnProperty("value")) {
+ $ERROR('Expected !desc2.hasOwnProperty("value") to be true, actually ' + !desc2.hasOwnProperty("value"));
}
-runTestCase(testcase);
+
+
+ verifyEqualTo(obj, "prop", getFunc());
+
+ verifyWritable(obj, "prop", "verifySetFunc");
+
+ verifyEnumerable(obj, "prop");
+
+ verifyNotConfigurable(obj, "prop");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-547-4.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-547-4.js
index 0c724fb55..fa7f964d1 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-547-4.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-547-4.js
@@ -10,44 +10,57 @@ description: >
ES5 Attributes - Updating an indexed accessor property 'P' whose
[[Configurable]] attribute is false to a data property does not
succeed, 'A' is an Arguments object (8.12.9 step 9.a)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = (function () {
- return arguments;
- }());
-
- obj.verifySetFunc = "data";
- var getFunc = function () {
- return obj.verifySetFunc;
- };
-
- var setFunc = function (value) {
- obj.verifySetFunc = value;
- };
-
- Object.defineProperty(obj, "0", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: false
- });
- var desc1 = Object.getOwnPropertyDescriptor(obj, "0");
-
- try {
- Object.defineProperty(obj, "0", {
- value: 1001
- });
-
- return false;
- } catch (e) {
- var desc2 = Object.getOwnPropertyDescriptor(obj, "0");
-
- return desc1.hasOwnProperty("get") && !desc2.hasOwnProperty("value") && e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "0", getFunc, setFunc, "verifySetFunc", true, false);
- }
+var obj = (function () {
+ return arguments;
+}());
+
+obj.verifySetFunc = "data";
+var getFunc = function () {
+ return obj.verifySetFunc;
+};
+
+var setFunc = function (value) {
+ obj.verifySetFunc = value;
+};
+
+Object.defineProperty(obj, "0", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: false
+});
+var desc1 = Object.getOwnPropertyDescriptor(obj, "0");
+
+try {
+ Object.defineProperty(obj, "0", {
+ value: 1001
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ var desc2 = Object.getOwnPropertyDescriptor(obj, "0");
+
+ if (!desc1.hasOwnProperty("get")) {
+ $ERROR('Expected desc1.hasOwnProperty("get") to be true, actually ' + desc1.hasOwnProperty("get"));
+ }
+
+ if (desc2.hasOwnProperty("value")) {
+ $ERROR('Expected !desc2.hasOwnProperty("value") to be true, actually ' + !desc2.hasOwnProperty("value"));
}
-runTestCase(testcase);
+
+ verifyEqualTo(obj, "0", getFunc());
+
+ verifyWritable(obj, "0", "verifySetFunc");
+
+ verifyEnumerable(obj, "0");
+
+ verifyNotConfigurable(obj, "0");
+
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
+ }
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-55.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-55.js
index 50bb396b9..d4afddacb 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-55.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-55.js
@@ -10,26 +10,27 @@ description: >
Object.defineProperty - 'name' property doesn't exist in 'O', test
[[Enumerable]] of 'name' property of 'Attributes' is set as false
value if absent in accessor descriptor 'desc' (8.12.9 step 4.b.i)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var setFunc = function (value) {
- obj.setVerifyHelpProp = value;
- };
- var getFunc = function () {
- return 10;
- };
+var setFunc = function (value) {
+ obj.setVerifyHelpProp = value;
+};
+var getFunc = function () {
+ return 10;
+};
- Object.defineProperty(obj, "property", {
- set: setFunc,
- get: getFunc,
- configurable: true
- });
- return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "setVerifyHelpProp", false, true);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "property", {
+ set: setFunc,
+ get: getFunc,
+ configurable: true
+});
+verifyEqualTo(obj, "property", getFunc());
+
+verifyWritable(obj, "property", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "property");
+
+verifyConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-56.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-56.js
index 1b8116b42..c5cdd6a38 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-56.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-56.js
@@ -10,25 +10,26 @@ description: >
Object.defineProperty - 'name' property doesn't exist in 'O', test
[[Configurable]] of 'name' property is set as false if it is
absent in accessor descriptor 'desc' (8.12.9 step 4.b.i)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
- var setFunc = function (value) {
- obj.setVerifyHelpProp = value;
- };
- var getFunc = function () {
- return 10;
- };
+var obj = {};
+var setFunc = function (value) {
+ obj.setVerifyHelpProp = value;
+};
+var getFunc = function () {
+ return 10;
+};
- Object.defineProperty(obj, "property", {
- set: setFunc,
- get: getFunc,
- enumerable: true
- });
- return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "setVerifyHelpProp", true, false);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "property", {
+ set: setFunc,
+ get: getFunc,
+ enumerable: true
+});
+verifyEqualTo(obj, "property", getFunc());
+
+verifyWritable(obj, "property", "setVerifyHelpProp");
+
+verifyEnumerable(obj, "property");
+
+verifyNotConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-57.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-57.js
index 31a52d5c9..7c6dcbd63 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-57.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-57.js
@@ -9,36 +9,37 @@ es5id: 15.2.3.6-4-57
description: >
Object.defineProperty - 'desc' is accessor descriptor, test
updating all attribute values of 'name' (8.12.9 step 4.b.i)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
- var setFunc = function (value) {
- obj.setVerifyHelpProp = value;
- };
- var getFunc = function () {
- return 14;
- };
-
- Object.defineProperty(obj, "property", {
- get: function () {
- return 11;
- },
- set: function (value) { },
- configurable: true,
- enumerable: true
- });
-
- Object.defineProperty(obj, "property", {
- get: getFunc,
- set: setFunc,
- configurable: false,
- enumerable: false
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "property", getFunc, setFunc, "setVerifyHelpProp", false, false);
- }
-runTestCase(testcase);
+var obj = {};
+var setFunc = function (value) {
+ obj.setVerifyHelpProp = value;
+};
+var getFunc = function () {
+ return 14;
+};
+
+Object.defineProperty(obj, "property", {
+ get: function () {
+ return 11;
+ },
+ set: function (value) { },
+ configurable: true,
+ enumerable: true
+});
+
+Object.defineProperty(obj, "property", {
+ get: getFunc,
+ set: setFunc,
+ configurable: false,
+ enumerable: false
+});
+
+verifyEqualTo(obj, "property", getFunc());
+
+verifyWritable(obj, "property", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "property");
+
+verifyNotConfigurable(obj, "property");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-58.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-58.js
index 2df6ccb9c..ceb2c87f1 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-58.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-58.js
@@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-58
description: >
Object.defineProperty - 'name' is data descriptor and every fields
in 'desc' is absent (8.12.9 step 5)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true
+obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true
+
+Object.defineProperty(obj, "foo", {});
+verifyEqualTo(obj, "foo", 101);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", {});
- return dataPropertyAttributesAreCorrect(obj, "foo", 101, true, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-59.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-59.js
index 8dd4dde8f..054f51fc1 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-59.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-59.js
@@ -9,28 +9,29 @@ es5id: 15.2.3.6-4-59
description: >
Object.defineProperty - 'name' is accessor descriptor and every
fields in 'desc' is absent (8.12.9 step 5)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function getFunc() {
- return 0;
- }
- function setFunc(value) {
- obj.helpVerifySet = value;
- }
+function getFunc() {
+ return 0;
+}
+function setFunc(value) {
+ obj.helpVerifySet = value;
+}
- Object.defineProperty(obj, "foo", {
- get: getFunc,
- set: setFunc
- });
+Object.defineProperty(obj, "foo", {
+ get: getFunc,
+ set: setFunc
+});
- Object.defineProperty(obj, "foo", {});
- return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "helpVerifySet", false, false);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", {});
+verifyEqualTo(obj, "foo", getFunc());
+
+verifyWritable(obj, "foo", "helpVerifySet");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-60.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-60.js
index cffda3eb5..404aeac32 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-60.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-60.js
@@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-60
description: >
Object.defineProperty - type of desc.value is different from type
of name.value (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true
+obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true
+
+Object.defineProperty(obj, "foo", { value: "abc" });
+verifyEqualTo(obj, "foo", "abc");
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", { value: "abc" });
- return dataPropertyAttributesAreCorrect(obj, "foo", "abc", true, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-61.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-61.js
index de032453e..64ad1de97 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-61.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-61.js
@@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-61
description: >
Object.defineProperty - both desc.value and name.value are
undefined (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", { value: undefined });
+Object.defineProperty(obj, "foo", { value: undefined });
+
+Object.defineProperty(obj, "foo", { value: undefined });
+verifyEqualTo(obj, "foo", undefined);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", { value: undefined });
- return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-62.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-62.js
index cba90524d..d698a3405 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-62.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-62.js
@@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-62
description: >
Object.defineProperty - both desc.value and name.value are null
(8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", { value: null });
+Object.defineProperty(obj, "foo", { value: null });
+
+Object.defineProperty(obj, "foo", { value: null });
+verifyEqualTo(obj, "foo", null);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", { value: null });
- return dataPropertyAttributesAreCorrect(obj, "foo", null, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-64.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-64.js
index 999ea48c5..678dceb8e 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-64.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-64.js
@@ -9,22 +9,29 @@ es5id: 15.2.3.6-4-64
description: >
Object.defineProperty - desc.value = +0 and name.value = -0
(8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", { value: -0 });
+Object.defineProperty(obj, "foo", { value: -0 });
- try {
- Object.defineProperty(obj, "foo", { value: +0 });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", -0, false, false, false);
- }
+try {
+ Object.defineProperty(obj, "foo", { value: +0 });
+ $ERROR("Expected an exception.");
+} catch (e) {
+
+ verifyEqualTo(obj, "foo", -0);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-65.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-65.js
index 3c814ee1b..7db408da3 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-65.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-65.js
@@ -9,22 +9,28 @@ es5id: 15.2.3.6-4-65
description: >
Object.defineProperty - desc.value = -0 and name.value = +0
(8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", { value: +0 });
+Object.defineProperty(obj, "foo", { value: +0 });
- try {
- Object.defineProperty(obj, "foo", { value: -0 });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", +0, false, false, false);
- }
+try {
+ Object.defineProperty(obj, "foo", { value: -0 });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", +0);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-66.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-66.js
index 2faf1d540..afec0349e 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-66.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-66.js
@@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-66
description: >
Object.defineProperty - desc.value and name.value are two numbers
with different values (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true
+obj.foo = 101; // default value of attributes: writable: true, configurable: true, enumerable: true
+
+Object.defineProperty(obj, "foo", { value: 102 });
+verifyEqualTo(obj, "foo", 102);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", { value: 102 });
- return dataPropertyAttributesAreCorrect(obj, "foo", 102, true, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-67.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-67.js
index 8b859e124..a63499e38 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-67.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-67.js
@@ -10,18 +10,20 @@ description: >
Object.defineProperty - both desc.value and name.value are two
strings which have same length and same characters in
corresponding positions (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", { value: "abcd" });
+Object.defineProperty(obj, "foo", { value: "abcd" });
+
+Object.defineProperty(obj, "foo", { value: "abcd" });
+verifyEqualTo(obj, "foo", "abcd");
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", { value: "abcd" });
- return dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-68.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-68.js
index 13ca0e724..ebccee0ee 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-68.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-68.js
@@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-68
description: >
Object.defineProperty - desc.value and name.value are two strings
with different values (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- obj.foo = "abcd"; // default value of attributes: writable: true, configurable: true, enumerable: true
+obj.foo = "abcd"; // default value of attributes: writable: true, configurable: true, enumerable: true
+
+Object.defineProperty(obj, "foo", { value: "fghj" });
+verifyEqualTo(obj, "foo", "fghj");
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", { value: "fghj" });
- return dataPropertyAttributesAreCorrect(obj, "foo", "fghj", true, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-69.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-69.js
index d7a79be7d..e5a0fa95b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-69.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-69.js
@@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-69
description: >
Object.defineProperty - both desc.value and name.value are boolean
values with the same value (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", { value: true });
+Object.defineProperty(obj, "foo", { value: true });
+
+Object.defineProperty(obj, "foo", { value: true });
+verifyEqualTo(obj, "foo", true);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", { value: true });
- return dataPropertyAttributesAreCorrect(obj, "foo", true, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-70.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-70.js
index fc8b770fb..d9ce9ebe5 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-70.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-70.js
@@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-70
description: >
Object.defineProperty - desc.value and name.value are two boolean
values with different values (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- obj.foo = true; // default value of attributes: writable: true, configurable: true, enumerable: true
+obj.foo = true; // default value of attributes: writable: true, configurable: true, enumerable: true
+
+Object.defineProperty(obj, "foo", { value: false });
+verifyEqualTo(obj, "foo", false);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", { value: false });
- return dataPropertyAttributesAreCorrect(obj, "foo", false, true, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-71.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-71.js
index 5d9ff1137..afbff22e4 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-71.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-71.js
@@ -9,20 +9,22 @@ es5id: 15.2.3.6-4-71
description: >
Object.defineProperty - both desc.value and name.value are Ojbects
which refer to the same Object (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var obj1 = { length: 10 };
+var obj1 = { length: 10 };
- Object.defineProperty(obj, "foo", { value: obj1 });
+Object.defineProperty(obj, "foo", { value: obj1 });
+
+Object.defineProperty(obj, "foo", { value: obj1 });
+verifyEqualTo(obj, "foo", obj1);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", { value: obj1 });
- return dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-72.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-72.js
index 8100afcb5..1ed53cee5 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-72.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-72.js
@@ -9,21 +9,23 @@ es5id: 15.2.3.6-4-72
description: >
Object.defineProperty - desc.value and name.value are two Ojbects
which refer to the different objects (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var obj1 = { length: 10 };
- obj.foo = obj1; // default value of attributes: writable: true, configurable: true, enumerable: true
+var obj1 = { length: 10 };
+obj.foo = obj1; // default value of attributes: writable: true, configurable: true, enumerable: true
- var obj2 = { length: 20 };
+var obj2 = { length: 20 };
+
+Object.defineProperty(obj, "foo", { value: obj2 });
+verifyEqualTo(obj, "foo", obj2);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", { value: obj2 });
- return dataPropertyAttributesAreCorrect(obj, "foo", obj2, true, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-73.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-73.js
index 9627ae96f..8a56f3c83 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-73.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-73.js
@@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-73
description: >
Object.defineProperty - both desc.writable and name.writable are
boolean values with the same value (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", { writable: false});
+Object.defineProperty(obj, "foo", { writable: false});
+
+Object.defineProperty(obj, "foo", { writable: false });
+verifyEqualTo(obj, "foo", undefined);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", { writable: false });
- return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-74.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-74.js
index 39280eaed..2cd82baa8 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-74.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-74.js
@@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-74
description: >
Object.defineProperty - desc.writable and name.writable are two
boolean values with different values (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- Object.defineProperty(obj, "foo", { writable: false, configurable: true });
+var obj = {};
+
+Object.defineProperty(obj, "foo", { writable: false, configurable: true });
+
+Object.defineProperty(obj, "foo", { writable: true });
+verifyEqualTo(obj, "foo", undefined);
+
+verifyWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", { writable: true });
- return dataPropertyAttributesAreCorrect(obj, "foo", undefined, true, false, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-75.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-75.js
index 2cf4f2121..699f3e6db 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-75.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-75.js
@@ -9,28 +9,29 @@ es5id: 15.2.3.6-4-75
description: >
Object.defineProperty - both desc.[[Get]] and name.[[Get]] are two
objects which refer to the same object (8.12.9 step 6)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function getFunc() {
- return 10;
- }
- function setFunc(value) {
- obj.helpVerifySet = value;
- }
+function getFunc() {
+ return 10;
+}
+function setFunc(value) {
+ obj.helpVerifySet = value;
+}
- Object.defineProperty(obj, "foo", {
- get: getFunc,
- set: setFunc
- });
+Object.defineProperty(obj, "foo", {
+ get: getFunc,
+ set: setFunc
+});
- Object.defineProperty(obj, "foo", { get: getFunc });
- return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "helpVerifySet", false, false);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", { get: getFunc });
+verifyEqualTo(obj, "foo", getFunc());
+
+verifyWritable(obj, "foo", "helpVerifySet");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-76.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-76.js
index 943413aca..3fed2a565 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-76.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-76.js
@@ -9,33 +9,34 @@ es5id: 15.2.3.6-4-76
description: >
Object.defineProperty - desc.[[Get]] and name.[[Get]] are two
objects which refer to the different objects (8.12.9 step 6)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function getFunc1() {
- return 10;
- }
- function setFunc1(value) {
- obj.helpVerifySet = value;
- }
+function getFunc1() {
+ return 10;
+}
+function setFunc1(value) {
+ obj.helpVerifySet = value;
+}
- Object.defineProperty(obj, "foo", {
- get: getFunc1,
- set: setFunc1,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ get: getFunc1,
+ set: setFunc1,
+ configurable: true
+});
- function getFunc2() {
- return 20;
- }
+function getFunc2() {
+ return 20;
+}
- Object.defineProperty(obj, "foo", { get: getFunc2 });
- return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc2, setFunc1, "helpVerifySet", false, true);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", { get: getFunc2 });
+verifyEqualTo(obj, "foo", getFunc2());
+
+verifyWritable(obj, "foo", "helpVerifySet");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-77.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-77.js
index 790379319..6a9d4edab 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-77.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-77.js
@@ -9,22 +9,21 @@ es5id: 15.2.3.6-4-77
description: >
Object.defineProperty - both desc.[[Set]] and name.[[Set]] are two
objects which refer to the same object (8.12.9 step 6)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function setFunc(value) {
- obj.setVerifyHelpProp = value;
- }
+function setFunc(value) {
+ obj.setVerifyHelpProp = value;
+}
- Object.defineProperty(obj, "foo", { set: setFunc });
+Object.defineProperty(obj, "foo", { set: setFunc });
- Object.defineProperty(obj, "foo", { set: setFunc });
- return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc, "setVerifyHelpProp", false, false);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", { set: setFunc });
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-78.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-78.js
index df7d3b47a..5c354a07b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-78.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-78.js
@@ -9,27 +9,26 @@ es5id: 15.2.3.6-4-78
description: >
Object.defineProperty - desc.[[Set]] and name.[[Set]] are two
objects which refer to the different objects (8.12.9 step 6)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function setFunc1() { }
+function setFunc1() { }
- Object.defineProperty(obj, "foo", {
- set: setFunc1,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ set: setFunc1,
+ configurable: true
+});
- function setFunc2(value) {
- obj.setVerifyHelpProp = value;
- }
+function setFunc2(value) {
+ obj.setVerifyHelpProp = value;
+}
- Object.defineProperty(obj, "foo", { set: setFunc2 });
- return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc2, "setVerifyHelpProp", false, true);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", { set: setFunc2 });
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-79.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-79.js
index 122ec0464..652528224 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-79.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-79.js
@@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-79
description: >
Object.defineProperty - both desc.enumerable and name.enumerable
are boolean values with the same value (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", { enumerable: false });
+Object.defineProperty(obj, "foo", { enumerable: false });
+
+Object.defineProperty(obj, "foo", { enumerable: false });
+verifyEqualTo(obj, "foo", undefined);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", { enumerable: false });
- return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-80.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-80.js
index 2b4cb7dcd..8655a13c2 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-80.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-80.js
@@ -9,18 +9,20 @@ es5id: 15.2.3.6-4-80
description: >
Object.defineProperty - desc.enumerable and name.enumerable are
boolean negation of each other (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", { enumerable: false, configurable: true });
+Object.defineProperty(obj, "foo", { enumerable: false, configurable: true });
+
+Object.defineProperty(obj, "foo", { enumerable: true });
+verifyEqualTo(obj, "foo", undefined);
+
+verifyNotWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
- Object.defineProperty(obj, "foo", { enumerable: true });
- return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, true, true);
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-81.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-81.js
index f32840dfd..2c49e9198 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-81.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-81.js
@@ -9,18 +9,19 @@ es5id: 15.2.3.6-4-81
description: >
Object.defineProperty - both desc.configurable and
name.configurable are booleans with the same value (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- Object.defineProperty(obj, "foo", { configurable: false });
+var obj = {};
- Object.defineProperty(obj, "foo", { configurable: false });
- return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", { configurable: false });
+
+Object.defineProperty(obj, "foo", { configurable: false });
+verifyEqualTo(obj, "foo", undefined);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-1.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-1.js
index 769cd95b3..d6ad34920 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-1.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-1.js
@@ -13,26 +13,27 @@ description: >
'desc' is a generic descriptor which only contains [[Enumerable]]
attribute as false, 'name' property is a data property (8.12.9
step 8)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "foo", {
- value: 1001,
- writable: true,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "foo", {
- enumerable: false
- });
-
- return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, false, true);
- }
-runTestCase(testcase);
+
+var obj = {};
+
+Object.defineProperty(obj, "foo", {
+ value: 1001,
+ writable: true,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "foo", {
+ enumerable: false
+});
+
+verifyEqualTo(obj, "foo", 1001);
+
+verifyWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-10.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-10.js
index a05dceb4e..6da0583fe 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-10.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-10.js
@@ -13,33 +13,34 @@ description: >
'desc' is a generic descriptor which contains [[Enumerable]]
attribute as true and [[Configurable]] attribute is false, 'name'
property is an accessor property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- obj.verifySetFunction = "data";
- var get_func = function () {
- return obj.verifySetFunction;
- };
- var set_func = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "foo", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "foo", {
- enumerable: true,
- configurable: false
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", true, false);
- }
-runTestCase(testcase);
+
+var obj = {};
+obj.verifySetFunction = "data";
+var get_func = function () {
+ return obj.verifySetFunction;
+};
+var set_func = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "foo", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "foo", {
+ enumerable: true,
+ configurable: false
+});
+
+verifyEqualTo(obj, "foo", get_func());
+
+verifyWritable(obj, "foo", "verifySetFunction");
+
+verifyEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-11.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-11.js
index 2fac9a50e..1174d8797 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-11.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-11.js
@@ -13,33 +13,34 @@ description: >
are true, the 'desc' is a generic descriptor which contains
[[Enumerable]] and [[Configurable]] attributes as false, 'name'
property is an accessor property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- obj.verifySetFunction = "data";
- var get_func = function () {
- return obj.verifySetFunction;
- };
- var set_func = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "foo", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "foo", {
- enumerable: false,
- configurable: false
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", false, false);
- }
-runTestCase(testcase);
+
+var obj = {};
+obj.verifySetFunction = "data";
+var get_func = function () {
+ return obj.verifySetFunction;
+};
+var set_func = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "foo", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "foo", {
+ enumerable: false,
+ configurable: false
+});
+
+verifyEqualTo(obj, "foo", get_func());
+
+verifyWritable(obj, "foo", "verifySetFunction");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-12.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-12.js
index 24cc41f2c..873d8cbfe 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-12.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-12.js
@@ -13,32 +13,33 @@ description: >
the 'desc' is a generic descriptor which only contains
[[Enumerable]] attribute as true, 'name' property is an accessor
property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- obj.verifySetFunction = "data";
- var get_func = function () {
- return obj.verifySetFunction;
- };
- var set_func = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "foo", {
- get: get_func,
- set: set_func,
- enumerable: false,
- configurable: true
- });
-
- Object.defineProperty(obj, "foo", {
- enumerable: true
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", true, true);
- }
-runTestCase(testcase);
+
+var obj = {};
+obj.verifySetFunction = "data";
+var get_func = function () {
+ return obj.verifySetFunction;
+};
+var set_func = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "foo", {
+ get: get_func,
+ set: set_func,
+ enumerable: false,
+ configurable: true
+});
+
+Object.defineProperty(obj, "foo", {
+ enumerable: true
+});
+
+verifyEqualTo(obj, "foo", get_func());
+
+verifyWritable(obj, "foo", "verifySetFunction");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-13.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-13.js
index ae0699c33..f6915786b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-13.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-13.js
@@ -13,26 +13,27 @@ description: >
'desc' is a generic descriptor which only contains [[Enumerable]]
attribute as false, 'name' property is an index data property
(8.12.9 step 8)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "0", {
- value: 1001,
- writable: true,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "0", {
- enumerable: false
- });
-
- return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, false, true);
- }
-runTestCase(testcase);
+
+var obj = {};
+
+Object.defineProperty(obj, "0", {
+ value: 1001,
+ writable: true,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "0", {
+ enumerable: false
+});
+
+verifyEqualTo(obj, "0", 1001);
+
+verifyWritable(obj, "0");
+
+verifyNotEnumerable(obj, "0");
+
+verifyConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-14.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-14.js
index ef0755d24..5622180a1 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-14.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-14.js
@@ -13,27 +13,28 @@ description: >
'desc' is a generic descriptor which contains [[Enumerable]]
attribute as false and [[Configurable]] attribute as true, 'name'
property is an index data property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "0", {
- value: 1001,
- writable: true,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "0", {
- enumerable: false,
- configurable: true
- });
-
- return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, false, true);
- }
-runTestCase(testcase);
+
+var obj = {};
+
+Object.defineProperty(obj, "0", {
+ value: 1001,
+ writable: true,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "0", {
+ enumerable: false,
+ configurable: true
+});
+
+verifyEqualTo(obj, "0", 1001);
+
+verifyWritable(obj, "0");
+
+verifyNotEnumerable(obj, "0");
+
+verifyConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-15.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-15.js
index b3189647c..612957098 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-15.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-15.js
@@ -12,26 +12,27 @@ description: >
attribute of 'name' property is true, the 'desc' is a generic
descriptor which contains [[Configurable]] attribute as false,
'name' property is an index data property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- Object.defineProperty(obj, "0", {
- value: 1001,
- writable: true,
- enumerable: true,
- configurable: true
- });
+var obj = {};
- Object.defineProperty(obj, "0", {
- configurable: false
- });
+Object.defineProperty(obj, "0", {
+ value: 1001,
+ writable: true,
+ enumerable: true,
+ configurable: true
+});
- return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, true, false);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "0", {
+ configurable: false
+});
+
+verifyEqualTo(obj, "0", 1001);
+
+verifyWritable(obj, "0");
+
+verifyEnumerable(obj, "0");
+
+verifyNotConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-16.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-16.js
index b4ed23d8c..a76d1ad43 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-16.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-16.js
@@ -13,27 +13,28 @@ description: >
'desc' is a generic descriptor which contains [[Enumerable]]
attribute as true and [[Configurable]] attribute as false, 'name'
property is an index data property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "0", {
- value: 1001,
- writable: true,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "0", {
- enumerable: true,
- configurable: false
- });
-
- return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, true, false);
- }
-runTestCase(testcase);
+
+var obj = {};
+
+Object.defineProperty(obj, "0", {
+ value: 1001,
+ writable: true,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "0", {
+ enumerable: true,
+ configurable: false
+});
+
+verifyEqualTo(obj, "0", 1001);
+
+verifyWritable(obj, "0");
+
+verifyEnumerable(obj, "0");
+
+verifyNotConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-17.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-17.js
index 448d8c775..dc78b88c0 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-17.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-17.js
@@ -13,27 +13,28 @@ description: >
are true, the 'desc' is a generic descriptor which contains
[[Enumerable]] and [[Configurable]] attributes as false, 'name'
property is an index data property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "0", {
- value: 1001,
- writable: true,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "0", {
- enumerable: false,
- configurable: false
- });
-
- return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, false, false);
- }
-runTestCase(testcase);
+
+var obj = {};
+
+Object.defineProperty(obj, "0", {
+ value: 1001,
+ writable: true,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "0", {
+ enumerable: false,
+ configurable: false
+});
+
+verifyEqualTo(obj, "0", 1001);
+
+verifyWritable(obj, "0");
+
+verifyNotEnumerable(obj, "0");
+
+verifyNotConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-18.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-18.js
index 614ad6039..2cd3041a9 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-18.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-18.js
@@ -13,26 +13,27 @@ description: >
the 'desc' is a generic descriptor which only contains
[[Enumerable]] attribute as true, 'name' property is an index data
property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- Object.defineProperty(obj, "0", {
- value: 1001,
- writable: true,
- enumerable: false,
- configurable: true
- });
+var obj = {};
- Object.defineProperty(obj, "0", {
- enumerable: true
- });
+Object.defineProperty(obj, "0", {
+ value: 1001,
+ writable: true,
+ enumerable: false,
+ configurable: true
+});
- return dataPropertyAttributesAreCorrect(obj, "0", 1001, true, true, true);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "0", {
+ enumerable: true
+});
+
+verifyEqualTo(obj, "0", 1001);
+
+verifyWritable(obj, "0");
+
+verifyEnumerable(obj, "0");
+
+verifyConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-19.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-19.js
index 939fd49d1..f4322c4b0 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-19.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-19.js
@@ -13,32 +13,33 @@ description: >
'desc' is a generic descriptor which only contains [Enumerable]]
attribute as false and 'name' property is an index accessor
property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- obj.verifySetFunction = "data";
- var get_func = function () {
- return obj.verifySetFunction;
- };
- var set_func = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "0", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "0", {
- enumerable: false
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", false, true);
- }
-runTestCase(testcase);
+
+var obj = {};
+obj.verifySetFunction = "data";
+var get_func = function () {
+ return obj.verifySetFunction;
+};
+var set_func = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "0", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "0", {
+ enumerable: false
+});
+
+verifyEqualTo(obj, "0", get_func());
+
+verifyWritable(obj, "0", "verifySetFunction");
+
+verifyNotEnumerable(obj, "0");
+
+verifyConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-2.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-2.js
index 87966dcce..7c7eec05b 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-2.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-2.js
@@ -13,27 +13,28 @@ description: >
'desc' is a generic descriptor which contains [[Enumerable]]
attribute as false and [[Configurable]] attribute as true, 'name'
property is a data property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "foo", {
- value: 1001,
- writable: true,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "foo", {
- enumerable: false,
- configurable: true
- });
-
- return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, false, true);
- }
-runTestCase(testcase);
+
+var obj = {};
+
+Object.defineProperty(obj, "foo", {
+ value: 1001,
+ writable: true,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "foo", {
+ enumerable: false,
+ configurable: true
+});
+
+verifyEqualTo(obj, "foo", 1001);
+
+verifyWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-20.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-20.js
index 386f5cf2b..dee406ff9 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-20.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-20.js
@@ -13,33 +13,34 @@ description: >
'desc' is a generic descriptor which contains [Enumerable]]
attribute as false and [[Configurable]] property is true, 'name'
property is an index accessor property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- obj.verifySetFunction = "data";
- var get_func = function () {
- return obj.verifySetFunction;
- };
- var set_func = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "0", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "0", {
- enumerable: false,
- configurable: true
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", false, true);
- }
-runTestCase(testcase);
+
+var obj = {};
+obj.verifySetFunction = "data";
+var get_func = function () {
+ return obj.verifySetFunction;
+};
+var set_func = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "0", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "0", {
+ enumerable: false,
+ configurable: true
+});
+
+verifyEqualTo(obj, "0", get_func());
+
+verifyWritable(obj, "0", "verifySetFunction");
+
+verifyNotEnumerable(obj, "0");
+
+verifyConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-21.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-21.js
index 4a6e5e620..95b1d1486 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-21.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-21.js
@@ -13,32 +13,33 @@ description: >
'desc' is a generic descriptor which only contains
[[Configurable]] attribute as false, 'name' property is an index
accessor property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- obj.verifySetFunction = "data";
- var get_func = function () {
- return obj.verifySetFunction;
- };
- var set_func = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "0", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "0", {
- configurable: false
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", true, false);
- }
-runTestCase(testcase);
+
+var obj = {};
+obj.verifySetFunction = "data";
+var get_func = function () {
+ return obj.verifySetFunction;
+};
+var set_func = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "0", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "0", {
+ configurable: false
+});
+
+verifyEqualTo(obj, "0", get_func());
+
+verifyWritable(obj, "0", "verifySetFunction");
+
+verifyEnumerable(obj, "0");
+
+verifyNotConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-22.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-22.js
index fceaa5941..531055dc4 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-22.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-22.js
@@ -13,33 +13,34 @@ description: >
'desc' is a generic descriptor which contains [[Enumerable]]
attribute as true and [[Configurable]] attribute is false, 'name'
property is an index accessor property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- obj.verifySetFunction = "data";
- var get_func = function () {
- return obj.verifySetFunction;
- };
- var set_func = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "0", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "0", {
- enumerable: true,
- configurable: false
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", true, false);
- }
-runTestCase(testcase);
+
+var obj = {};
+obj.verifySetFunction = "data";
+var get_func = function () {
+ return obj.verifySetFunction;
+};
+var set_func = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "0", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "0", {
+ enumerable: true,
+ configurable: false
+});
+
+verifyEqualTo(obj, "0", get_func());
+
+verifyWritable(obj, "0", "verifySetFunction");
+
+verifyEnumerable(obj, "0");
+
+verifyNotConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-23.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-23.js
index 29a637a45..276afbcf4 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-23.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-23.js
@@ -13,33 +13,34 @@ description: >
are true, the 'desc' is a generic descriptor which contains
[[Enumerable]] and [[Configurable]] attributes as false, 'name'
property is an index accessor property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- obj.verifySetFunction = "data";
- var get_func = function () {
- return obj.verifySetFunction;
- };
- var set_func = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "0", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "0", {
- enumerable: false,
- configurable: false
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", false, false);
- }
-runTestCase(testcase);
+
+var obj = {};
+obj.verifySetFunction = "data";
+var get_func = function () {
+ return obj.verifySetFunction;
+};
+var set_func = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "0", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "0", {
+ enumerable: false,
+ configurable: false
+});
+
+verifyEqualTo(obj, "0", get_func());
+
+verifyWritable(obj, "0", "verifySetFunction");
+
+verifyNotEnumerable(obj, "0");
+
+verifyNotConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-24.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-24.js
index ea8c8f96b..ffd239946 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-24.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-24.js
@@ -13,32 +13,33 @@ description: >
the 'desc' is a generic descriptor which only contains
[[Enumerable]] attribute as true, 'name' property is an index
accessor property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- obj.verifySetFunction = "data";
- var get_func = function () {
- return obj.verifySetFunction;
- };
- var set_func = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "0", {
- get: get_func,
- set: set_func,
- enumerable: false,
- configurable: true
- });
-
- Object.defineProperty(obj, "0", {
- enumerable: true
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "0", get_func, set_func, "verifySetFunction", true, true);
- }
-runTestCase(testcase);
+
+var obj = {};
+obj.verifySetFunction = "data";
+var get_func = function () {
+ return obj.verifySetFunction;
+};
+var set_func = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "0", {
+ get: get_func,
+ set: set_func,
+ enumerable: false,
+ configurable: true
+});
+
+Object.defineProperty(obj, "0", {
+ enumerable: true
+});
+
+verifyEqualTo(obj, "0", get_func());
+
+verifyWritable(obj, "0", "verifySetFunction");
+
+verifyEnumerable(obj, "0");
+
+verifyConfigurable(obj, "0");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-3.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-3.js
index c7feb4307..218a93790 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-3.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-3.js
@@ -12,26 +12,27 @@ description: >
attribute of 'name' property is true, the 'desc' is a generic
descriptor which contains [[Configurable]] attribute as false,
'name' property is a data property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 1001,
- writable: true,
- enumerable: true,
- configurable: true
- });
+var obj = {};
- Object.defineProperty(obj, "foo", {
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: 1001,
+ writable: true,
+ enumerable: true,
+ configurable: true
+});
- return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, true, false);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", {
+ configurable: false
+});
+
+verifyEqualTo(obj, "foo", 1001);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-4.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-4.js
index 9a0acc052..5f2986223 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-4.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-4.js
@@ -13,27 +13,28 @@ description: >
'desc' is a generic descriptor which contains [[Enumerable]]
attribute as true and [[Configurable]] attribute as false, 'name'
property is a data property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "foo", {
- value: 1001,
- writable: true,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "foo", {
- enumerable: true,
- configurable: false
- });
-
- return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, true, false);
- }
-runTestCase(testcase);
+
+var obj = {};
+
+Object.defineProperty(obj, "foo", {
+ value: 1001,
+ writable: true,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "foo", {
+ enumerable: true,
+ configurable: false
+});
+
+verifyEqualTo(obj, "foo", 1001);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-5.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-5.js
index 78a4d8594..e94a7a319 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-5.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-5.js
@@ -13,27 +13,28 @@ description: >
are true, the 'desc' is a generic descriptor which contains
[[Enumerable]] and [[Configurable]] attributes as false, 'name'
property is a data property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "foo", {
- value: 1001,
- writable: true,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "foo", {
- enumerable: false,
- configurable: false
- });
-
- return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, false, false);
- }
-runTestCase(testcase);
+
+var obj = {};
+
+Object.defineProperty(obj, "foo", {
+ value: 1001,
+ writable: true,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "foo", {
+ enumerable: false,
+ configurable: false
+});
+
+verifyEqualTo(obj, "foo", 1001);
+
+verifyWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-6.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-6.js
index 1367232c3..abf5c3424 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-6.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-6.js
@@ -13,26 +13,27 @@ description: >
the 'desc' is a generic descriptor which only contains
[[Enumerable]] attribute as true, 'name' property is a data
property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 1001,
- writable: true,
- enumerable: false,
- configurable: true
- });
+var obj = {};
- Object.defineProperty(obj, "foo", {
- enumerable: true
- });
+Object.defineProperty(obj, "foo", {
+ value: 1001,
+ writable: true,
+ enumerable: false,
+ configurable: true
+});
- return dataPropertyAttributesAreCorrect(obj, "foo", 1001, true, true, true);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", {
+ enumerable: true
+});
+
+verifyEqualTo(obj, "foo", 1001);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-7.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-7.js
index d49a50b5e..feb76fbd3 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-7.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-7.js
@@ -13,32 +13,33 @@ description: >
'desc' is a generic descriptor which only contains [Enumerable]]
attribute as false and 'name' property is an accessor property
(8.12.9 step 8)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- obj.verifySetFunction = "data";
- var get_func = function () {
- return obj.verifySetFunction;
- };
- var set_func = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "foo", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "foo", {
- enumerable: false
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", false, true);
- }
-runTestCase(testcase);
+
+var obj = {};
+obj.verifySetFunction = "data";
+var get_func = function () {
+ return obj.verifySetFunction;
+};
+var set_func = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "foo", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "foo", {
+ enumerable: false
+});
+
+verifyEqualTo(obj, "foo", get_func());
+
+verifyWritable(obj, "foo", "verifySetFunction");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-8.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-8.js
index 3cad3541c..483f2cbd2 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-8.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-8.js
@@ -13,33 +13,34 @@ description: >
'desc' is a generic descriptor which contains [Enumerable]]
attribute as false and [[Configurable]] property is true, 'name'
property is an accessor property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- obj.verifySetFunction = "data";
- var get_func = function () {
- return obj.verifySetFunction;
- };
- var set_func = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "foo", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "foo", {
- enumerable: false,
- configurable: true
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", false, true);
- }
-runTestCase(testcase);
+
+var obj = {};
+obj.verifySetFunction = "data";
+var get_func = function () {
+ return obj.verifySetFunction;
+};
+var set_func = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "foo", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "foo", {
+ enumerable: false,
+ configurable: true
+});
+
+verifyEqualTo(obj, "foo", get_func());
+
+verifyWritable(obj, "foo", "verifySetFunction");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-9.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-9.js
index a8b2def02..fa40ce352 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82-9.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82-9.js
@@ -13,32 +13,33 @@ description: >
'desc' is a generic descriptor which only contains
[[Configurable]] attribute as false, 'name' property is an
accessor property (8.12.9 step 8)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- obj.verifySetFunction = "data";
- var get_func = function () {
- return obj.verifySetFunction;
- };
- var set_func = function (value) {
- obj.verifySetFunction = value;
- };
- Object.defineProperty(obj, "foo", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
-
- Object.defineProperty(obj, "foo", {
- configurable: false
- });
-
- return accessorPropertyAttributesAreCorrect(obj, "foo", get_func, set_func, "verifySetFunction", true, false);
- }
-runTestCase(testcase);
+
+var obj = {};
+obj.verifySetFunction = "data";
+var get_func = function () {
+ return obj.verifySetFunction;
+};
+var set_func = function (value) {
+ obj.verifySetFunction = value;
+};
+Object.defineProperty(obj, "foo", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+
+Object.defineProperty(obj, "foo", {
+ configurable: false
+});
+
+verifyEqualTo(obj, "foo", get_func());
+
+verifyWritable(obj, "foo", "verifySetFunction");
+
+verifyEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-82.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-82.js
index 22f8911a7..feafd69ef 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-82.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-82.js
@@ -9,18 +9,19 @@ es5id: 15.2.3.6-4-82
description: >
Object.defineProperty - desc.configurable and name.configurable
are boolean negation of each other (8.12.9 step 6)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
- Object.defineProperty(obj, "foo", { configurable: true });
+var obj = {};
- Object.defineProperty(obj, "foo", { configurable: false });
- return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", { configurable: true });
+
+Object.defineProperty(obj, "foo", { configurable: false });
+verifyEqualTo(obj, "foo", undefined);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-83.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-83.js
index 0516f9521..aaf98d3c6 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-83.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-83.js
@@ -10,26 +10,27 @@ description: >
Object.defineProperty will not throw TypeError if
name.configurable = false, name.writable = false, name.value =
undefined and desc.value = undefined (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: undefined,
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: undefined,
+ writable: false,
+ configurable: false
+});
- Object.defineProperty(obj, "foo", {
- value: undefined,
- writable: false,
- configurable: false
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", undefined, false, false, false);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", {
+ value: undefined,
+ writable: false,
+ configurable: false
+});
+verifyEqualTo(obj, "foo", undefined);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-84.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-84.js
index 732f8f3d8..aeb9af248 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-84.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-84.js
@@ -10,26 +10,27 @@ description: >
Object.defineProperty will not throw TypeError if
name.configurable = false, name.writable = false, name.value =
null and desc.value = null (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: null,
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: null,
+ writable: false,
+ configurable: false
+});
- Object.defineProperty(obj, "foo", {
- value: null,
- writable: false,
- configurable: false
- });
- return dataPropertyAttributesAreCorrect(obj, "foo", null, false, false, false);
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", {
+ value: null,
+ writable: false,
+ configurable: false
+});
+verifyEqualTo(obj, "foo", null);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-86.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-86.js
index 70df96be6..ad4017d4f 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-86.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-86.js
@@ -10,26 +10,32 @@ description: >
Object.defineProperty will throw TypeError when name.configurable
= false, name.writable = false, desc.value = +0 and name.value =
-0 (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: -0,
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: -0,
+ writable: false,
+ configurable: false
+});
- try {
- Object.defineProperty(obj, "foo", { value: +0 });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", -0, false, false, false);
- }
+try {
+ Object.defineProperty(obj, "foo", { value: +0 });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", -0);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-87.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-87.js
index 18c7b2fec..9bec40b88 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-87.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-87.js
@@ -10,26 +10,32 @@ description: >
Object.defineProperty will throw TypeError when name.configurable
= false, name.writable = false, desc.value = -0 and name.value =
+0 (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: +0,
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: +0,
+ writable: false,
+ configurable: false
+});
- try {
- Object.defineProperty(obj, "foo", { value: -0 });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", +0, false, false, false);
- }
+try {
+ Object.defineProperty(obj, "foo", { value: -0 });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", +0);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-88.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-88.js
index de86c82c1..8e4b065a1 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-88.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-88.js
@@ -11,26 +11,23 @@ description: >
name.configurable = false, name.writable = false, desc.value and
name.value are two numbers with the same value (8.12.9 step
10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 100,
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: 100,
+ writable: false,
+ configurable: false
+});
- try {
- Object.defineProperty(obj, "foo", { value: 100 });
- return dataPropertyAttributesAreCorrect(obj, "foo", 100, false, false, false);
- } catch (e) {
- return false;
- }
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", { value: 100 });
+verifyEqualTo(obj, "foo", 100);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-89.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-89.js
index 340f34baa..34d7382d3 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-89.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-89.js
@@ -10,26 +10,32 @@ description: >
Object.defineProperty will throw TypeError when name.configurable
= false, name.writable = false, desc.value and name.value are two
numbers with different values (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- Object.defineProperty(obj, "foo", {
- value: 10,
- writable: false,
- configurable: false
- });
-
- try {
- Object.defineProperty(obj, "foo", { value: 20 });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", 10, false, false, false);
- }
+
+var obj = {};
+
+Object.defineProperty(obj, "foo", {
+ value: 10,
+ writable: false,
+ configurable: false
+});
+
+try {
+ Object.defineProperty(obj, "foo", { value: 20 });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", 10);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-90.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-90.js
index 3557a0de8..28a8a3186 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-90.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-90.js
@@ -11,26 +11,23 @@ description: >
name.configurable = false, name.writable = false, desc.value and
name.value are two strings with the same value (8.12.9 step
10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: "abcd",
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: "abcd",
+ writable: false,
+ configurable: false
+});
- try {
- Object.defineProperty(obj, "foo", { value: "abcd" });
- return dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false);
- } catch (e) {
- return false;
- }
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", { value: "abcd" });
+verifyEqualTo(obj, "foo", "abcd");
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-91.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-91.js
index eb7d259f3..ac00eed1c 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-91.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-91.js
@@ -10,26 +10,32 @@ description: >
Object.defineProperty will throw TypeError when name.configurable
= false, name.writable = false, desc.value and name.value are two
strings with different values (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: "abcd",
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: "abcd",
+ writable: false,
+ configurable: false
+});
- try {
- Object.defineProperty(obj, "foo", { value: "fghj" });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", "abcd", false, false, false);
- }
+try {
+ Object.defineProperty(obj, "foo", { value: "fghj" });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", "abcd");
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-92.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-92.js
index fe298d2a6..22b1ff168 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-92.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-92.js
@@ -11,26 +11,23 @@ description: >
name.configurable = false, name.writable = false, desc.value and
name.value are two booleans with the same value (8.12.9 step
10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: false,
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: false,
+ writable: false,
+ configurable: false
+});
- try {
- Object.defineProperty(obj, "foo", { value: false });
- return dataPropertyAttributesAreCorrect(obj, "foo", false, false, false, false);
- } catch (e) {
- return false;
- }
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", { value: false });
+verifyEqualTo(obj, "foo", false);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-93.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-93.js
index 4d58ee2ea..b4a045220 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-93.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-93.js
@@ -10,26 +10,32 @@ description: >
Object.defineProperty will throw TypeError when name.configurable
= false, name.writable = false, desc.value and name.value are two
booleans with different values (8.12.9 step 10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: false,
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: false,
+ writable: false,
+ configurable: false
+});
- try {
- Object.defineProperty(obj, "foo", { value: true });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", false, false, false, false);
- }
+try {
+ Object.defineProperty(obj, "foo", { value: true });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", false);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-94.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-94.js
index c12367ddb..54fb888f5 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-94.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-94.js
@@ -11,28 +11,26 @@ description: >
name.configurable = false, name.writable = false, desc.value and
name.value are two Objects refer to the same object (8.12.9 step
10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var obj1 = { length: 10 };
+var obj1 = { length: 10 };
- Object.defineProperty(obj, "foo", {
- value: obj1,
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: obj1,
+ writable: false,
+ configurable: false
+});
+
+Object.defineProperty(obj, "foo", { value: obj1 });
+verifyEqualTo(obj, "foo", obj1);
+
+verifyNotWritable(obj, "foo");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
- try {
- Object.defineProperty(obj, "foo", { value: obj1 });
- return dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false);
- } catch (e) {
- return false;
- }
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-95.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-95.js
index a41f68314..b71597243 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-95.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-95.js
@@ -11,30 +11,36 @@ description: >
= false, name.writable = false, desc.value and name.value are two
objects which refer to the different objects (8.12.9 step
10.a.ii.1)
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- var obj1 = { length: 10 };
+var obj1 = { length: 10 };
- Object.defineProperty(obj, "foo", {
- value: obj1,
- writable: false,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: obj1,
+ writable: false,
+ configurable: false
+});
- var obj2 = { length: 20 };
+var obj2 = { length: 20 };
- try {
- Object.defineProperty(obj, "foo", { value: obj2 });
- return false;
- } catch (e) {
- return e instanceof TypeError && dataPropertyAttributesAreCorrect(obj, "foo", obj1, false, false, false);
- }
+try {
+ Object.defineProperty(obj, "foo", { value: obj2 });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "foo", obj1);
+
+ verifyNotWritable(obj, "foo");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-96.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-96.js
index ba8ab66ea..fdfc645d6 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-96.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-96.js
@@ -10,29 +10,24 @@ description: >
Object.defineProperty will not throw TypeError when
name.configurable = false, both desc.[[Set]] and name.[[Set]] are
two objects which refer to the same object (8.12.9 step 11.a.i)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function setFunc(value) {
- obj.setVerifyHelpProp = value;
- }
+function setFunc(value) {
+ obj.setVerifyHelpProp = value;
+}
- Object.defineProperty(obj, "foo", {
- set: setFunc,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ set: setFunc,
+ configurable: false
+});
- try {
- Object.defineProperty(obj, "foo", { set: setFunc });
- return accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc, "setVerifyHelpProp", false, false);
- } catch (e) {
- return false;
- }
- }
-runTestCase(testcase);
+Object.defineProperty(obj, "foo", { set: setFunc });
+verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-97.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-97.js
index 93ec84c6c..b9f32c469 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-97.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-97.js
@@ -10,35 +10,38 @@ description: >
Object.defineProperty will throw TypeError when name.configurable
= false, name.[[Set]] is undefined, desc.[[Set]] refers to an
object (8.12.9 step 11.a.i)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function getFunc() {
- return "property";
- }
+function getFunc() {
+ return "property";
+}
- Object.defineProperty(obj, "property", {
- get: getFunc,
- configurable: false
- });
+Object.defineProperty(obj, "property", {
+ get: getFunc,
+ configurable: false
+});
- try {
- Object.defineProperty(obj, "property", {
- get: getFunc,
- set: function () { },
- configurable: false
- });
+try {
+ Object.defineProperty(obj, "property", {
+ get: getFunc,
+ set: function () { },
+ configurable: false
+ });
- return false;
- } catch (e) {
- return e instanceof TypeError &&
- accessorPropertyAttributesAreCorrect(obj, "property", getFunc, undefined, undefined, false, false);
- }
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyEqualTo(obj, "property", getFunc());
+
+ verifyNotEnumerable(obj, "property");
+
+ verifyNotConfigurable(obj, "property");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-98.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-98.js
index 9b788e481..95e708005 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-98.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-98.js
@@ -10,33 +10,31 @@ description: >
Object.defineProperty will not throw TypeError when
name.configurable = false, both desc.[[Get]] and name.[[Get]] are
two objects which refer to the same object (8.12.9 step 11.a.ii)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
-
- var obj = {};
-
- function getFunc() {
- return 10;
- }
- function setFunc(value) {
- obj.verifyGetHelpMethod = value;
- }
-
- Object.defineProperty(obj, "foo", {
- get: getFunc,
- set: setFunc,
- configurable: false
- });
-
- try {
- Object.defineProperty(obj, "foo", { get: getFunc });
- return accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "verifyGetHelpMethod", false, false);
- } catch (e) {
- return false;
- }
- }
-runTestCase(testcase);
+
+var obj = {};
+
+function getFunc() {
+ return 10;
+}
+function setFunc(value) {
+ obj.verifyGetHelpMethod = value;
+}
+
+Object.defineProperty(obj, "foo", {
+ get: getFunc,
+ set: setFunc,
+ configurable: false
+});
+
+Object.defineProperty(obj, "foo", { get: getFunc });
+
+verifyEqualTo(obj, "foo", getFunc());
+
+verifyWritable(obj, "foo", "verifyGetHelpMethod");
+
+verifyNotEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-99.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-99.js
index 5c62c6f91..ddcec5062 100644
--- a/test/built-ins/Object/defineProperty/15.2.3.6-4-99.js
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-99.js
@@ -10,36 +10,40 @@ description: >
Object.defineProperty will throw TypeError when name.configurable
= false, name.[[Get]] is undefined, desc.[[Get]] refers to an
object (8.12.9 step 11.a.ii)
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- function setFunc(value) {
- obj.setVerifyHelpProp = value;
- }
+function setFunc(value) {
+ obj.setVerifyHelpProp = value;
+}
- Object.defineProperty(obj, "foo", {
- set: setFunc,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ set: setFunc,
+ configurable: false
+});
- function getFunc() {
- return 10;
- }
+function getFunc() {
+ return 10;
+}
- try {
- Object.defineProperty(obj, "foo", {
- get: getFunc,
- set: setFunc
- });
- return false;
- } catch (e) {
- return e instanceof TypeError && accessorPropertyAttributesAreCorrect(obj, "foo", undefined, setFunc, "setVerifyHelpProp", false, false);
- }
+try {
+ Object.defineProperty(obj, "foo", {
+ get: getFunc,
+ set: setFunc
+ });
+ $ERROR("Expected an exception.");
+} catch (e) {
+ verifyWritable(obj, "foo", "setVerifyHelpProp");
+
+ verifyNotEnumerable(obj, "foo");
+
+ verifyNotConfigurable(obj, "foo");
+
+ if (!(e instanceof TypeError)) {
+ $ERROR("Expected TypeError, got " + e);
}
-runTestCase(testcase);
+
+}
diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-b-i-1.js b/test/built-ins/Object/freeze/15.2.3.9-2-b-i-1.js
index 10fc29682..d921745ca 100644
--- a/test/built-ins/Object/freeze/15.2.3.9-2-b-i-1.js
+++ b/test/built-ins/Object/freeze/15.2.3.9-2-b-i-1.js
@@ -9,25 +9,34 @@ es5id: 15.2.3.9-2-b-i-1
description: >
Object.freeze - The [[Wrtiable]] attribute of own data property of
'O' is set to false while other attributes are unchanged
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 10,
- writable: true,
- enumerable: true,
- configurable: false
- });
+Object.defineProperty(obj, "foo", {
+ value: 10,
+ writable: true,
+ enumerable: true,
+ configurable: false
+});
- Object.freeze(obj);
- var desc = Object.getOwnPropertyDescriptor(obj, "foo");
+Object.freeze(obj);
+var desc = Object.getOwnPropertyDescriptor(obj, "foo");
+
+verifyEqualTo(obj, "foo", 10);
+
+verifyNotWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
+
+if (desc.writable !== false) {
+ $ERROR('Expected desc.writable === false, actually ' + desc.writable);
+}
+
+if (desc.configurable !== false) {
+ $ERROR('Expected desc.configurable === false, actually ' + desc.configurable);
+}
- return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, true, false) &&
- desc.writable === false && desc.configurable === false;
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-b-i-2.js b/test/built-ins/Object/freeze/15.2.3.9-2-b-i-2.js
index f985e57df..561832fa2 100644
--- a/test/built-ins/Object/freeze/15.2.3.9-2-b-i-2.js
+++ b/test/built-ins/Object/freeze/15.2.3.9-2-b-i-2.js
@@ -10,36 +10,59 @@ description: >
Object.freeze - The [[Wrtiable]] attribute of all own data
property of 'O' is set to false while other attributes are
unchanged
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
-
- Object.defineProperty(obj, "foo1", {
- value: 10,
- writable: false,
- enumerable: true,
- configurable: false
- });
-
- Object.defineProperty(obj, "foo2", {
- value: 20,
- writable: true,
- enumerable: false,
- configurable: false
- });
-
- Object.freeze(obj);
-
- var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1");
- var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2");
-
- return dataPropertyAttributesAreCorrect(obj, "foo1", 10, false, true, false) &&
- dataPropertyAttributesAreCorrect(obj, "foo2", 20, false, false, false) &&
- desc1.configurable === false && desc1.writable === false &&
- desc2.configurable === false && desc2.writable === false;
- }
-runTestCase(testcase);
+var obj = {};
+
+Object.defineProperty(obj, "foo1", {
+ value: 10,
+ writable: false,
+ enumerable: true,
+ configurable: false
+});
+
+Object.defineProperty(obj, "foo2", {
+ value: 20,
+ writable: true,
+ enumerable: false,
+ configurable: false
+});
+
+Object.freeze(obj);
+
+var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1");
+var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2");
+
+verifyEqualTo(obj, "foo1", 10);
+
+verifyNotWritable(obj, "foo1");
+
+verifyEnumerable(obj, "foo1");
+
+verifyNotConfigurable(obj, "foo1");
+
+verifyEqualTo(obj, "foo2", 20);
+
+verifyNotWritable(obj, "foo2");
+
+verifyNotEnumerable(obj, "foo2");
+
+verifyNotConfigurable(obj, "foo2");
+
+if (desc1.configurable !== false) {
+ $ERROR('Expected desc1.configurable === false, actually ' + desc1.configurable);
+}
+
+if (desc1.writable !== false) {
+ $ERROR('Expected desc1.writable === false, actually ' + desc1.writable);
+}
+
+if (desc2.configurable !== false) {
+ $ERROR('Expected desc2.configurable === false, actually ' + desc2.configurable);
+}
+
+if (desc2.writable !== false) {
+ $ERROR('Expected desc2.writable === false, actually ' + desc2.writable);
+}
+
diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-c-1.js b/test/built-ins/Object/freeze/15.2.3.9-2-c-1.js
index 9ef22a3d7..6a8a544c4 100644
--- a/test/built-ins/Object/freeze/15.2.3.9-2-c-1.js
+++ b/test/built-ins/Object/freeze/15.2.3.9-2-c-1.js
@@ -10,25 +10,34 @@ description: >
Object.freeze - The [[Configurable]] attribute of own data
property of 'O' is set to false while other attributes are
unchanged
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
+var obj = {};
- Object.defineProperty(obj, "foo", {
- value: 10,
- writable: false,
- enumerable: true,
- configurable: true
- });
+Object.defineProperty(obj, "foo", {
+ value: 10,
+ writable: false,
+ enumerable: true,
+ configurable: true
+});
- Object.freeze(obj);
- var desc = Object.getOwnPropertyDescriptor(obj, "foo");
+Object.freeze(obj);
+
+var desc = Object.getOwnPropertyDescriptor(obj, "foo");
+
+if (desc.configurable !== false) {
+ $ERROR("Expected desc.configurable to be false, actually " + desc.configurable);
+}
+if (desc.writable !== false) {
+ $ERROR("Expected desc.writable to be false, actually " + desc.writable);
+}
+
+verifyEqualTo(obj, "foo", 10);
+
+verifyNotWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
- return dataPropertyAttributesAreCorrect(obj, "foo", 10, false, true, false) &&
- desc.configurable === false && desc.writable === false;
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-c-3.js b/test/built-ins/Object/freeze/15.2.3.9-2-c-3.js
index 81ab9fe03..69135e6c5 100644
--- a/test/built-ins/Object/freeze/15.2.3.9-2-c-3.js
+++ b/test/built-ins/Object/freeze/15.2.3.9-2-c-3.js
@@ -10,62 +10,63 @@ description: >
Object.freeze - The [[Configurable]] attribute of all own data
property of 'O' is set to false while other attributes are
unchanged
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
+var obj = {};
+var resultSetFun = false;
- var obj = {};
- var resultSetFun = false;
+Object.defineProperty(obj, "foo1", {
+ value: 10,
+ writable: false,
+ enumerable: true,
+ configurable: true
+});
- Object.defineProperty(obj, "foo1", {
- value: 10,
- writable: false,
- enumerable: true,
- configurable: true
- });
+function get_func() {
+ return 10;
+}
- function get_func() {
- return 10;
- }
+function set_func() {
+ resultSetFun = true;
+}
- function set_func() {
- resultSetFun = true;
- }
+Object.defineProperty(obj, "foo2", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
- Object.defineProperty(obj, "foo2", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
+Object.freeze(obj);
- Object.freeze(obj);
+verifyNotConfigurable(obj, "foo2");
+verifyEqualTo(obj, "foo2", 10);
- var res1 = obj.hasOwnProperty("foo2");
- delete obj.foo2;
- var res2 = obj.hasOwnProperty("foo2");
- var resultConfigurable = (res1 && res2);
+obj.foo2 = 12;
+if (!resultSetFun) {
+ $ERROR('Expected obj["foo2"] set() to be called, but was not.');
+}
- var resultGetFun = (obj.foo2 === 10);
- obj.foo2 = 12;
+if (!isEnumerable(obj, "foo2")) {
+ $ERROR('Expected obj["foo2"] to be enumerable.');
+}
- var resultEnumerable = false;
- for (var prop in obj) {
- if (prop === "foo2") {
- resultEnumerable = true;
- }
- }
+var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1");
+if (desc1.configurable || desc1.writable) {
+ $ERROR('Expected obj["foo1"] to be non-writable, non-configurable; actually ' + JSON.stringify(desc1));
+}
- var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1");
- var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2");
+var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2");
+if (desc2.configurable || desc2.writable) {
+ $ERROR('Expected obj["foo2"] to be non-writable, non-configurable; actually ' + JSON.stringify(desc2));
+}
- var result = resultConfigurable && resultEnumerable && resultGetFun && resultSetFun;
+verifyEqualTo(obj, "foo1", 10);
- return dataPropertyAttributesAreCorrect(obj, "foo1", 10, false, true, false) && result &&
- desc1.configurable === false && desc1.writable === false && desc2.configurable === false;
+verifyNotWritable(obj, "foo1");
+
+verifyEnumerable(obj, "foo1");
+
+verifyNotConfigurable(obj, "foo1");
- }
-runTestCase(testcase);
diff --git a/test/built-ins/Object/freeze/15.2.3.9-2-c-4.js b/test/built-ins/Object/freeze/15.2.3.9-2-c-4.js
index b438bea8d..7e7a2c925 100644
--- a/test/built-ins/Object/freeze/15.2.3.9-2-c-4.js
+++ b/test/built-ins/Object/freeze/15.2.3.9-2-c-4.js
@@ -9,60 +9,61 @@ es5id: 15.2.3.9-2-c-4
description: >
Object.freeze - all own properties of 'O' are not writable and not
configurable
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
- var resultSetFun = false;
-
- Object.defineProperty(obj, "foo1", {
- value: 10,
- writable: false,
- enumerable: true,
- configurable: false
- });
-
- function get_func() {
- return 10;
- }
-
- function set_func() {
- resultSetFun = true;
- }
-
- Object.defineProperty(obj, "foo2", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
-
- Object.freeze(obj);
-
- var res1 = obj.hasOwnProperty("foo2");
- delete obj.foo2;
- var res2 = obj.hasOwnProperty("foo2");
- var resultConfigurable = (res1 && res2);
-
- var resultGetFun = (obj.foo2 === 10);
- obj.foo2 = 12;
-
- var resultEnumerable = false;
- for (var prop in obj) {
- if (prop === "foo2") {
- resultEnumerable = true;
- }
- }
-
- var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1");
- var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2");
-
- var result = resultConfigurable && resultEnumerable && resultGetFun && resultSetFun;
-
- return dataPropertyAttributesAreCorrect(obj, "foo1", 10, false, true, false) &&
- result && desc1.configurable === false && desc1.writable === false && desc2.configurable === false;
- }
-runTestCase(testcase);
+var obj = {};
+var resultSetFun = false;
+
+Object.defineProperty(obj, "foo1", {
+ value: 10,
+ writable: false,
+ enumerable: true,
+ configurable: false
+});
+
+function get_func() {
+ return 10;
+}
+
+function set_func() {
+ resultSetFun = true;
+}
+
+Object.defineProperty(obj, "foo2", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+
+Object.freeze(obj);
+
+verifyEqualTo(obj, "foo2", 10);
+
+verifyNotConfigurable(obj, "foo2");
+
+obj.foo2 = 12;
+if (!resultSetFun) {
+ $ERROR('Expected obj["foo2"] set() to be called, but was not.');
+}
+
+verifyEnumerable(obj, "foo2");
+
+var desc1 = Object.getOwnPropertyDescriptor(obj, "foo1");
+if (desc1.configurable || desc1.writable) {
+ $ERROR('Expected obj["foo1"] to be non-writable, non-configurable; actually ' + JSON.stringify(desc1));
+}
+
+var desc2 = Object.getOwnPropertyDescriptor(obj, "foo2");
+if (desc2.configurable || desc2.writable) {
+ $ERROR('Expected obj["foo2"] to be non-writable, non-configurable; actually ' + JSON.stringify(desc2));
+}
+
+verifyEqualTo(obj, "foo1", 10);
+
+verifyNotWritable(obj, "foo1");
+
+verifyEnumerable(obj, "foo1");
+
+verifyNotConfigurable(obj, "foo1");
diff --git a/test/built-ins/Object/seal/15.2.3.8-2-b-1.js b/test/built-ins/Object/seal/15.2.3.8-2-b-1.js
index 765f59418..4232ebb5c 100644
--- a/test/built-ins/Object/seal/15.2.3.8-2-b-1.js
+++ b/test/built-ins/Object/seal/15.2.3.8-2-b-1.js
@@ -10,23 +10,28 @@ description: >
Object.seal - the [[Configurable]] attribute of own data property
of 'O' is set from true to false and other attributes of the
property are unaltered
-includes:
- - runTestCase.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
-
- Object.defineProperty(obj, "foo", {
- value: 10,
- writable: true,
- enumerable: true,
- configurable: true
- });
- var preCheck = Object.isExtensible(obj);
- Object.seal(obj);
-
- return preCheck && dataPropertyAttributesAreCorrect(obj, "foo", 10, true, true, false);
- }
-runTestCase(testcase);
+var obj = {};
+
+Object.defineProperty(obj, "foo", {
+ value: 10,
+ writable: true,
+ enumerable: true,
+ configurable: true
+});
+var preCheck = Object.isExtensible(obj);
+Object.seal(obj);
+
+if (!preCheck) {
+ $ERROR('Expected preCheck to be true, actually ' + preCheck);
+}
+
+verifyEqualTo(obj, "foo", 10);
+
+verifyWritable(obj, "foo");
+
+verifyEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/seal/15.2.3.8-2-b-2.js b/test/built-ins/Object/seal/15.2.3.8-2-b-2.js
index 895622cf5..25acd6048 100644
--- a/test/built-ins/Object/seal/15.2.3.8-2-b-2.js
+++ b/test/built-ins/Object/seal/15.2.3.8-2-b-2.js
@@ -10,30 +10,35 @@ description: >
Object.seal - the [[Configurable]] attribute of own accessor
property of 'O' is set from true to false and other attributes of
the property are unaltered
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
- obj.variableForHelpVerify = "data";
-
- function setFunc(value) {
- obj.variableForHelpVerify = value;
- }
- function getFunc() {
- return 10;
- }
- Object.defineProperty(obj, "foo", {
- get: getFunc,
- set: setFunc,
- enumerable: true,
- configurable: true
- });
- var preCheck = Object.isExtensible(obj);
- Object.seal(obj);
-
- return preCheck && accessorPropertyAttributesAreCorrect(obj, "foo", getFunc, setFunc, "variableForHelpVerify", true, false);
- }
-runTestCase(testcase);
+var obj = {};
+obj.variableForHelpVerify = "data";
+
+function setFunc(value) {
+ obj.variableForHelpVerify = value;
+}
+function getFunc() {
+ return 10;
+}
+Object.defineProperty(obj, "foo", {
+ get: getFunc,
+ set: setFunc,
+ enumerable: true,
+ configurable: true
+});
+var preCheck = Object.isExtensible(obj);
+Object.seal(obj);
+
+if (!preCheck) {
+ $ERROR('Expected preCheck to be true, actually ' + preCheck);
+}
+
+verifyEqualTo(obj, "foo", getFunc());
+
+verifyWritable(obj, "foo", "variableForHelpVerify");
+
+verifyEnumerable(obj, "foo");
+
+verifyNotConfigurable(obj, "foo");
diff --git a/test/built-ins/Object/seal/15.2.3.8-2-b-3.js b/test/built-ins/Object/seal/15.2.3.8-2-b-3.js
index c6d1b9c0f..7c18fe9bd 100644
--- a/test/built-ins/Object/seal/15.2.3.8-2-b-3.js
+++ b/test/built-ins/Object/seal/15.2.3.8-2-b-3.js
@@ -10,39 +10,51 @@ description: >
Object.seal - the [[Configurable]] attribute of all own properties
of 'O' are set from true to false and other attributes of the
property are unaltered
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
- obj.variableForHelpVerify = "data";
-
- Object.defineProperty(obj, "foo1", {
- value: 10,
- writable: true,
- enumerable: true,
- configurable: true
- });
-
- function set_func(value) {
- obj.variableForHelpVerify = value;
- }
- function get_func() {
- return 10;
- }
- Object.defineProperty(obj, "foo2", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: true
- });
- var preCheck = Object.isExtensible(obj);
- Object.seal(obj);
-
- return preCheck && dataPropertyAttributesAreCorrect(obj, "foo1", 10, true, true, false) &&
- accessorPropertyAttributesAreCorrect(obj, "foo2", get_func, set_func, "variableForHelpVerify", true, false);
- }
-runTestCase(testcase);
+var obj = {};
+obj.variableForHelpVerify = "data";
+
+Object.defineProperty(obj, "foo1", {
+ value: 10,
+ writable: true,
+ enumerable: true,
+ configurable: true
+});
+
+function set_func(value) {
+ obj.variableForHelpVerify = value;
+}
+function get_func() {
+ return 10;
+}
+Object.defineProperty(obj, "foo2", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: true
+});
+var preCheck = Object.isExtensible(obj);
+Object.seal(obj);
+
+if (!preCheck) {
+ $ERROR('Expected preCheck to be true, actually ' + preCheck);
+}
+
+
+verifyEqualTo(obj, "foo1", 10);
+
+verifyWritable(obj, "foo1");
+
+verifyEnumerable(obj, "foo1");
+
+verifyNotConfigurable(obj, "foo1");
+
+verifyEqualTo(obj, "foo2", get_func());
+
+verifyWritable(obj, "foo2", "variableForHelpVerify");
+
+verifyEnumerable(obj, "foo2");
+
+verifyNotConfigurable(obj, "foo2");
diff --git a/test/built-ins/Object/seal/15.2.3.8-2-b-4.js b/test/built-ins/Object/seal/15.2.3.8-2-b-4.js
index bec8f3a5a..885766b21 100644
--- a/test/built-ins/Object/seal/15.2.3.8-2-b-4.js
+++ b/test/built-ins/Object/seal/15.2.3.8-2-b-4.js
@@ -9,39 +9,53 @@ es5id: 15.2.3.8-2-b-4
description: >
Object.seal - all own properties of 'O' are already
non-configurable
-includes:
- - runTestCase.js
- - accessorPropertyAttributesAreCorrect.js
- - dataPropertyAttributesAreCorrect.js
+includes: [propertyHelper.js]
---*/
-function testcase() {
- var obj = {};
- obj.variableForHelpVerify = "data";
-
- Object.defineProperty(obj, "foo1", {
- value: 10,
- writable: true,
- enumerable: true,
- configurable: false
- });
-
- function set_func(value) {
- obj.variableForHelpVerify = value;
- }
- function get_func() {
- return 10;
- }
- Object.defineProperty(obj, "foo2", {
- get: get_func,
- set: set_func,
- enumerable: true,
- configurable: false
- });
- var preCheck = Object.isExtensible(obj);
- Object.seal(obj);
-
- return preCheck && dataPropertyAttributesAreCorrect(obj, "foo1", 10, true, true, false) &&
- accessorPropertyAttributesAreCorrect(obj, "foo2", get_func, set_func, "variableForHelpVerify", true, false);
- }
-runTestCase(testcase);
+var obj = {};
+obj.variableForHelpVerify = "data";
+
+Object.defineProperty(obj, "foo1", {
+ value: 10,
+ writable: true,
+ enumerable: true,
+ configurable: false
+});
+
+function set_func(value) {
+ obj.variableForHelpVerify = value;
+}
+function get_func() {
+ return 10;
+}
+Object.defineProperty(obj, "foo2", {
+ get: get_func,
+ set: set_func,
+ enumerable: true,
+ configurable: false
+});
+
+if (!Object.isExtensible(obj)) {
+ $ERROR('Expected obj to be extensible, actually ' + Object.isExtensible(obj));
+}
+
+Object.seal(obj);
+
+if (Object.isExtensible(obj)) {
+ $ERROR('Expected obj NOT to be extensible, actually ' + Object.isExtensible(obj));
+}
+
+verifyEqualTo(obj, "foo1", 10);
+
+verifyWritable(obj, "foo1");
+
+verifyEnumerable(obj, "foo1");
+
+verifyNotConfigurable(obj, "foo1");
+verifyEqualTo(obj, "foo2", get_func());
+
+verifyWritable(obj, "foo2", "variableForHelpVerify");
+
+verifyEnumerable(obj, "foo2");
+
+verifyNotConfigurable(obj, "foo2");