8074545: Undefined object values in object literals with spill properties

Fri, 06 Mar 2015 15:26:51 +0100

author
hannesw
date
Fri, 06 Mar 2015 15:26:51 +0100
changeset 1248
7d249c2d066a
parent 1247
a7dc7be2d635
child 1249
02702b17f1d8

8074545: Undefined object values in object literals with spill properties
Reviewed-by: lagergren, attila

src/jdk/nashorn/internal/codegen/MapCreator.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/parser/JSONParser.java file | annotate | diff | comparison | revisions
src/jdk/nashorn/internal/runtime/SpillProperty.java file | annotate | diff | comparison | revisions
test/script/basic/JDK-8074545.js file | annotate | diff | comparison | revisions
     1.1 --- a/src/jdk/nashorn/internal/codegen/MapCreator.java	Mon Dec 15 12:32:34 2014 +0100
     1.2 +++ b/src/jdk/nashorn/internal/codegen/MapCreator.java	Fri Mar 06 15:26:51 2015 +0100
     1.3 @@ -100,15 +100,16 @@
     1.4          for (final MapTuple<T> tuple : tuples) {
     1.5              final String key    = tuple.key;
     1.6              final Symbol symbol = tuple.symbol;
     1.7 +            final Class<?> initialType = tuple.getValueType();
     1.8  
     1.9 -            //TODO initial type is object here no matter what. Is that right?
    1.10              if (symbol != null && !isValidArrayIndex(getArrayIndex(key))) {
    1.11                  final int flags = getPropertyFlags(symbol, hasArguments, false);
    1.12                  properties.add(
    1.13                          new SpillProperty(
    1.14                                  key,
    1.15                                  flags,
    1.16 -                                spillIndex++));
    1.17 +                                spillIndex++,
    1.18 +                                initialType));
    1.19              }
    1.20          }
    1.21  
     2.1 --- a/src/jdk/nashorn/internal/parser/JSONParser.java	Mon Dec 15 12:32:34 2014 +0100
     2.2 +++ b/src/jdk/nashorn/internal/parser/JSONParser.java	Fri Mar 06 15:26:51 2015 +0100
     2.3 @@ -244,20 +244,15 @@
     2.4      private static PropertyMap addObjectProperty(final PropertyMap propertyMap, final List<Object> values,
     2.5                                                   final String id, final Object value) {
     2.6          final Property oldProperty = propertyMap.findProperty(id);
     2.7 -        final Property newProperty;
     2.8          final PropertyMap newMap;
     2.9          final Class<?> type = ObjectClassGenerator.OBJECT_FIELDS_ONLY ? Object.class : getType(value);
    2.10  
    2.11          if (oldProperty != null) {
    2.12              values.set(oldProperty.getSlot(), value);
    2.13 -            newProperty = new SpillProperty(id, 0, oldProperty.getSlot());
    2.14 -            newProperty.setType(type);
    2.15 -            newMap = propertyMap.replaceProperty(oldProperty, newProperty);;
    2.16 +            newMap = propertyMap.replaceProperty(oldProperty, new SpillProperty(id, 0, oldProperty.getSlot(), type));;
    2.17          } else {
    2.18              values.add(value);
    2.19 -            newProperty = new SpillProperty(id, 0, propertyMap.size());
    2.20 -            newProperty.setType(type);
    2.21 -            newMap = propertyMap.addProperty(newProperty);
    2.22 +            newMap = propertyMap.addProperty(new SpillProperty(id, 0, propertyMap.size(), type));
    2.23          }
    2.24  
    2.25          return newMap;
     3.1 --- a/src/jdk/nashorn/internal/runtime/SpillProperty.java	Mon Dec 15 12:32:34 2014 +0100
     3.2 +++ b/src/jdk/nashorn/internal/runtime/SpillProperty.java	Fri Mar 06 15:26:51 2015 +0100
     3.3 @@ -164,7 +164,14 @@
     3.4          assert !OBJECT_FIELDS_ONLY || getLocalType() == Object.class;
     3.5      }
     3.6  
     3.7 -    SpillProperty(final String key, final int flags, final int slot, final Class<?> initialType) {
     3.8 +    /**
     3.9 +     * Constructor for spill properties with an initial type.
    3.10 +     * @param key         the property key
    3.11 +     * @param flags       the property flags
    3.12 +     * @param slot        spill slot
    3.13 +     * @param initialType initial type
    3.14 +     */
    3.15 +    public SpillProperty(final String key, final int flags, final int slot, final Class<?> initialType) {
    3.16          this(key, flags, slot);
    3.17          setType(OBJECT_FIELDS_ONLY ? Object.class : initialType);
    3.18      }
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/test/script/basic/JDK-8074545.js	Fri Mar 06 15:26:51 2015 +0100
     4.3 @@ -0,0 +1,1038 @@
     4.4 +/*
     4.5 + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
     4.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4.7 + * 
     4.8 + * This code is free software; you can redistribute it and/or modify it
     4.9 + * under the terms of the GNU General Public License version 2 only, as
    4.10 + * published by the Free Software Foundation.
    4.11 + * 
    4.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
    4.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    4.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    4.15 + * version 2 for more details (a copy is included in the LICENSE file that
    4.16 + * accompanied this code).
    4.17 + * 
    4.18 + * You should have received a copy of the GNU General Public License version
    4.19 + * 2 along with this work; if not, write to the Free Software Foundation,
    4.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    4.21 + * 
    4.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    4.23 + * or visit www.oracle.com if you need additional information or have any
    4.24 + * questions.
    4.25 + */
    4.26 +
    4.27 +/**
    4.28 + * JDK-8074545: Undefined object values in object literals with spill properties
    4.29 + *
    4.30 + * @test
    4.31 + * @run
    4.32 + */
    4.33 +
    4.34 +var obj = {
    4.35 +    "p0": { "x" : 0 },
    4.36 +    "p1": { "x" : 1 },
    4.37 +    "p2": { "x" : 2 },
    4.38 +    "p3": { "x" : 3 },
    4.39 +    "p4": { "x" : 4 },
    4.40 +    "p5": { "x" : 5 },
    4.41 +    "p6": { "x" : 6 },
    4.42 +    "p7": { "x" : 7 },
    4.43 +    "p8": { "x" : 8 },
    4.44 +    "p9": { "x" : 9 },
    4.45 +    "p10": { "x" : 10 },
    4.46 +    "p11": { "x" : 11 },
    4.47 +    "p12": { "x" : 12 },
    4.48 +    "p13": { "x" : 13 },
    4.49 +    "p14": { "x" : 14 },
    4.50 +    "p15": { "x" : 15 },
    4.51 +    "p16": { "x" : 16 },
    4.52 +    "p17": { "x" : 17 },
    4.53 +    "p18": { "x" : 18 },
    4.54 +    "p19": { "x" : 19 },
    4.55 +    "p20": { "x" : 20 },
    4.56 +    "p21": { "x" : 21 },
    4.57 +    "p22": { "x" : 22 },
    4.58 +    "p23": { "x" : 23 },
    4.59 +    "p24": { "x" : 24 },
    4.60 +    "p25": { "x" : 25 },
    4.61 +    "p26": { "x" : 26 },
    4.62 +    "p27": { "x" : 27 },
    4.63 +    "p28": { "x" : 28 },
    4.64 +    "p29": { "x" : 29 },
    4.65 +    "p30": { "x" : 30 },
    4.66 +    "p31": { "x" : 31 },
    4.67 +    "p32": { "x" : 32 },
    4.68 +    "p33": { "x" : 33 },
    4.69 +    "p34": { "x" : 34 },
    4.70 +    "p35": { "x" : 35 },
    4.71 +    "p36": { "x" : 36 },
    4.72 +    "p37": { "x" : 37 },
    4.73 +    "p38": { "x" : 38 },
    4.74 +    "p39": { "x" : 39 },
    4.75 +    "p40": { "x" : 40 },
    4.76 +    "p41": { "x" : 41 },
    4.77 +    "p42": { "x" : 42 },
    4.78 +    "p43": { "x" : 43 },
    4.79 +    "p44": { "x" : 44 },
    4.80 +    "p45": { "x" : 45 },
    4.81 +    "p46": { "x" : 46 },
    4.82 +    "p47": { "x" : 47 },
    4.83 +    "p48": { "x" : 48 },
    4.84 +    "p49": { "x" : 49 },
    4.85 +    "p50": { "x" : 50 },
    4.86 +    "p51": { "x" : 51 },
    4.87 +    "p52": { "x" : 52 },
    4.88 +    "p53": { "x" : 53 },
    4.89 +    "p54": { "x" : 54 },
    4.90 +    "p55": { "x" : 55 },
    4.91 +    "p56": { "x" : 56 },
    4.92 +    "p57": { "x" : 57 },
    4.93 +    "p58": { "x" : 58 },
    4.94 +    "p59": { "x" : 59 },
    4.95 +    "p60": { "x" : 60 },
    4.96 +    "p61": { "x" : 61 },
    4.97 +    "p62": { "x" : 62 },
    4.98 +    "p63": { "x" : 63 },
    4.99 +    "p64": { "x" : 64 },
   4.100 +    "p65": { "x" : 65 },
   4.101 +    "p66": { "x" : 66 },
   4.102 +    "p67": { "x" : 67 },
   4.103 +    "p68": { "x" : 68 },
   4.104 +    "p69": { "x" : 69 },
   4.105 +    "p70": { "x" : 70 },
   4.106 +    "p71": { "x" : 71 },
   4.107 +    "p72": { "x" : 72 },
   4.108 +    "p73": { "x" : 73 },
   4.109 +    "p74": { "x" : 74 },
   4.110 +    "p75": { "x" : 75 },
   4.111 +    "p76": { "x" : 76 },
   4.112 +    "p77": { "x" : 77 },
   4.113 +    "p78": { "x" : 78 },
   4.114 +    "p79": { "x" : 79 },
   4.115 +    "p80": { "x" : 80 },
   4.116 +    "p81": { "x" : 81 },
   4.117 +    "p82": { "x" : 82 },
   4.118 +    "p83": { "x" : 83 },
   4.119 +    "p84": { "x" : 84 },
   4.120 +    "p85": { "x" : 85 },
   4.121 +    "p86": { "x" : 86 },
   4.122 +    "p87": { "x" : 87 },
   4.123 +    "p88": { "x" : 88 },
   4.124 +    "p89": { "x" : 89 },
   4.125 +    "p90": { "x" : 90 },
   4.126 +    "p91": { "x" : 91 },
   4.127 +    "p92": { "x" : 92 },
   4.128 +    "p93": { "x" : 93 },
   4.129 +    "p94": { "x" : 94 },
   4.130 +    "p95": { "x" : 95 },
   4.131 +    "p96": { "x" : 96 },
   4.132 +    "p97": { "x" : 97 },
   4.133 +    "p98": { "x" : 98 },
   4.134 +    "p99": { "x" : 99 },
   4.135 +    "p100": { "x" : 100 },
   4.136 +    "p101": { "x" : 101 },
   4.137 +    "p102": { "x" : 102 },
   4.138 +    "p103": { "x" : 103 },
   4.139 +    "p104": { "x" : 104 },
   4.140 +    "p105": { "x" : 105 },
   4.141 +    "p106": { "x" : 106 },
   4.142 +    "p107": { "x" : 107 },
   4.143 +    "p108": { "x" : 108 },
   4.144 +    "p109": { "x" : 109 },
   4.145 +    "p110": { "x" : 110 },
   4.146 +    "p111": { "x" : 111 },
   4.147 +    "p112": { "x" : 112 },
   4.148 +    "p113": { "x" : 113 },
   4.149 +    "p114": { "x" : 114 },
   4.150 +    "p115": { "x" : 115 },
   4.151 +    "p116": { "x" : 116 },
   4.152 +    "p117": { "x" : 117 },
   4.153 +    "p118": { "x" : 118 },
   4.154 +    "p119": { "x" : 119 },
   4.155 +    "p120": { "x" : 120 },
   4.156 +    "p121": { "x" : 121 },
   4.157 +    "p122": { "x" : 122 },
   4.158 +    "p123": { "x" : 123 },
   4.159 +    "p124": { "x" : 124 },
   4.160 +    "p125": { "x" : 125 },
   4.161 +    "p126": { "x" : 126 },
   4.162 +    "p127": { "x" : 127 },
   4.163 +    "p128": { "x" : 128 },
   4.164 +    "p129": { "x" : 129 },
   4.165 +    "p130": { "x" : 130 },
   4.166 +    "p131": { "x" : 131 },
   4.167 +    "p132": { "x" : 132 },
   4.168 +    "p133": { "x" : 133 },
   4.169 +    "p134": { "x" : 134 },
   4.170 +    "p135": { "x" : 135 },
   4.171 +    "p136": { "x" : 136 },
   4.172 +    "p137": { "x" : 137 },
   4.173 +    "p138": { "x" : 138 },
   4.174 +    "p139": { "x" : 139 },
   4.175 +    "p140": { "x" : 140 },
   4.176 +    "p141": { "x" : 141 },
   4.177 +    "p142": { "x" : 142 },
   4.178 +    "p143": { "x" : 143 },
   4.179 +    "p144": { "x" : 144 },
   4.180 +    "p145": { "x" : 145 },
   4.181 +    "p146": { "x" : 146 },
   4.182 +    "p147": { "x" : 147 },
   4.183 +    "p148": { "x" : 148 },
   4.184 +    "p149": { "x" : 149 },
   4.185 +    "p150": { "x" : 150 },
   4.186 +    "p151": { "x" : 151 },
   4.187 +    "p152": { "x" : 152 },
   4.188 +    "p153": { "x" : 153 },
   4.189 +    "p154": { "x" : 154 },
   4.190 +    "p155": { "x" : 155 },
   4.191 +    "p156": { "x" : 156 },
   4.192 +    "p157": { "x" : 157 },
   4.193 +    "p158": { "x" : 158 },
   4.194 +    "p159": { "x" : 159 },
   4.195 +    "p160": { "x" : 160 },
   4.196 +    "p161": { "x" : 161 },
   4.197 +    "p162": { "x" : 162 },
   4.198 +    "p163": { "x" : 163 },
   4.199 +    "p164": { "x" : 164 },
   4.200 +    "p165": { "x" : 165 },
   4.201 +    "p166": { "x" : 166 },
   4.202 +    "p167": { "x" : 167 },
   4.203 +    "p168": { "x" : 168 },
   4.204 +    "p169": { "x" : 169 },
   4.205 +    "p170": { "x" : 170 },
   4.206 +    "p171": { "x" : 171 },
   4.207 +    "p172": { "x" : 172 },
   4.208 +    "p173": { "x" : 173 },
   4.209 +    "p174": { "x" : 174 },
   4.210 +    "p175": { "x" : 175 },
   4.211 +    "p176": { "x" : 176 },
   4.212 +    "p177": { "x" : 177 },
   4.213 +    "p178": { "x" : 178 },
   4.214 +    "p179": { "x" : 179 },
   4.215 +    "p180": { "x" : 180 },
   4.216 +    "p181": { "x" : 181 },
   4.217 +    "p182": { "x" : 182 },
   4.218 +    "p183": { "x" : 183 },
   4.219 +    "p184": { "x" : 184 },
   4.220 +    "p185": { "x" : 185 },
   4.221 +    "p186": { "x" : 186 },
   4.222 +    "p187": { "x" : 187 },
   4.223 +    "p188": { "x" : 188 },
   4.224 +    "p189": { "x" : 189 },
   4.225 +    "p190": { "x" : 190 },
   4.226 +    "p191": { "x" : 191 },
   4.227 +    "p192": { "x" : 192 },
   4.228 +    "p193": { "x" : 193 },
   4.229 +    "p194": { "x" : 194 },
   4.230 +    "p195": { "x" : 195 },
   4.231 +    "p196": { "x" : 196 },
   4.232 +    "p197": { "x" : 197 },
   4.233 +    "p198": { "x" : 198 },
   4.234 +    "p199": { "x" : 199 },
   4.235 +    "p200": { "x" : 200 },
   4.236 +    "p201": { "x" : 201 },
   4.237 +    "p202": { "x" : 202 },
   4.238 +    "p203": { "x" : 203 },
   4.239 +    "p204": { "x" : 204 },
   4.240 +    "p205": { "x" : 205 },
   4.241 +    "p206": { "x" : 206 },
   4.242 +    "p207": { "x" : 207 },
   4.243 +    "p208": { "x" : 208 },
   4.244 +    "p209": { "x" : 209 },
   4.245 +    "p210": { "x" : 210 },
   4.246 +    "p211": { "x" : 211 },
   4.247 +    "p212": { "x" : 212 },
   4.248 +    "p213": { "x" : 213 },
   4.249 +    "p214": { "x" : 214 },
   4.250 +    "p215": { "x" : 215 },
   4.251 +    "p216": { "x" : 216 },
   4.252 +    "p217": { "x" : 217 },
   4.253 +    "p218": { "x" : 218 },
   4.254 +    "p219": { "x" : 219 },
   4.255 +    "p220": { "x" : 220 },
   4.256 +    "p221": { "x" : 221 },
   4.257 +    "p222": { "x" : 222 },
   4.258 +    "p223": { "x" : 223 },
   4.259 +    "p224": { "x" : 224 },
   4.260 +    "p225": { "x" : 225 },
   4.261 +    "p226": { "x" : 226 },
   4.262 +    "p227": { "x" : 227 },
   4.263 +    "p228": { "x" : 228 },
   4.264 +    "p229": { "x" : 229 },
   4.265 +    "p230": { "x" : 230 },
   4.266 +    "p231": { "x" : 231 },
   4.267 +    "p232": { "x" : 232 },
   4.268 +    "p233": { "x" : 233 },
   4.269 +    "p234": { "x" : 234 },
   4.270 +    "p235": { "x" : 235 },
   4.271 +    "p236": { "x" : 236 },
   4.272 +    "p237": { "x" : 237 },
   4.273 +    "p238": { "x" : 238 },
   4.274 +    "p239": { "x" : 239 },
   4.275 +    "p240": { "x" : 240 },
   4.276 +    "p241": { "x" : 241 },
   4.277 +    "p242": { "x" : 242 },
   4.278 +    "p243": { "x" : 243 },
   4.279 +    "p244": { "x" : 244 },
   4.280 +    "p245": { "x" : 245 },
   4.281 +    "p246": { "x" : 246 },
   4.282 +    "p247": { "x" : 247 },
   4.283 +    "p248": { "x" : 248 },
   4.284 +    "p249": { "x" : 249 },
   4.285 +    "p250": { "x" : 250 },
   4.286 +    "p251": { "x" : 251 },
   4.287 +    "p252": { "x" : 252 },
   4.288 +    "p253": { "x" : 253 },
   4.289 +    "p254": { "x" : 254 },
   4.290 +    "p255": { "x" : 255 },
   4.291 +    "p256": { "x" : 256 },
   4.292 +    "p257": { "x" : 257 },
   4.293 +    "p258": { "x" : 258 },
   4.294 +    "p259": { "x" : 259 },
   4.295 +    "p260": { "x" : 260 },
   4.296 +    "p261": { "x" : 261 },
   4.297 +    "p262": { "x" : 262 },
   4.298 +    "p263": { "x" : 263 },
   4.299 +    "p264": { "x" : 264 },
   4.300 +    "p265": { "x" : 265 },
   4.301 +    "p266": { "x" : 266 },
   4.302 +    "p267": { "x" : 267 },
   4.303 +    "p268": { "x" : 268 },
   4.304 +    "p269": { "x" : 269 },
   4.305 +    "p270": { "x" : 270 },
   4.306 +    "p271": { "x" : 271 },
   4.307 +    "p272": { "x" : 272 },
   4.308 +    "p273": { "x" : 273 },
   4.309 +    "p274": { "x" : 274 },
   4.310 +    "p275": { "x" : 275 },
   4.311 +    "p276": { "x" : 276 },
   4.312 +    "p277": { "x" : 277 },
   4.313 +    "p278": { "x" : 278 },
   4.314 +    "p279": { "x" : 279 },
   4.315 +    "p280": { "x" : 280 },
   4.316 +    "p281": { "x" : 281 },
   4.317 +    "p282": { "x" : 282 },
   4.318 +    "p283": { "x" : 283 },
   4.319 +    "p284": { "x" : 284 },
   4.320 +    "p285": { "x" : 285 },
   4.321 +    "p286": { "x" : 286 },
   4.322 +    "p287": { "x" : 287 },
   4.323 +    "p288": { "x" : 288 },
   4.324 +    "p289": { "x" : 289 },
   4.325 +    "p290": { "x" : 290 },
   4.326 +    "p291": { "x" : 291 },
   4.327 +    "p292": { "x" : 292 },
   4.328 +    "p293": { "x" : 293 },
   4.329 +    "p294": { "x" : 294 },
   4.330 +    "p295": { "x" : 295 },
   4.331 +    "p296": { "x" : 296 },
   4.332 +    "p297": { "x" : 297 },
   4.333 +    "p298": { "x" : 298 },
   4.334 +    "p299": { "x" : 299 },
   4.335 +    "p300": { "x" : 300 },
   4.336 +    "p301": { "x" : 301 },
   4.337 +    "p302": { "x" : 302 },
   4.338 +    "p303": { "x" : 303 },
   4.339 +    "p304": { "x" : 304 },
   4.340 +    "p305": { "x" : 305 },
   4.341 +    "p306": { "x" : 306 },
   4.342 +    "p307": { "x" : 307 },
   4.343 +    "p308": { "x" : 308 },
   4.344 +    "p309": { "x" : 309 },
   4.345 +    "p310": { "x" : 310 },
   4.346 +    "p311": { "x" : 311 },
   4.347 +    "p312": { "x" : 312 },
   4.348 +    "p313": { "x" : 313 },
   4.349 +    "p314": { "x" : 314 },
   4.350 +    "p315": { "x" : 315 },
   4.351 +    "p316": { "x" : 316 },
   4.352 +    "p317": { "x" : 317 },
   4.353 +    "p318": { "x" : 318 },
   4.354 +    "p319": { "x" : 319 },
   4.355 +    "p320": { "x" : 320 },
   4.356 +    "p321": { "x" : 321 },
   4.357 +    "p322": { "x" : 322 },
   4.358 +    "p323": { "x" : 323 },
   4.359 +    "p324": { "x" : 324 },
   4.360 +    "p325": { "x" : 325 },
   4.361 +    "p326": { "x" : 326 },
   4.362 +    "p327": { "x" : 327 },
   4.363 +    "p328": { "x" : 328 },
   4.364 +    "p329": { "x" : 329 },
   4.365 +    "p330": { "x" : 330 },
   4.366 +    "p331": { "x" : 331 },
   4.367 +    "p332": { "x" : 332 },
   4.368 +    "p333": { "x" : 333 },
   4.369 +    "p334": { "x" : 334 },
   4.370 +    "p335": { "x" : 335 },
   4.371 +    "p336": { "x" : 336 },
   4.372 +    "p337": { "x" : 337 },
   4.373 +    "p338": { "x" : 338 },
   4.374 +    "p339": { "x" : 339 },
   4.375 +    "p340": { "x" : 340 },
   4.376 +    "p341": { "x" : 341 },
   4.377 +    "p342": { "x" : 342 },
   4.378 +    "p343": { "x" : 343 },
   4.379 +    "p344": { "x" : 344 },
   4.380 +    "p345": { "x" : 345 },
   4.381 +    "p346": { "x" : 346 },
   4.382 +    "p347": { "x" : 347 },
   4.383 +    "p348": { "x" : 348 },
   4.384 +    "p349": { "x" : 349 },
   4.385 +    "p350": { "x" : 350 },
   4.386 +    "p351": { "x" : 351 },
   4.387 +    "p352": { "x" : 352 },
   4.388 +    "p353": { "x" : 353 },
   4.389 +    "p354": { "x" : 354 },
   4.390 +    "p355": { "x" : 355 },
   4.391 +    "p356": { "x" : 356 },
   4.392 +    "p357": { "x" : 357 },
   4.393 +    "p358": { "x" : 358 },
   4.394 +    "p359": { "x" : 359 },
   4.395 +    "p360": { "x" : 360 },
   4.396 +    "p361": { "x" : 361 },
   4.397 +    "p362": { "x" : 362 },
   4.398 +    "p363": { "x" : 363 },
   4.399 +    "p364": { "x" : 364 },
   4.400 +    "p365": { "x" : 365 },
   4.401 +    "p366": { "x" : 366 },
   4.402 +    "p367": { "x" : 367 },
   4.403 +    "p368": { "x" : 368 },
   4.404 +    "p369": { "x" : 369 },
   4.405 +    "p370": { "x" : 370 },
   4.406 +    "p371": { "x" : 371 },
   4.407 +    "p372": { "x" : 372 },
   4.408 +    "p373": { "x" : 373 },
   4.409 +    "p374": { "x" : 374 },
   4.410 +    "p375": { "x" : 375 },
   4.411 +    "p376": { "x" : 376 },
   4.412 +    "p377": { "x" : 377 },
   4.413 +    "p378": { "x" : 378 },
   4.414 +    "p379": { "x" : 379 },
   4.415 +    "p380": { "x" : 380 },
   4.416 +    "p381": { "x" : 381 },
   4.417 +    "p382": { "x" : 382 },
   4.418 +    "p383": { "x" : 383 },
   4.419 +    "p384": { "x" : 384 },
   4.420 +    "p385": { "x" : 385 },
   4.421 +    "p386": { "x" : 386 },
   4.422 +    "p387": { "x" : 387 },
   4.423 +    "p388": { "x" : 388 },
   4.424 +    "p389": { "x" : 389 },
   4.425 +    "p390": { "x" : 390 },
   4.426 +    "p391": { "x" : 391 },
   4.427 +    "p392": { "x" : 392 },
   4.428 +    "p393": { "x" : 393 },
   4.429 +    "p394": { "x" : 394 },
   4.430 +    "p395": { "x" : 395 },
   4.431 +    "p396": { "x" : 396 },
   4.432 +    "p397": { "x" : 397 },
   4.433 +    "p398": { "x" : 398 },
   4.434 +    "p399": { "x" : 399 },
   4.435 +    "p400": { "x" : 400 },
   4.436 +    "p401": { "x" : 401 },
   4.437 +    "p402": { "x" : 402 },
   4.438 +    "p403": { "x" : 403 },
   4.439 +    "p404": { "x" : 404 },
   4.440 +    "p405": { "x" : 405 },
   4.441 +    "p406": { "x" : 406 },
   4.442 +    "p407": { "x" : 407 },
   4.443 +    "p408": { "x" : 408 },
   4.444 +    "p409": { "x" : 409 },
   4.445 +    "p410": { "x" : 410 },
   4.446 +    "p411": { "x" : 411 },
   4.447 +    "p412": { "x" : 412 },
   4.448 +    "p413": { "x" : 413 },
   4.449 +    "p414": { "x" : 414 },
   4.450 +    "p415": { "x" : 415 },
   4.451 +    "p416": { "x" : 416 },
   4.452 +    "p417": { "x" : 417 },
   4.453 +    "p418": { "x" : 418 },
   4.454 +    "p419": { "x" : 419 },
   4.455 +    "p420": { "x" : 420 },
   4.456 +    "p421": { "x" : 421 },
   4.457 +    "p422": { "x" : 422 },
   4.458 +    "p423": { "x" : 423 },
   4.459 +    "p424": { "x" : 424 },
   4.460 +    "p425": { "x" : 425 },
   4.461 +    "p426": { "x" : 426 },
   4.462 +    "p427": { "x" : 427 },
   4.463 +    "p428": { "x" : 428 },
   4.464 +    "p429": { "x" : 429 },
   4.465 +    "p430": { "x" : 430 },
   4.466 +    "p431": { "x" : 431 },
   4.467 +    "p432": { "x" : 432 },
   4.468 +    "p433": { "x" : 433 },
   4.469 +    "p434": { "x" : 434 },
   4.470 +    "p435": { "x" : 435 },
   4.471 +    "p436": { "x" : 436 },
   4.472 +    "p437": { "x" : 437 },
   4.473 +    "p438": { "x" : 438 },
   4.474 +    "p439": { "x" : 439 },
   4.475 +    "p440": { "x" : 440 },
   4.476 +    "p441": { "x" : 441 },
   4.477 +    "p442": { "x" : 442 },
   4.478 +    "p443": { "x" : 443 },
   4.479 +    "p444": { "x" : 444 },
   4.480 +    "p445": { "x" : 445 },
   4.481 +    "p446": { "x" : 446 },
   4.482 +    "p447": { "x" : 447 },
   4.483 +    "p448": { "x" : 448 },
   4.484 +    "p449": { "x" : 449 },
   4.485 +    "p450": { "x" : 450 },
   4.486 +    "p451": { "x" : 451 },
   4.487 +    "p452": { "x" : 452 },
   4.488 +    "p453": { "x" : 453 },
   4.489 +    "p454": { "x" : 454 },
   4.490 +    "p455": { "x" : 455 },
   4.491 +    "p456": { "x" : 456 },
   4.492 +    "p457": { "x" : 457 },
   4.493 +    "p458": { "x" : 458 },
   4.494 +    "p459": { "x" : 459 },
   4.495 +    "p460": { "x" : 460 },
   4.496 +    "p461": { "x" : 461 },
   4.497 +    "p462": { "x" : 462 },
   4.498 +    "p463": { "x" : 463 },
   4.499 +    "p464": { "x" : 464 },
   4.500 +    "p465": { "x" : 465 },
   4.501 +    "p466": { "x" : 466 },
   4.502 +    "p467": { "x" : 467 },
   4.503 +    "p468": { "x" : 468 },
   4.504 +    "p469": { "x" : 469 },
   4.505 +    "p470": { "x" : 470 },
   4.506 +    "p471": { "x" : 471 },
   4.507 +    "p472": { "x" : 472 },
   4.508 +    "p473": { "x" : 473 },
   4.509 +    "p474": { "x" : 474 },
   4.510 +    "p475": { "x" : 475 },
   4.511 +    "p476": { "x" : 476 },
   4.512 +    "p477": { "x" : 477 },
   4.513 +    "p478": { "x" : 478 },
   4.514 +    "p479": { "x" : 479 },
   4.515 +    "p480": { "x" : 480 },
   4.516 +    "p481": { "x" : 481 },
   4.517 +    "p482": { "x" : 482 },
   4.518 +    "p483": { "x" : 483 },
   4.519 +    "p484": { "x" : 484 },
   4.520 +    "p485": { "x" : 485 },
   4.521 +    "p486": { "x" : 486 },
   4.522 +    "p487": { "x" : 487 },
   4.523 +    "p488": { "x" : 488 },
   4.524 +    "p489": { "x" : 489 },
   4.525 +    "p490": { "x" : 490 },
   4.526 +    "p491": { "x" : 491 },
   4.527 +    "p492": { "x" : 492 },
   4.528 +    "p493": { "x" : 493 },
   4.529 +    "p494": { "x" : 494 },
   4.530 +    "p495": { "x" : 495 },
   4.531 +    "p496": { "x" : 496 },
   4.532 +    "p497": { "x" : 497 },
   4.533 +    "p498": { "x" : 498 },
   4.534 +    "p499": { "x" : 499 },
   4.535 +    "p500": { "x" : 500 },
   4.536 +    "p501": { "x" : 501 },
   4.537 +    "p502": { "x" : 502 },
   4.538 +    "p503": { "x" : 503 },
   4.539 +    "p504": { "x" : 504 },
   4.540 +    "p505": { "x" : 505 },
   4.541 +    "p506": { "x" : 506 },
   4.542 +    "p507": { "x" : 507 },
   4.543 +    "p508": { "x" : 508 },
   4.544 +    "p509": { "x" : 509 },
   4.545 +    "p510": { "x" : 510 },
   4.546 +    "p511": { "x" : 511 },
   4.547 +    "p512": { "x" : 512 },
   4.548 +    "p513": { "x" : 513 },
   4.549 +    "p514": { "x" : 514 },
   4.550 +    "p515": { "x" : 515 },
   4.551 +    "p516": { "x" : 516 },
   4.552 +    "p517": { "x" : 517 },
   4.553 +    "p518": { "x" : 518 },
   4.554 +    "p519": { "x" : 519 },
   4.555 +    "p520": { "x" : 520 },
   4.556 +    "p521": { "x" : 521 },
   4.557 +    "p522": { "x" : 522 },
   4.558 +    "p523": { "x" : 523 },
   4.559 +    "p524": { "x" : 524 },
   4.560 +    "p525": { "x" : 525 },
   4.561 +    "p526": { "x" : 526 },
   4.562 +    "p527": { "x" : 527 },
   4.563 +    "p528": { "x" : 528 },
   4.564 +    "p529": { "x" : 529 },
   4.565 +    "p530": { "x" : 530 },
   4.566 +    "p531": { "x" : 531 },
   4.567 +    "p532": { "x" : 532 },
   4.568 +    "p533": { "x" : 533 },
   4.569 +    "p534": { "x" : 534 },
   4.570 +    "p535": { "x" : 535 },
   4.571 +    "p536": { "x" : 536 },
   4.572 +    "p537": { "x" : 537 },
   4.573 +    "p538": { "x" : 538 },
   4.574 +    "p539": { "x" : 539 },
   4.575 +    "p540": { "x" : 540 },
   4.576 +    "p541": { "x" : 541 },
   4.577 +    "p542": { "x" : 542 },
   4.578 +    "p543": { "x" : 543 },
   4.579 +    "p544": { "x" : 544 },
   4.580 +    "p545": { "x" : 545 },
   4.581 +    "p546": { "x" : 546 },
   4.582 +    "p547": { "x" : 547 },
   4.583 +    "p548": { "x" : 548 },
   4.584 +    "p549": { "x" : 549 },
   4.585 +    "p550": { "x" : 550 },
   4.586 +    "p551": { "x" : 551 },
   4.587 +    "p552": { "x" : 552 },
   4.588 +    "p553": { "x" : 553 },
   4.589 +    "p554": { "x" : 554 },
   4.590 +    "p555": { "x" : 555 },
   4.591 +    "p556": { "x" : 556 },
   4.592 +    "p557": { "x" : 557 },
   4.593 +    "p558": { "x" : 558 },
   4.594 +    "p559": { "x" : 559 },
   4.595 +    "p560": { "x" : 560 },
   4.596 +    "p561": { "x" : 561 },
   4.597 +    "p562": { "x" : 562 },
   4.598 +    "p563": { "x" : 563 },
   4.599 +    "p564": { "x" : 564 },
   4.600 +    "p565": { "x" : 565 },
   4.601 +    "p566": { "x" : 566 },
   4.602 +    "p567": { "x" : 567 },
   4.603 +    "p568": { "x" : 568 },
   4.604 +    "p569": { "x" : 569 },
   4.605 +    "p570": { "x" : 570 },
   4.606 +    "p571": { "x" : 571 },
   4.607 +    "p572": { "x" : 572 },
   4.608 +    "p573": { "x" : 573 },
   4.609 +    "p574": { "x" : 574 },
   4.610 +    "p575": { "x" : 575 },
   4.611 +    "p576": { "x" : 576 },
   4.612 +    "p577": { "x" : 577 },
   4.613 +    "p578": { "x" : 578 },
   4.614 +    "p579": { "x" : 579 },
   4.615 +    "p580": { "x" : 580 },
   4.616 +    "p581": { "x" : 581 },
   4.617 +    "p582": { "x" : 582 },
   4.618 +    "p583": { "x" : 583 },
   4.619 +    "p584": { "x" : 584 },
   4.620 +    "p585": { "x" : 585 },
   4.621 +    "p586": { "x" : 586 },
   4.622 +    "p587": { "x" : 587 },
   4.623 +    "p588": { "x" : 588 },
   4.624 +    "p589": { "x" : 589 },
   4.625 +    "p590": { "x" : 590 },
   4.626 +    "p591": { "x" : 591 },
   4.627 +    "p592": { "x" : 592 },
   4.628 +    "p593": { "x" : 593 },
   4.629 +    "p594": { "x" : 594 },
   4.630 +    "p595": { "x" : 595 },
   4.631 +    "p596": { "x" : 596 },
   4.632 +    "p597": { "x" : 597 },
   4.633 +    "p598": { "x" : 598 },
   4.634 +    "p599": { "x" : 599 },
   4.635 +    "p600": { "x" : 600 },
   4.636 +    "p601": { "x" : 601 },
   4.637 +    "p602": { "x" : 602 },
   4.638 +    "p603": { "x" : 603 },
   4.639 +    "p604": { "x" : 604 },
   4.640 +    "p605": { "x" : 605 },
   4.641 +    "p606": { "x" : 606 },
   4.642 +    "p607": { "x" : 607 },
   4.643 +    "p608": { "x" : 608 },
   4.644 +    "p609": { "x" : 609 },
   4.645 +    "p610": { "x" : 610 },
   4.646 +    "p611": { "x" : 611 },
   4.647 +    "p612": { "x" : 612 },
   4.648 +    "p613": { "x" : 613 },
   4.649 +    "p614": { "x" : 614 },
   4.650 +    "p615": { "x" : 615 },
   4.651 +    "p616": { "x" : 616 },
   4.652 +    "p617": { "x" : 617 },
   4.653 +    "p618": { "x" : 618 },
   4.654 +    "p619": { "x" : 619 },
   4.655 +    "p620": { "x" : 620 },
   4.656 +    "p621": { "x" : 621 },
   4.657 +    "p622": { "x" : 622 },
   4.658 +    "p623": { "x" : 623 },
   4.659 +    "p624": { "x" : 624 },
   4.660 +    "p625": { "x" : 625 },
   4.661 +    "p626": { "x" : 626 },
   4.662 +    "p627": { "x" : 627 },
   4.663 +    "p628": { "x" : 628 },
   4.664 +    "p629": { "x" : 629 },
   4.665 +    "p630": { "x" : 630 },
   4.666 +    "p631": { "x" : 631 },
   4.667 +    "p632": { "x" : 632 },
   4.668 +    "p633": { "x" : 633 },
   4.669 +    "p634": { "x" : 634 },
   4.670 +    "p635": { "x" : 635 },
   4.671 +    "p636": { "x" : 636 },
   4.672 +    "p637": { "x" : 637 },
   4.673 +    "p638": { "x" : 638 },
   4.674 +    "p639": { "x" : 639 },
   4.675 +    "p640": { "x" : 640 },
   4.676 +    "p641": { "x" : 641 },
   4.677 +    "p642": { "x" : 642 },
   4.678 +    "p643": { "x" : 643 },
   4.679 +    "p644": { "x" : 644 },
   4.680 +    "p645": { "x" : 645 },
   4.681 +    "p646": { "x" : 646 },
   4.682 +    "p647": { "x" : 647 },
   4.683 +    "p648": { "x" : 648 },
   4.684 +    "p649": { "x" : 649 },
   4.685 +    "p650": { "x" : 650 },
   4.686 +    "p651": { "x" : 651 },
   4.687 +    "p652": { "x" : 652 },
   4.688 +    "p653": { "x" : 653 },
   4.689 +    "p654": { "x" : 654 },
   4.690 +    "p655": { "x" : 655 },
   4.691 +    "p656": { "x" : 656 },
   4.692 +    "p657": { "x" : 657 },
   4.693 +    "p658": { "x" : 658 },
   4.694 +    "p659": { "x" : 659 },
   4.695 +    "p660": { "x" : 660 },
   4.696 +    "p661": { "x" : 661 },
   4.697 +    "p662": { "x" : 662 },
   4.698 +    "p663": { "x" : 663 },
   4.699 +    "p664": { "x" : 664 },
   4.700 +    "p665": { "x" : 665 },
   4.701 +    "p666": { "x" : 666 },
   4.702 +    "p667": { "x" : 667 },
   4.703 +    "p668": { "x" : 668 },
   4.704 +    "p669": { "x" : 669 },
   4.705 +    "p670": { "x" : 670 },
   4.706 +    "p671": { "x" : 671 },
   4.707 +    "p672": { "x" : 672 },
   4.708 +    "p673": { "x" : 673 },
   4.709 +    "p674": { "x" : 674 },
   4.710 +    "p675": { "x" : 675 },
   4.711 +    "p676": { "x" : 676 },
   4.712 +    "p677": { "x" : 677 },
   4.713 +    "p678": { "x" : 678 },
   4.714 +    "p679": { "x" : 679 },
   4.715 +    "p680": { "x" : 680 },
   4.716 +    "p681": { "x" : 681 },
   4.717 +    "p682": { "x" : 682 },
   4.718 +    "p683": { "x" : 683 },
   4.719 +    "p684": { "x" : 684 },
   4.720 +    "p685": { "x" : 685 },
   4.721 +    "p686": { "x" : 686 },
   4.722 +    "p687": { "x" : 687 },
   4.723 +    "p688": { "x" : 688 },
   4.724 +    "p689": { "x" : 689 },
   4.725 +    "p690": { "x" : 690 },
   4.726 +    "p691": { "x" : 691 },
   4.727 +    "p692": { "x" : 692 },
   4.728 +    "p693": { "x" : 693 },
   4.729 +    "p694": { "x" : 694 },
   4.730 +    "p695": { "x" : 695 },
   4.731 +    "p696": { "x" : 696 },
   4.732 +    "p697": { "x" : 697 },
   4.733 +    "p698": { "x" : 698 },
   4.734 +    "p699": { "x" : 699 },
   4.735 +    "p700": { "x" : 700 },
   4.736 +    "p701": { "x" : 701 },
   4.737 +    "p702": { "x" : 702 },
   4.738 +    "p703": { "x" : 703 },
   4.739 +    "p704": { "x" : 704 },
   4.740 +    "p705": { "x" : 705 },
   4.741 +    "p706": { "x" : 706 },
   4.742 +    "p707": { "x" : 707 },
   4.743 +    "p708": { "x" : 708 },
   4.744 +    "p709": { "x" : 709 },
   4.745 +    "p710": { "x" : 710 },
   4.746 +    "p711": { "x" : 711 },
   4.747 +    "p712": { "x" : 712 },
   4.748 +    "p713": { "x" : 713 },
   4.749 +    "p714": { "x" : 714 },
   4.750 +    "p715": { "x" : 715 },
   4.751 +    "p716": { "x" : 716 },
   4.752 +    "p717": { "x" : 717 },
   4.753 +    "p718": { "x" : 718 },
   4.754 +    "p719": { "x" : 719 },
   4.755 +    "p720": { "x" : 720 },
   4.756 +    "p721": { "x" : 721 },
   4.757 +    "p722": { "x" : 722 },
   4.758 +    "p723": { "x" : 723 },
   4.759 +    "p724": { "x" : 724 },
   4.760 +    "p725": { "x" : 725 },
   4.761 +    "p726": { "x" : 726 },
   4.762 +    "p727": { "x" : 727 },
   4.763 +    "p728": { "x" : 728 },
   4.764 +    "p729": { "x" : 729 },
   4.765 +    "p730": { "x" : 730 },
   4.766 +    "p731": { "x" : 731 },
   4.767 +    "p732": { "x" : 732 },
   4.768 +    "p733": { "x" : 733 },
   4.769 +    "p734": { "x" : 734 },
   4.770 +    "p735": { "x" : 735 },
   4.771 +    "p736": { "x" : 736 },
   4.772 +    "p737": { "x" : 737 },
   4.773 +    "p738": { "x" : 738 },
   4.774 +    "p739": { "x" : 739 },
   4.775 +    "p740": { "x" : 740 },
   4.776 +    "p741": { "x" : 741 },
   4.777 +    "p742": { "x" : 742 },
   4.778 +    "p743": { "x" : 743 },
   4.779 +    "p744": { "x" : 744 },
   4.780 +    "p745": { "x" : 745 },
   4.781 +    "p746": { "x" : 746 },
   4.782 +    "p747": { "x" : 747 },
   4.783 +    "p748": { "x" : 748 },
   4.784 +    "p749": { "x" : 749 },
   4.785 +    "p750": { "x" : 750 },
   4.786 +    "p751": { "x" : 751 },
   4.787 +    "p752": { "x" : 752 },
   4.788 +    "p753": { "x" : 753 },
   4.789 +    "p754": { "x" : 754 },
   4.790 +    "p755": { "x" : 755 },
   4.791 +    "p756": { "x" : 756 },
   4.792 +    "p757": { "x" : 757 },
   4.793 +    "p758": { "x" : 758 },
   4.794 +    "p759": { "x" : 759 },
   4.795 +    "p760": { "x" : 760 },
   4.796 +    "p761": { "x" : 761 },
   4.797 +    "p762": { "x" : 762 },
   4.798 +    "p763": { "x" : 763 },
   4.799 +    "p764": { "x" : 764 },
   4.800 +    "p765": { "x" : 765 },
   4.801 +    "p766": { "x" : 766 },
   4.802 +    "p767": { "x" : 767 },
   4.803 +    "p768": { "x" : 768 },
   4.804 +    "p769": { "x" : 769 },
   4.805 +    "p770": { "x" : 770 },
   4.806 +    "p771": { "x" : 771 },
   4.807 +    "p772": { "x" : 772 },
   4.808 +    "p773": { "x" : 773 },
   4.809 +    "p774": { "x" : 774 },
   4.810 +    "p775": { "x" : 775 },
   4.811 +    "p776": { "x" : 776 },
   4.812 +    "p777": { "x" : 777 },
   4.813 +    "p778": { "x" : 778 },
   4.814 +    "p779": { "x" : 779 },
   4.815 +    "p780": { "x" : 780 },
   4.816 +    "p781": { "x" : 781 },
   4.817 +    "p782": { "x" : 782 },
   4.818 +    "p783": { "x" : 783 },
   4.819 +    "p784": { "x" : 784 },
   4.820 +    "p785": { "x" : 785 },
   4.821 +    "p786": { "x" : 786 },
   4.822 +    "p787": { "x" : 787 },
   4.823 +    "p788": { "x" : 788 },
   4.824 +    "p789": { "x" : 789 },
   4.825 +    "p790": { "x" : 790 },
   4.826 +    "p791": { "x" : 791 },
   4.827 +    "p792": { "x" : 792 },
   4.828 +    "p793": { "x" : 793 },
   4.829 +    "p794": { "x" : 794 },
   4.830 +    "p795": { "x" : 795 },
   4.831 +    "p796": { "x" : 796 },
   4.832 +    "p797": { "x" : 797 },
   4.833 +    "p798": { "x" : 798 },
   4.834 +    "p799": { "x" : 799 },
   4.835 +    "p800": { "x" : 800 },
   4.836 +    "p801": { "x" : 801 },
   4.837 +    "p802": { "x" : 802 },
   4.838 +    "p803": { "x" : 803 },
   4.839 +    "p804": { "x" : 804 },
   4.840 +    "p805": { "x" : 805 },
   4.841 +    "p806": { "x" : 806 },
   4.842 +    "p807": { "x" : 807 },
   4.843 +    "p808": { "x" : 808 },
   4.844 +    "p809": { "x" : 809 },
   4.845 +    "p810": { "x" : 810 },
   4.846 +    "p811": { "x" : 811 },
   4.847 +    "p812": { "x" : 812 },
   4.848 +    "p813": { "x" : 813 },
   4.849 +    "p814": { "x" : 814 },
   4.850 +    "p815": { "x" : 815 },
   4.851 +    "p816": { "x" : 816 },
   4.852 +    "p817": { "x" : 817 },
   4.853 +    "p818": { "x" : 818 },
   4.854 +    "p819": { "x" : 819 },
   4.855 +    "p820": { "x" : 820 },
   4.856 +    "p821": { "x" : 821 },
   4.857 +    "p822": { "x" : 822 },
   4.858 +    "p823": { "x" : 823 },
   4.859 +    "p824": { "x" : 824 },
   4.860 +    "p825": { "x" : 825 },
   4.861 +    "p826": { "x" : 826 },
   4.862 +    "p827": { "x" : 827 },
   4.863 +    "p828": { "x" : 828 },
   4.864 +    "p829": { "x" : 829 },
   4.865 +    "p830": { "x" : 830 },
   4.866 +    "p831": { "x" : 831 },
   4.867 +    "p832": { "x" : 832 },
   4.868 +    "p833": { "x" : 833 },
   4.869 +    "p834": { "x" : 834 },
   4.870 +    "p835": { "x" : 835 },
   4.871 +    "p836": { "x" : 836 },
   4.872 +    "p837": { "x" : 837 },
   4.873 +    "p838": { "x" : 838 },
   4.874 +    "p839": { "x" : 839 },
   4.875 +    "p840": { "x" : 840 },
   4.876 +    "p841": { "x" : 841 },
   4.877 +    "p842": { "x" : 842 },
   4.878 +    "p843": { "x" : 843 },
   4.879 +    "p844": { "x" : 844 },
   4.880 +    "p845": { "x" : 845 },
   4.881 +    "p846": { "x" : 846 },
   4.882 +    "p847": { "x" : 847 },
   4.883 +    "p848": { "x" : 848 },
   4.884 +    "p849": { "x" : 849 },
   4.885 +    "p850": { "x" : 850 },
   4.886 +    "p851": { "x" : 851 },
   4.887 +    "p852": { "x" : 852 },
   4.888 +    "p853": { "x" : 853 },
   4.889 +    "p854": { "x" : 854 },
   4.890 +    "p855": { "x" : 855 },
   4.891 +    "p856": { "x" : 856 },
   4.892 +    "p857": { "x" : 857 },
   4.893 +    "p858": { "x" : 858 },
   4.894 +    "p859": { "x" : 859 },
   4.895 +    "p860": { "x" : 860 },
   4.896 +    "p861": { "x" : 861 },
   4.897 +    "p862": { "x" : 862 },
   4.898 +    "p863": { "x" : 863 },
   4.899 +    "p864": { "x" : 864 },
   4.900 +    "p865": { "x" : 865 },
   4.901 +    "p866": { "x" : 866 },
   4.902 +    "p867": { "x" : 867 },
   4.903 +    "p868": { "x" : 868 },
   4.904 +    "p869": { "x" : 869 },
   4.905 +    "p870": { "x" : 870 },
   4.906 +    "p871": { "x" : 871 },
   4.907 +    "p872": { "x" : 872 },
   4.908 +    "p873": { "x" : 873 },
   4.909 +    "p874": { "x" : 874 },
   4.910 +    "p875": { "x" : 875 },
   4.911 +    "p876": { "x" : 876 },
   4.912 +    "p877": { "x" : 877 },
   4.913 +    "p878": { "x" : 878 },
   4.914 +    "p879": { "x" : 879 },
   4.915 +    "p880": { "x" : 880 },
   4.916 +    "p881": { "x" : 881 },
   4.917 +    "p882": { "x" : 882 },
   4.918 +    "p883": { "x" : 883 },
   4.919 +    "p884": { "x" : 884 },
   4.920 +    "p885": { "x" : 885 },
   4.921 +    "p886": { "x" : 886 },
   4.922 +    "p887": { "x" : 887 },
   4.923 +    "p888": { "x" : 888 },
   4.924 +    "p889": { "x" : 889 },
   4.925 +    "p890": { "x" : 890 },
   4.926 +    "p891": { "x" : 891 },
   4.927 +    "p892": { "x" : 892 },
   4.928 +    "p893": { "x" : 893 },
   4.929 +    "p894": { "x" : 894 },
   4.930 +    "p895": { "x" : 895 },
   4.931 +    "p896": { "x" : 896 },
   4.932 +    "p897": { "x" : 897 },
   4.933 +    "p898": { "x" : 898 },
   4.934 +    "p899": { "x" : 899 },
   4.935 +    "p900": { "x" : 900 },
   4.936 +    "p901": { "x" : 901 },
   4.937 +    "p902": { "x" : 902 },
   4.938 +    "p903": { "x" : 903 },
   4.939 +    "p904": { "x" : 904 },
   4.940 +    "p905": { "x" : 905 },
   4.941 +    "p906": { "x" : 906 },
   4.942 +    "p907": { "x" : 907 },
   4.943 +    "p908": { "x" : 908 },
   4.944 +    "p909": { "x" : 909 },
   4.945 +    "p910": { "x" : 910 },
   4.946 +    "p911": { "x" : 911 },
   4.947 +    "p912": { "x" : 912 },
   4.948 +    "p913": { "x" : 913 },
   4.949 +    "p914": { "x" : 914 },
   4.950 +    "p915": { "x" : 915 },
   4.951 +    "p916": { "x" : 916 },
   4.952 +    "p917": { "x" : 917 },
   4.953 +    "p918": { "x" : 918 },
   4.954 +    "p919": { "x" : 919 },
   4.955 +    "p920": { "x" : 920 },
   4.956 +    "p921": { "x" : 921 },
   4.957 +    "p922": { "x" : 922 },
   4.958 +    "p923": { "x" : 923 },
   4.959 +    "p924": { "x" : 924 },
   4.960 +    "p925": { "x" : 925 },
   4.961 +    "p926": { "x" : 926 },
   4.962 +    "p927": { "x" : 927 },
   4.963 +    "p928": { "x" : 928 },
   4.964 +    "p929": { "x" : 929 },
   4.965 +    "p930": { "x" : 930 },
   4.966 +    "p931": { "x" : 931 },
   4.967 +    "p932": { "x" : 932 },
   4.968 +    "p933": { "x" : 933 },
   4.969 +    "p934": { "x" : 934 },
   4.970 +    "p935": { "x" : 935 },
   4.971 +    "p936": { "x" : 936 },
   4.972 +    "p937": { "x" : 937 },
   4.973 +    "p938": { "x" : 938 },
   4.974 +    "p939": { "x" : 939 },
   4.975 +    "p940": { "x" : 940 },
   4.976 +    "p941": { "x" : 941 },
   4.977 +    "p942": { "x" : 942 },
   4.978 +    "p943": { "x" : 943 },
   4.979 +    "p944": { "x" : 944 },
   4.980 +    "p945": { "x" : 945 },
   4.981 +    "p946": { "x" : 946 },
   4.982 +    "p947": { "x" : 947 },
   4.983 +    "p948": { "x" : 948 },
   4.984 +    "p949": { "x" : 949 },
   4.985 +    "p950": { "x" : 950 },
   4.986 +    "p951": { "x" : 951 },
   4.987 +    "p952": { "x" : 952 },
   4.988 +    "p953": { "x" : 953 },
   4.989 +    "p954": { "x" : 954 },
   4.990 +    "p955": { "x" : 955 },
   4.991 +    "p956": { "x" : 956 },
   4.992 +    "p957": { "x" : 957 },
   4.993 +    "p958": { "x" : 958 },
   4.994 +    "p959": { "x" : 959 },
   4.995 +    "p960": { "x" : 960 },
   4.996 +    "p961": { "x" : 961 },
   4.997 +    "p962": { "x" : 962 },
   4.998 +    "p963": { "x" : 963 },
   4.999 +    "p964": { "x" : 964 },
  4.1000 +    "p965": { "x" : 965 },
  4.1001 +    "p966": { "x" : 966 },
  4.1002 +    "p967": { "x" : 967 },
  4.1003 +    "p968": { "x" : 968 },
  4.1004 +    "p969": { "x" : 969 },
  4.1005 +    "p970": { "x" : 970 },
  4.1006 +    "p971": { "x" : 971 },
  4.1007 +    "p972": { "x" : 972 },
  4.1008 +    "p973": { "x" : 973 },
  4.1009 +    "p974": { "x" : 974 },
  4.1010 +    "p975": { "x" : 975 },
  4.1011 +    "p976": { "x" : 976 },
  4.1012 +    "p977": { "x" : 977 },
  4.1013 +    "p978": { "x" : 978 },
  4.1014 +    "p979": { "x" : 979 },
  4.1015 +    "p980": { "x" : 980 },
  4.1016 +    "p981": { "x" : 981 },
  4.1017 +    "p982": { "x" : 982 },
  4.1018 +    "p983": { "x" : 983 },
  4.1019 +    "p984": { "x" : 984 },
  4.1020 +    "p985": { "x" : 985 },
  4.1021 +    "p986": { "x" : 986 },
  4.1022 +    "p987": { "x" : 987 },
  4.1023 +    "p988": { "x" : 988 },
  4.1024 +    "p989": { "x" : 989 },
  4.1025 +    "p990": { "x" : 990 },
  4.1026 +    "p991": { "x" : 991 },
  4.1027 +    "p992": { "x" : 992 },
  4.1028 +    "p993": { "x" : 993 },
  4.1029 +    "p994": { "x" : 994 },
  4.1030 +    "p995": { "x" : 995 },
  4.1031 +    "p996": { "x" : 996 },
  4.1032 +    "p997": { "x" : 997 },
  4.1033 +    "p998": { "x" : 998 },
  4.1034 +    "p999": { "x" : 999 }
  4.1035 +};
  4.1036 +
  4.1037 +for (var i = 0; i < 1000; i++) {
  4.1038 +    var value = obj["p" + i];
  4.1039 +    Assert.assertTrue(typeof value === "object");
  4.1040 +    Assert.assertTrue(value.x === i);
  4.1041 +}

mercurial