forked from php/php-src
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathweakmap_error_conditions.phpt
92 lines (85 loc) · 1.68 KB
/
weakmap_error_conditions.phpt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
--TEST--
WeakMap error conditions
--FILE--
<?php
$map = new WeakMap;
try {
$map[1] = 2;
} catch (TypeError $e) {
echo $e->getMessage(), "\n";
}
try {
var_dump($map[1]);
} catch (TypeError $e) {
echo $e->getMessage(), "\n";
}
try {
isset($map[1]);
} catch (TypeError $e) {
echo $e->getMessage(), "\n";
}
try {
unset($map[1]);
} catch (TypeError $e) {
echo $e->getMessage(), "\n";
}
try {
$map[] = 1;
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
try {
$map[][1] = 1;
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
try {
var_dump($map[new stdClass]);
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
var_dump($map->prop);
var_dump(isset($map->prop));
unset($map->prop);
try {
$map->prop = 1;
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
try {
$map->prop[] = 1;
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
try {
$r =& $map->prop;
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
try {
serialize($map);
} catch (Exception $e) {
echo $e->getMessage(), "\n";
}
try {
unserialize('C:7:"WeakMap":0:{}');
} catch (Exception $e) {
echo $e->getMessage(), "\n";
}
?>
--EXPECTF--
WeakMap key must be an object
WeakMap key must be an object
WeakMap key must be an object
WeakMap key must be an object
Cannot append to WeakMap
Cannot append to WeakMap
Object stdClass#2 not contained in WeakMap
Warning: Undefined property: WeakMap::$prop in %s on line %d
NULL
bool(false)
Cannot create dynamic property WeakMap::$prop
Cannot create dynamic property WeakMap::$prop
Cannot create dynamic property WeakMap::$prop
Serialization of 'WeakMap' is not allowed
Unserialization of 'WeakMap' is not allowed