Environment Define_struct::extend(const Environment& env0) const { Environment env = env0; env = env.extend("make-" + name_.name(), get_undefined()); env = env.extend(name_.name() + "?", get_undefined()); for (const auto& field : fields_) env = env.extend(name_.name() + "-" + field.name(), get_undefined()); return env; }
Object *find_catch_frame(Object *cxt, Object *frame) { while( exists(cxt, frame) ) { if ( exists(cxt, get_catch_block(cxt, frame)) ) { return frame; } frame = get(cxt, frame, "return"); } return get_undefined(cxt); }
BOOST_FIXTURE_TEST_CASE( triggering_an_expectation_returns_by_reference, mock_error_fixture ) { { mock::detail::function< base&() > f; derived b; f.expect().returns( boost::ref( b ) ); BOOST_CHECK_NO_THROW( f() ); CHECK_CALLS( 1 ); } { mock::detail::function< base&() > f; derived b; f.expect().returns( b ); BOOST_CHECK_NO_THROW( f() ); CHECK_CALLS( 1 ); } { mock::detail::function< undefined&() > f; f.expect().returns( boost::ref( get_undefined() ) ); f.reset(); } }
Object *char_array_to_boxed_int(Object *cxt, Object *str) { Object *boxed_int = new_boxed_int(cxt); BoxedIntBuffer *int_buf = get_boxed_int_buffer(boxed_int); CharArrayBuffer *str_buf = get_char_array_buffer(str); Fixnum sign = 1; Fixnum i = 0; if ( str_buf == 0 || int_buf == 0 ) { return get_undefined(cxt); } if ( str_buf->data[i] == '-' ) { sign = -1; ++i; } while( str_buf->data[i] >= '0' && str_buf->data[i] <= '9' ) { int_buf->value *= 10; int_buf->value += (str_buf->data[i] - '0'); ++i; } int_buf->value *= sign; return boxed_int; }
Environment Define_fun::extend(const Environment& env) const { return env.extend(name_, get_undefined()); }