annotate truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLNewObjectBuiltin.java @ 21987:b2d1c8ff592a

Less classes in the source API package. Merging interfaces and their only implementation into final classes. Hiding NullSourceSection behind factory method. Using JDK's standard CharsetDecoder instead of proprietary BytesDecoder.
author Jaroslav Tulach <jaroslav.tulach@oracle.com>
date Wed, 01 Jul 2015 10:23:36 +0200
parents 9c8c0937da41
children c07e64ecb528
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18411
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
1 /*
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
2 * Copyright (c) 2014, 2014, Oracle and/or its affiliates. All rights reserved.
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
4 *
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
7 * published by the Free Software Foundation.
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
8 *
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
13 * accompanied this code).
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
14 *
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
18 *
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
21 * questions.
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
22 */
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
23 package com.oracle.truffle.sl.builtins;
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
24
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
25 import com.oracle.truffle.api.dsl.*;
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
26 import com.oracle.truffle.api.nodes.*;
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
27 import com.oracle.truffle.api.source.*;
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
28
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
29 /**
18466
2d2fcdbae37b SL: fix javadoc of new() builtin
Andreas Woess <andreas.woess@jku.at>
parents: 18412
diff changeset
30 * Built-in function to create a new object. Objects in SL are simply made up of name/value pairs.
18411
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
31 */
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
32 @NodeInfo(shortName = "new")
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
33 public abstract class SLNewObjectBuiltin extends SLBuiltinNode {
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
34
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
35 public SLNewObjectBuiltin() {
21987
b2d1c8ff592a Less classes in the source API package. Merging interfaces and their only implementation into final classes. Hiding NullSourceSection behind factory method. Using JDK's standard CharsetDecoder instead of proprietary BytesDecoder.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents: 21951
diff changeset
36 super(SourceSection.createUnavailable("SL builtin", "new"));
18411
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
37 }
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
38
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
39 @Specialization
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
40 public Object newObject() {
18412
997bc9764a9a SL: use the truffle object storage model to represent SL objects
Andreas Woess <andreas.woess@jku.at>
parents: 18411
diff changeset
41 return getContext().createObject();
18411
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
42 }
dc2e000bed40 SL: add basic support for creating objects and accessing properties
Andreas Woess <andreas.woess@jku.at>
parents:
diff changeset
43 }