Skip to content

Commit

Permalink
Showing 1 changed file with 60 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -113,6 +113,36 @@ public IsBoxedPrimitiveNode(RubyContext context, SourceSection sourceSection) {
this.node = Message.IS_BOXED.createNode();
}

@Specialization
public boolean isBoxedPrimitive(VirtualFrame frame, boolean receiver) {
return receiver;
}

@Specialization
public boolean isBoxedPrimitive(VirtualFrame frame, byte receiver) {
return true;
}

@Specialization
public boolean isBoxedPrimitive(VirtualFrame frame, short receiver) {
return true;
}

@Specialization
public boolean isBoxedPrimitive(VirtualFrame frame, long receiver) {
return true;
}

@Specialization
public boolean isBoxedPrimitive(VirtualFrame frame, float receiver) {
return true;
}

@Specialization
public boolean isBoxedPrimitive(VirtualFrame frame, double receiver) {
return true;
}

@Specialization
public boolean isBoxedPrimitive(VirtualFrame frame, CharSequence receiver) {
return true;
@@ -277,6 +307,36 @@ public UnboxValueNode(RubyContext context, SourceSection sourceSection) {
this.node = Message.UNBOX.createNode();
}

@Specialization
public boolean unbox(VirtualFrame frame, boolean receiver) {
return receiver;
}

@Specialization
public byte unbox(VirtualFrame frame, byte receiver) {
return receiver;
}

@Specialization
public short unbox(VirtualFrame frame, short receiver) {
return receiver;
}

@Specialization
public long unbox(VirtualFrame frame, long receiver) {
return receiver;
}

@Specialization
public float unbox(VirtualFrame frame, float receiver) {
return receiver;
}

@Specialization
public double unbox(VirtualFrame frame, double receiver) {
return receiver;
}

@Specialization
public DynamicObject executeForeign(VirtualFrame frame, CharSequence receiver) {
// TODO CS-21-Dec-15 this shouldn't be needed - we need to convert j.l.String to Ruby's String automatically

0 comments on commit ba1e729

Please sign in to comment.