equal
deleted
inserted
replaced
36 import java.util.Collection; |
36 import java.util.Collection; |
37 import java.util.HashSet; |
37 import java.util.HashSet; |
38 import java.util.List; |
38 import java.util.List; |
39 import java.util.Set; |
39 import java.util.Set; |
40 import java.util.concurrent.Callable; |
40 import java.util.concurrent.Callable; |
41 |
|
42 import jdk.internal.dynalink.beans.BeansLinker; |
41 import jdk.internal.dynalink.beans.BeansLinker; |
43 import jdk.internal.dynalink.beans.StaticClass; |
42 import jdk.internal.dynalink.beans.StaticClass; |
44 import jdk.internal.dynalink.linker.GuardedInvocation; |
43 import jdk.internal.dynalink.linker.GuardedInvocation; |
45 import jdk.internal.dynalink.linker.GuardingDynamicLinker; |
44 import jdk.internal.dynalink.linker.GuardingDynamicLinker; |
46 import jdk.internal.dynalink.linker.LinkRequest; |
45 import jdk.internal.dynalink.linker.LinkRequest; |
416 * @param value value of object to be instantiated |
415 * @param value value of object to be instantiated |
417 * @return the new NativeObject |
416 * @return the new NativeObject |
418 */ |
417 */ |
419 @Constructor |
418 @Constructor |
420 public static Object construct(final boolean newObj, final Object self, final Object value) { |
419 public static Object construct(final boolean newObj, final Object self, final Object value) { |
421 final JSType type = JSType.of(value); |
420 final JSType type = JSType.ofNoFunction(value); |
422 |
421 |
423 // Object(null), Object(undefined), Object() are same as "new Object()" |
422 // Object(null), Object(undefined), Object() are same as "new Object()" |
424 |
423 |
425 if (newObj || type == JSType.NULL || type == JSType.UNDEFINED) { |
424 if (newObj || type == JSType.NULL || type == JSType.UNDEFINED) { |
426 switch (type) { |
425 switch (type) { |
427 case BOOLEAN: |
426 case BOOLEAN: |
428 case NUMBER: |
427 case NUMBER: |
429 case STRING: |
428 case STRING: |
430 return Global.toObject(value); |
429 return Global.toObject(value); |
431 case OBJECT: |
430 case OBJECT: |
432 case FUNCTION: |
|
433 return value; |
431 return value; |
434 case NULL: |
432 case NULL: |
435 case UNDEFINED: |
433 case UNDEFINED: |
436 // fall through.. |
434 // fall through.. |
437 default: |
435 default: |